2017-11-18 29 views
0

iOSアプリ内購入で働いています。iOSアプリの購入:最新のキャンセル日とキャンセル数をリクエストする

最新のキャンセル日とキャンセルの合計数を100%正確な結果でお願いします。私は、この応答から情報「キャンセルの数」を抽出する方法が表示されない

(lldb) po jsonResponse 
{ 
    environment = Sandbox; 
    "latest_receipt" = "<some binary text>"; 
    "latest_receipt_info" =  (
       { 
      "expires_date" = "2017-11-17 15:41:31 Etc/GMT"; 
      "expires_date_ms" = 1510933291000; 
      "expires_date_pst" = "2017-11-17 07:41:31 America/Los_Angeles"; 
      "is_trial_period" = true; 
      "original_purchase_date" = "2017-11-17 14:41:34 Etc/GMT"; 
      "original_purchase_date_ms" = 1510929694000; 
      "original_purchase_date_pst" = "2017-11-17 06:41:34 America/Los_Angeles"; 
      "original_transaction_id" = 1000000353161868; 
      "product_id" = "com.myapp.iap.pro.renewing.monthly.trial"; 
      "purchase_date" = "2017-11-17 14:41:31 Etc/GMT"; 
      "purchase_date_ms" = 1510929691000; 
      "purchase_date_pst" = "2017-11-17 06:41:31 America/Los_Angeles"; 
      quantity = 1; 
      "transaction_id" = 1000000353161868; 
      "web_order_line_item_id" = 1000000036932780; 
     }, 
       { 
      "expires_date" = "2017-11-17 15:46:31 Etc/GMT"; 
      "expires_date_ms" = 1510933591000; 
      "expires_date_pst" = "2017-11-17 07:46:31 America/Los_Angeles"; 
      "is_trial_period" = false; 
      "original_purchase_date" = "2017-11-17 14:41:34 Etc/GMT"; 
      "original_purchase_date_ms" = 1510929694000; 
      "original_purchase_date_pst" = "2017-11-17 06:41:34 America/Los_Angeles"; 
      "original_transaction_id" = 1000000353161868; 
      "product_id" = "com.myapp.iap.pro.renewing.monthly.trial"; 
      "purchase_date" = "2017-11-17 15:41:31 Etc/GMT"; 
      "purchase_date_ms" = 1510933291000; 
      "purchase_date_pst" = "2017-11-17 07:41:31 America/Los_Angeles"; 
      quantity = 1; 
      "transaction_id" = 1000000353176570; 
      "web_order_line_item_id" = 1000000036932781; 
     }, 
       { 
      "expires_date" = "2017-11-17 15:51:31 Etc/GMT"; 
      "expires_date_ms" = 1510933891000; 
      "expires_date_pst" = "2017-11-17 07:51:31 America/Los_Angeles"; 
      "is_trial_period" = false; 
      "original_purchase_date" = "2017-11-17 14:41:34 Etc/GMT"; 
      "original_purchase_date_ms" = 1510929694000; 
      "original_purchase_date_pst" = "2017-11-17 06:41:34 America/Los_Angeles"; 
      "original_transaction_id" = 1000000353161868; 
      "product_id" = "com.myapp.iap.pro.renewing.monthly.trial"; 
      "purchase_date" = "2017-11-17 15:46:31 Etc/GMT"; 
      "purchase_date_ms" = 1510933591000; 
      "purchase_date_pst" = "2017-11-17 07:46:31 America/Los_Angeles"; 
      quantity = 1; 
      "transaction_id" = 1000000353177515; 
      "web_order_line_item_id" = 1000000036933429; 
     }, 
       { 
      "expires_date" = "2017-11-17 15:56:31 Etc/GMT"; 
      "expires_date_ms" = 1510934191000; 
      "expires_date_pst" = "2017-11-17 07:56:31 America/Los_Angeles"; 
      "is_trial_period" = false; 
      "original_purchase_date" = "2017-11-17 14:41:34 Etc/GMT"; 
      "original_purchase_date_ms" = 1510929694000; 
      "original_purchase_date_pst" = "2017-11-17 06:41:34 America/Los_Angeles"; 
      "original_transaction_id" = 1000000353161868; 
      "product_id" = "com.myapp.iap.pro.renewing.monthly.trial"; 
      "purchase_date" = "2017-11-17 15:51:31 Etc/GMT"; 
      "purchase_date_ms" = 1510933891000; 
      "purchase_date_pst" = "2017-11-17 07:51:31 America/Los_Angeles"; 
      quantity = 1; 
      "transaction_id" = 1000000353178539; 
      "web_order_line_item_id" = 1000000036933488; 
     }, 
       { 
      "expires_date" = "2017-11-17 16:01:31 Etc/GMT"; 
      "expires_date_ms" = 1510934491000; 
      "expires_date_pst" = "2017-11-17 08:01:31 America/Los_Angeles"; 
      "is_trial_period" = false; 
      "original_purchase_date" = "2017-11-17 14:41:34 Etc/GMT"; 
      "original_purchase_date_ms" = 1510929694000; 
      "original_purchase_date_pst" = "2017-11-17 06:41:34 America/Los_Angeles"; 
      "original_transaction_id" = 1000000353161868; 
      "product_id" = "com.myapp.iap.pro.renewing.monthly.trial"; 
      "purchase_date" = "2017-11-17 15:56:31 Etc/GMT"; 
      "purchase_date_ms" = 1510934191000; 
      "purchase_date_pst" = "2017-11-17 07:56:31 America/Los_Angeles"; 
      quantity = 1; 
      "transaction_id" = 1000000353179673; 
      "web_order_line_item_id" = 1000000036933554; 
     }, 
       { 
      "expires_date" = "2017-11-17 16:06:31 Etc/GMT"; 
      "expires_date_ms" = 1510934791000; 
      "expires_date_pst" = "2017-11-17 08:06:31 America/Los_Angeles"; 
      "is_trial_period" = false; 
      "original_purchase_date" = "2017-11-17 14:41:34 Etc/GMT"; 
      "original_purchase_date_ms" = 1510929694000; 
      "original_purchase_date_pst" = "2017-11-17 06:41:34 America/Los_Angeles"; 
      "original_transaction_id" = 1000000353161868; 
      "product_id" = "com.myapp.iap.pro.renewing.monthly.trial"; 
      "purchase_date" = "2017-11-17 16:01:31 Etc/GMT"; 
      "purchase_date_ms" = 1510934491000; 
      "purchase_date_pst" = "2017-11-17 08:01:31 America/Los_Angeles"; 
      quantity = 1; 
      "transaction_id" = 1000000353180672; 
      "web_order_line_item_id" = 1000000036933616; 
     }, 
       { 
      "expires_date" = "2017-11-18 16:03:15 Etc/GMT"; 
      "expires_date_ms" = 1511020995000; 
      "expires_date_pst" = "2017-11-18 08:03:15 America/Los_Angeles"; 
      "is_trial_period" = false; 
      "original_purchase_date" = "2017-11-17 14:41:34 Etc/GMT"; 
      "original_purchase_date_ms" = 1510929694000; 
      "original_purchase_date_pst" = "2017-11-17 06:41:34 America/Los_Angeles"; 
      "original_transaction_id" = 1000000353161868; 
      "product_id" = "com.myapp.iap.pro.renewing.monthly.trial"; 
      "purchase_date" = "2017-11-18 15:58:15 Etc/GMT"; 
      "purchase_date_ms" = 1511020695000; 
      "purchase_date_pst" = "2017-11-18 07:58:15 America/Los_Angeles"; 
      quantity = 1; 
      "transaction_id" = 1000000353294875; 
      "web_order_line_item_id" = 1000000036933659; 
     } 
    ); 
    "pending_renewal_info" =  (
       { 
      "auto_renew_product_id" = "com.myapp.iap.pro.renewing.monthly.trial"; 
      "auto_renew_status" = 1; 
      "original_transaction_id" = 1000000353161868; 
      "product_id" = "com.myapp.iap.pro.renewing.monthly.trial"; 
     } 
    ); 
    receipt =  { 
     "adam_id" = 0; 
     "app_item_id" = 0; 
     "application_version" = 759; 
     "bundle_id" = "com.myapp"; 
     "download_id" = 0; 
     "in_app" =   (
         { 
       "expires_date" = "2017-11-17 15:46:31 Etc/GMT"; 
       "expires_date_ms" = 1510933591000; 
       "expires_date_pst" = "2017-11-17 07:46:31 America/Los_Angeles"; 
       "is_trial_period" = false; 
       "original_purchase_date" = "2017-11-17 14:41:34 Etc/GMT"; 
       "original_purchase_date_ms" = 1510929694000; 
       "original_purchase_date_pst" = "2017-11-17 06:41:34 America/Los_Angeles"; 
       "original_transaction_id" = 1000000353161868; 
       "product_id" = "com.myapp.iap.pro.renewing.monthly.trial"; 
       "purchase_date" = "2017-11-17 15:41:31 Etc/GMT"; 
       "purchase_date_ms" = 1510933291000; 
       "purchase_date_pst" = "2017-11-17 07:41:31 America/Los_Angeles"; 
       quantity = 1; 
       "transaction_id" = 1000000353176570; 
       "web_order_line_item_id" = 1000000036932781; 
      }, 
         { 
       "expires_date" = "2017-11-17 15:51:31 Etc/GMT"; 
       "expires_date_ms" = 1510933891000; 
       "expires_date_pst" = "2017-11-17 07:51:31 America/Los_Angeles"; 
       "is_trial_period" = false; 
       "original_purchase_date" = "2017-11-17 14:41:34 Etc/GMT"; 
       "original_purchase_date_ms" = 1510929694000; 
       "original_purchase_date_pst" = "2017-11-17 06:41:34 America/Los_Angeles"; 
       "original_transaction_id" = 1000000353161868; 
       "product_id" = "com.myapp.iap.pro.renewing.monthly.trial"; 
       "purchase_date" = "2017-11-17 15:46:31 Etc/GMT"; 
       "purchase_date_ms" = 1510933591000; 
       "purchase_date_pst" = "2017-11-17 07:46:31 America/Los_Angeles"; 
       quantity = 1; 
       "transaction_id" = 1000000353177515; 
       "web_order_line_item_id" = 1000000036933429; 
      }, 
         { 
       "expires_date" = "2017-11-17 15:56:31 Etc/GMT"; 
       "expires_date_ms" = 1510934191000; 
       "expires_date_pst" = "2017-11-17 07:56:31 America/Los_Angeles"; 
       "is_trial_period" = false; 
       "original_purchase_date" = "2017-11-17 14:41:34 Etc/GMT"; 
       "original_purchase_date_ms" = 1510929694000; 
       "original_purchase_date_pst" = "2017-11-17 06:41:34 America/Los_Angeles"; 
       "original_transaction_id" = 1000000353161868; 
       "product_id" = "com.myapp.iap.pro.renewing.monthly.trial"; 
       "purchase_date" = "2017-11-17 15:51:31 Etc/GMT"; 
       "purchase_date_ms" = 1510933891000; 
       "purchase_date_pst" = "2017-11-17 07:51:31 America/Los_Angeles"; 
       quantity = 1; 
       "transaction_id" = 1000000353178539; 
       "web_order_line_item_id" = 1000000036933488; 
      }, 
         { 
       "expires_date" = "2017-11-17 16:01:31 Etc/GMT"; 
       "expires_date_ms" = 1510934491000; 
       "expires_date_pst" = "2017-11-17 08:01:31 America/Los_Angeles"; 
       "is_trial_period" = false; 
       "original_purchase_date" = "2017-11-17 14:41:34 Etc/GMT"; 
       "original_purchase_date_ms" = 1510929694000; 
       "original_purchase_date_pst" = "2017-11-17 06:41:34 America/Los_Angeles"; 
       "original_transaction_id" = 1000000353161868; 
       "product_id" = "com.myapp.iap.pro.renewing.monthly.trial"; 
       "purchase_date" = "2017-11-17 15:56:31 Etc/GMT"; 
       "purchase_date_ms" = 1510934191000; 
       "purchase_date_pst" = "2017-11-17 07:56:31 America/Los_Angeles"; 
       quantity = 1; 
       "transaction_id" = 1000000353179673; 
       "web_order_line_item_id" = 1000000036933554; 
      }, 
         { 
       "expires_date" = "2017-11-17 16:06:31 Etc/GMT"; 
       "expires_date_ms" = 1510934791000; 
       "expires_date_pst" = "2017-11-17 08:06:31 America/Los_Angeles"; 
       "is_trial_period" = false; 
       "original_purchase_date" = "2017-11-17 14:41:34 Etc/GMT"; 
       "original_purchase_date_ms" = 1510929694000; 
       "original_purchase_date_pst" = "2017-11-17 06:41:34 America/Los_Angeles"; 
       "original_transaction_id" = 1000000353161868; 
       "product_id" = "com.myapp.iap.pro.renewing.monthly.trial"; 
       "purchase_date" = "2017-11-17 16:01:31 Etc/GMT"; 
       "purchase_date_ms" = 1510934491000; 
       "purchase_date_pst" = "2017-11-17 08:01:31 America/Los_Angeles"; 
       quantity = 1; 
       "transaction_id" = 1000000353180672; 
       "web_order_line_item_id" = 1000000036933616; 
      }, 
         { 
       "expires_date" = "2017-11-18 16:03:15 Etc/GMT"; 
       "expires_date_ms" = 1511020995000; 
       "expires_date_pst" = "2017-11-18 08:03:15 America/Los_Angeles"; 
       "is_trial_period" = false; 
       "original_purchase_date" = "2017-11-17 14:41:34 Etc/GMT"; 
       "original_purchase_date_ms" = 1510929694000; 
       "original_purchase_date_pst" = "2017-11-17 06:41:34 America/Los_Angeles"; 
       "original_transaction_id" = 1000000353161868; 
       "product_id" = "com.myapp.iap.pro.renewing.monthly.trial"; 
       "purchase_date" = "2017-11-18 15:58:15 Etc/GMT"; 
       "purchase_date_ms" = 1511020695000; 
       "purchase_date_pst" = "2017-11-18 07:58:15 America/Los_Angeles"; 
       quantity = 1; 
       "transaction_id" = 1000000353294875; 
       "web_order_line_item_id" = 1000000036933659; 
      }, 
         { 
       "expires_date" = "2017-11-17 15:41:31 Etc/GMT"; 
       "expires_date_ms" = 1510933291000; 
       "expires_date_pst" = "2017-11-17 07:41:31 America/Los_Angeles"; 
       "is_trial_period" = true; 
       "original_purchase_date" = "2017-11-17 14:41:34 Etc/GMT"; 
       "original_purchase_date_ms" = 1510929694000; 
       "original_purchase_date_pst" = "2017-11-17 06:41:34 America/Los_Angeles"; 
       "original_transaction_id" = 1000000353161868; 
       "product_id" = "com.myapp.iap.pro.renewing.monthly.trial"; 
       "purchase_date" = "2017-11-17 14:41:31 Etc/GMT"; 
       "purchase_date_ms" = 1510929691000; 
       "purchase_date_pst" = "2017-11-17 06:41:31 America/Los_Angeles"; 
       quantity = 1; 
       "transaction_id" = 1000000353161868; 
       "web_order_line_item_id" = 1000000036932780; 
      } 
     ); 
     "original_application_version" = "1.0"; 
     "original_purchase_date" = "2013-08-01 07:00:00 Etc/GMT"; 
     "original_purchase_date_ms" = 1375340400000; 
     "original_purchase_date_pst" = "2013-08-01 00:00:00 America/Los_Angeles"; 
     "receipt_creation_date" = "2017-11-18 15:58:18 Etc/GMT"; 
     "receipt_creation_date_ms" = 1511020698000; 
     "receipt_creation_date_pst" = "2017-11-18 07:58:18 America/Los_Angeles"; 
     "receipt_type" = ProductionSandbox; 
     "request_date" = "2017-11-18 15:58:23 Etc/GMT"; 
     "request_date_ms" = 1511020703927; 
     "request_date_pst" = "2017-11-18 07:58:23 America/Los_Angeles"; 
     "version_external_identifier" = 0; 
    }; 
    status = 0; 
} 

