Hi. I have some missunderstanding with checking an in-app purchase receipt locally. In 'Receipt Validation Programming Guide' I found only several descriptions of fields such as 'Quantity', 'Product Identifier', 'Purchase Date' and so on. I need the field 'Is trial period'. I know this field come if I verify a receipt with an apple server as 'is_trial_period'. Which does the code correspond this field if I verify a receipt locally on a device? I have the guess - 1713 🙂 Is it true?
'Is trial period' in a receipt locally
I have some guess as yours since that lines up correctly. Odd that this field isn't documented, especially since they did add the introductory price period (1719) field.
The documentation is here:
There is no ASN.1 field for "is_trial_period". You need to figure that out based on the timing of the various purchases.
Subscription Trial Period
For a subscription, whether or not it is in the free trial period.
ASN.1 Field Type (none)
ASN.1 Field Value (none)
JSON Field Name is_trial_period
JSON Field Value string
This key is only present for auto-renewable subscription receipts. The value for this key is
"true"
if the customer’s subscription is currently in the free trial period, or "false"
if not.Note: If a previous subscription period in the receipt has the value “true” for either the
is_trial_period
or the is_in_intro_offer_period
key, the user is not eligible for a free trial or introductory price within that subscription group.
Hello! May be a bit off topic, but I don’t understand: free trial is classified as the one of introductory price types by Apple.
So, may be we don’t need this seperate free trial field for ASN.1 and free trial can be checked by 1719 ASN.1 field - “is introductory price”? (Local receipt validation case)
Does this work for you? I never seem to get the 1719 field to show as 1; it's always 0, even though the StoreKit prompts suggested that it would start the free trial.
Decoding 1719 in on-device receipt validation works for me, though I am not using free trial, only introductory pricing. Here are all the types I am decoding: 1701, 1702, 1703, 1705, 1704, 1706, 1708, 1719, 1712, 1711.
I have noticed that field 1719 is never 1 in sandbox, however while testing through the local Xcode configuration (StoreKit testing), I have seen 1719 come back as 1!
Can I expect 1719 to come back as true in production or no?
What is the best way to determine if the user is eligible for a free trial otherwise when parsing the receipt locally?
Is this field ever be true in the local receipt in the production environment?