How does Apple receive an IAP for automatic renewal of subscriptions of varying duration in subscriber family?

I am developing an application that offers automatic subscription renewal.

I don't know what the JSON response from Apple would look like when checking the receive hash if the user purchased subscription.A

(which is updated after 7 days) and then navigate to his iTunes settings and change it to update in subscription.B

from the same subscription family.

For subscription.A

it will look like this after updating a couple of times:

...
{"quantity":"1", "product_id":"subscription.A", "transaction_id":"100000015494389", "original_transaction_id":"100000015494368", "purchase_date":"2015-05-12 11:42:01 Etc/GMT", "purchase_date_ms":"1431430921000", "purchase_date_pst":"2015-05-12 04:42:01 America/Los_Angeles", "original_purchase_date":"2015-05-12 11:40:03 Etc/GMT", "original_purchase_date_ms":"1431430803000", "original_purchase_date_pst":"2015-05-12 04:40:03 America/Los_Angeles", "expires_date":"2015-05-12 11:47:01 Etc/GMT", "expires_date_ms":"1431431221000", "expires_date_pst":"2015-05-12 04:47:01 America/Los_Angeles", "web_order_line_item_id":"100000002973145", "is_trial_period":"false"}, 
{"quantity":"1", "product_id":"subscription.A", "transaction_id":"100000015494368", "original_transaction_id":"100000015494368", "purchase_date":"2015-05-12 11:37:01 Etc/GMT", "purchase_date_ms":"1431430621000", "purchase_date_pst":"2015-05-12 04:37:01 America/Los_Angeles", "original_purchase_date":"2015-05-12 11:37:02 Etc/GMT", "original_purchase_date_ms":"1431430622000", "original_purchase_date_pst":"2015-05-12 04:37:02 America/Los_Angeles", "expires_date":"2015-05-12 11:42:01 Etc/GMT", "expires_date_ms":"1431430921000", "expires_date_pst":"2015-05-12 04:42:01 America/Los_Angeles", "web_order_line_item_id":"100000002973145", "is_trial_period":"false"}, 
{"quantity":"1", "product_id":"subscription.A", "transaction_id":"100000015494496", "original_transaction_id":"100000015494368", "purchase_date":"2015-05-12 11:47:01 Etc/GMT", "purchase_date_ms":"1431431221000", "purchase_date_pst":"2015-05-12 04:47:01 America/Los_Angeles", "original_purchase_date":"2015-05-12 11:45:32 Etc/GMT", "original_purchase_date_ms":"1431431132000", "original_purchase_date_pst":"2015-05-12 04:45:32 America/Los_Angeles", "expires_date":"2015-05-12 11:52:01 Etc/GMT", "expires_date_ms":"1431431521000", "expires_date_pst":"2015-05-12 04:52:01 America/Los_Angeles", "web_order_line_item_id":"100000002973147", "is_trial_period":"false"}, 
{"quantity":"1", "product_id":"subscription.A", "transaction_id":"100000015494517", "original_transaction_id":"100000015494368", "purchase_date":"2015-05-12 11:52:01 Etc/GMT", "purchase_date_ms":"1431431521000", "purchase_date_pst":"2015-05-12 04:52:01 America/Los_Angeles", "original_purchase_date":"2015-05-12 11:50:11 Etc/GMT", "original_purchase_date_ms":"1431431411000", "original_purchase_date_pst":"2015-05-12 04:50:11 America/Los_Angeles", "expires_date":"2015-05-12 11:57:01 Etc/GMT", "expires_date_ms":"1431431821000", "expires_date_pst":"2015-05-12 04:57:01 America/Los_Angeles", "web_order_line_item_id":"100000002973149", "is_trial_period":"false"}, 
{"quantity":"1", "product_id":"subscription.A", "transaction_id":"100000015494558", "original_transaction_id":"100000015494368", "purchase_date":"2015-05-12 11:57:01 Etc/GMT", "purchase_date_ms":"1431431821000", "purchase_date_pst":"2015-05-12 04:57:01 America/Los_Angeles", "original_purchase_date":"2015-05-12 11:55:03 Etc/GMT", "original_purchase_date_ms":"1431431703000", "original_purchase_date_pst":"2015-05-12 04:55:03 America/Los_Angeles", "expires_date":"2015-05-12 12:02:01 Etc/GMT", "expires_date_ms":"1431432121000", "expires_date_pst":"2015-05-12 05:02:01 America/Los_Angeles", "web_order_line_item_id":"100000002973151", "is_trial_period":"false"}, 
{"quantity":"1", "product_id":"subscription.A", "transaction_id":"100000015494630", "original_transaction_id":"100000015494368", "purchase_date":"2015-05-12 12:02:01 Etc/GMT", "purchase_date_ms":"1431432121000", "purchase_date_pst":"2015-05-12 05:02:01 America/Los_Angeles", "original_purchase_date":"2015-05-12 12:00:29 Etc/GMT", "original_purchase_date_ms":"1431432029000", "original_purchase_date_pst":"2015-05-12 05:00:29 America/Los_Angeles", "expires_date":"2015-05-12 12:07:01 Etc/GMT", "expires_date_ms":"1431432421000", "expires_date_pst":"2015-05-12 05:07:01 America/Los_Angeles", "web_order_line_item_id":"100000002973153", "is_trial_period":"false"}, 
...

      

When a subscription is renewed to a different duration, I think it will of course have a product_id subscription.B

, but will it have a new one original_transaction_id

or will it still be connected (in this case)100000015494368

Since I can't access iTunes preferences with test program users, I have no idea how to test them and I couldn't find a clear expression in the documentation.

+3


source to share


1 answer


The following shows how two auto-renewal subscription requests with different durations appear in the receipt verification response:

{"quantity":"1", "product_id":"subscription.A", "transaction_id":"1000000276920213", "original_transaction_id":"1000000276916420", "purchase_date":"2017-02-25 14:34:05 Etc/GMT", "purchase_date_ms":"1488033245000", "purchase_date_pst":"2017-02-25 06:34:05 America/Los_Angeles", "original_purchase_date":"2017-02-25 13:03:10 Etc/GMT", "original_purchase_date_ms":"1488027790000", "original_purchase_date_pst":"2017-02-25 05:03:10 America/Los_Angeles", "expires_date":"2017-02-25 14:39:05 Etc/GMT", "expires_date_ms":"1488033545000", "expires_date_pst":"2017-02-25 06:39:05 America/Los_Angeles", "web_order_line_item_id":"1000000034442002", "is_trial_period":"false"}, 
{"quantity":"1", "product_id":"subscription.B", "transaction_id":"1000000276964864", "original_transaction_id":"1000000276916420", "purchase_date":"2017-02-26 09:05:14 Etc/GMT", "purchase_date_ms":"1488099914000", "purchase_date_pst":"2017-02-26 01:05:14 America/Los_Angeles", "original_purchase_date":"2017-02-25 13:03:10 Etc/GMT", "original_purchase_date_ms":"1488027790000", "original_purchase_date_pst":"2017-02-25 05:03:10 America/Los_Angeles", "expires_date":"2017-02-26 09:08:14 Etc/GMT", "expires_date_ms":"1488100094000", "expires_date_pst":"2017-02-26 01:08:14 America/Los_Angeles", "web_order_line_item_id":"1000000034442107", "is_trial_period":"false"}

      



As you can see, they show up as connected using the same original_transaction_id

and original_purchase_date

. I'm not 100% sure, but I think it is, even if the second subscription was purchased after the first one was canceled.

0


source







All Articles