:私はJSONレスポンスがこの形式を持っている

(
https://developer.apple.com/library/content/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateRemotely.html#//apple_ref/doc/uid/TP40010573-CH104-SW1 
-> 
https://sandbox.itunes.apple.com/verifyReceipt 
/
https://buy.itunes.apple.com/verifyReceipt 
JSON response field descriptions : https://developer.apple.com/library/content/releasenotes/General/ValidateAppStoreReceipt/Chapters/ReceiptFields.html#//apple_ref/doc/uid/TP40010573-CH106-SW25 
) . 

Appleのverifyreceipt呼び出しを使用しています

。それを行う方法はありますか?たとえば、別の要求を使用している可能性がありますか?

「pending_renewal_info」の値をチェックすることで、「最新のキャンセル日」を得ることができます:「auto_renew_status」== 0そして領収書の配列を繰り返して、最新の有効期限を取得しますそれが現在の日付よりも小さいことを確認してください)。 しかし、このソリューションでは100%正しい結果が得られないことがわかりました。 ユーザーがキャンセルした定期購入を持っていて、アプリを起動せずにアプリ外で更新した場合、私のアプリはそのキャンセルを特定できません。 この情報をリクエストする方法はありますか?

+0

「キャンセル回数」の意味を詳しく説明できますか? 1人のユーザーがキャンセルした回数や、全ユーザーの中でキャンセルされた回数を意味しますか? –

