Home is_trial_period stays "on" in Apple's Receipt Sandbox
Reply: 1

is_trial_period stays "on" in Apple's Receipt Sandbox

gerbil
1#
gerbil Published in 2017-11-14 21:48:34Z

I'm encountering an issue while debugging Apple's in-app purchase receipt. It seems the field "is_trial_period" stays true although the purchase has already expired. To my understanding Apple defines short periods for debugging subscriptions, as seen here:

Testing In-App Purchase Products

Do those times apply for trail periods as well?

Jacob Eiting
2#
Jacob Eiting Reply to 2017-11-15 01:38:57Z

This is because Apple issues a separate transaction for the trial period.

Here is an example excerpt of a receipt from Apple:

"latest_receipt_info": [
    {
        "quantity": "1",
        "product_id": "onemonth_freetrial",
        "transaction_id": "1000000328795138",
        "original_transaction_id": "1000000328795138",
        "purchase_date": "2017-08-29 23:13:52 Etc/GMT",
        "purchase_date_ms": "1504048432000",
        "purchase_date_pst": "2017-08-29 16:13:52 America/Los_Angeles",
        "original_purchase_date": "2017-08-29 23:13:53 Etc/GMT",
        "original_purchase_date_ms": "1504048433000",
        "original_purchase_date_pst": "2017-08-29 16:13:53 America/Los_Angeles",
        "expires_date": "2017-08-29 23:16:52 Etc/GMT",
        "expires_date_ms": "1504048612000",
        "expires_date_pst": "2017-08-29 16:16:52 America/Los_Angeles",
        "web_order_line_item_id": "1000000036088032",
        "is_trial_period": "true"
    },
    {
        "quantity": "1",
        "product_id": "onemonth_freetrial",
        "transaction_id": "1000000328796241",
        "original_transaction_id": "1000000328795138",
        "purchase_date": "2017-08-29 23:16:52 Etc/GMT",
        "purchase_date_ms": "1504048612000",
        "purchase_date_pst": "2017-08-29 16:16:52 America/Los_Angeles",
        "original_purchase_date": "2017-08-29 23:13:53 Etc/GMT",
        "original_purchase_date_ms": "1504048433000",
        "original_purchase_date_pst": "2017-08-29 16:13:53 America/Los_Angeles",
        "expires_date": "2017-08-29 23:21:52 Etc/GMT",
        "expires_date_ms": "1504048912000",
        "expires_date_pst": "2017-08-29 16:21:52 America/Los_Angeles",
        "web_order_line_item_id": "1000000036088033",
        "is_trial_period": "false"
    }
]

The latest_receipt_info field will contain an array for every 'renewal' or 'transaction'. The way Apple handles free trials is by issuing one transaction that will always have is_trial_period be true, and subsequent non-trial renewal have is_trial_period be false. When you handle the receipt just make sure you are looking at the latest transaction by purchase_date or expiration_date which should represent the latest renewal and the one you should base unlocking content off of.

And regarding length in sandbox, if your IAP product has a free trial, the sandbox environment will issue one trial period, and 5 renewals, for six renewals total.

You need to login account before you can post.

About| Privacy statement| Terms of Service| Advertising| Contact us| Help| Sitemap|
Processed in 0.301624 second(s) , Gzip On .

© 2016 Powered by mzan.com design MATCHINFO