iOSアプリにおいて、In-App Purchaseの定期購読のサービスを提供している際に、その購読者の情報を取得できるRubyのスクリプトをざくっと作成しました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | require 'rest_client' apple_url = "https://buy.itunes.apple.com/verifyReceipt" num = 0 File.open('ios_subscription_member.csv').each do |code| apple_url = "https://buy.itunes.apple.com/verifyReceipt" num = num + 1 receipt.gsub!(/\n/, "") res = RestClient.post apple_url, {:'receipt-data' => code, :'password' => "*****"}.to_json res = JSON.parse(res) isSand = "No" if res["status"] == 21007 # p "It should be a receipt code for SandBox" isSand = "Yes" apple_url = "https://sandbox.itunes.apple.com/verifyReceipt" res = RestClient.post apple_url, {:'receipt-data' => code, :'password' => "*****"}.to_json res = JSON.parse(res) end stillPurchage = "No" originalDate = "No info" lastPurchasedDate = "No info" expiresDate = "No info" # 購入者は現在も購読中 if res["latest_receipt"] != nil stillPurchage = "Yes" originalDate = res["latest_receipt_info"]["original_purchase_date"] lastPurchasedDate = res["latest_receipt_info"]["purchase_date"] expiresDate = res["latest_receipt_info"]["expires_date_formatted"] end # 購入者は過去に購入したが、現在は解約 if res["latest_expired_receipt_info"] != nil && res["latest_expired_receipt_info"]["original_purchase_date"] != nil originalDate = res["latest_expired_receipt_info"]["original_purchase_date"] end if res["latest_expired_receipt_info"] != nil && res["latest_expired_receipt_info"]["purchase_date"] != nil lastPurchasedDate = res["latest_expired_receipt_info"]["purchase_date"] end if res["latest_expired_receipt_info"] != nil && res["latest_expired_receipt_info"]["expires_date_formatted"] != nil expiresDate = res["receipt"]["expires_date_formatted"] end # Let's add receipt lastline = "#{num}\t#{originalDate}\t#{lastPurchasedDate}\t#{expiresDate}\t#{stillPurchage}\t#{isSand}" puts lastline end |
ただ、ちょっと取得している情報が違うかもしれません。何かあったらご指摘お願いします。
csvファイルにて、レシートのハッシュキーがあるという前提です。あとは、ruby apple-script.rb >> results.tsv
のように、tsvでアウトプットすれば、エクセル等にそのままコピペできます。上記のコードの中で指定されているパスワードはiTunes Connectの中で取得できます。