+0

@JacobEiting:「1人のユーザーがキャンセルした回数」を意味します。 – thorax

答えて

1

すべての領収書をループし、確認を呼び出し、気になるすべての製品についてpending_renewal_infoをチェックすることで、キャンセルの合計数を計算できるはずです。

このメソッドは、呼び出し時に正しい結果を返します。 pending_renewal_infoは実際には領収書の本来ではありませんが、アップルのサーバーによって最新の情報が返されます。したがって、ユーザーがキャンセルすると、これがここに反映されます。実際、ユーザーがキャンセルすると、領収書自体はまったく変更されず、新しい取引も受け取られません。verifyReceiptエンドポイントを押すだけで知ることができます。

個々のユーザーがキャンセルした回数を確認する場合は、この情報はpending_renewal_infoで利用できません。 latest_receipt_infoフィールドの個々のトランザクションを調べて、purchase_date,expires_date、およびユーザーのサブスクリプションのギャップを見つけるための製品の期間を比較する必要があります。ギャップが数日以上ある場合は、その期間をキャンセル期間とみなすことができます。

+0

verifyReceiptは、 "receipt-data" JSONフィールドにbase64でエンコードされたレシートデータを受け取ることを想定しています。私はこれらの領収書のバイナリフォーマットを受け取っていないので、それらをループしてverifyReceiptに送ることはできません。受信したJSONレスポンスを使って何らかの形でそれらを生成することは可能ですか? (私は元の投稿でその回答を引用しました) – thorax

+0

私の答え(最後の段落)をどうやって更新しましたか? 'pending_renewal_info'ではすぐに利用できません –

+0

あなたの返事をありがとう。 「数日以上の空きがある場合」 Appleのドキュメントに基づいて60日間:D: 注:請求関連の問題については、App Storeがアップデートの更新を試みることがあります〜60日間。レシートのサブスクリプション再試行フラグをチェックして、App Storeが引き続きサブスクリプションの更新を試みているかどうかを判断できます。 " (ref .: https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual /StoreKitGuide/Chapters/Subscriptions.html) – thorax

関連する問題