original_transaction_id

the original_transaction_id parameter, present on iTunes receipts, and which represents the primary purchasing order on our db, has been changed descriptively as follows: "This value is useful for connecting multiple iOS 6 style transaction receipts for the same individual customer's subscription"

I did not see this statement until this summer.

Since it is the field we use to match our purchases and iTunes purchases, I need to clarify this important statement.


The official reference doc is https://developer.apple.com/library/content/releasenotes/General/ValidateAppStoreReceipt/Chapters/ReceiptFields.html

where it describes the original_transaction_id parameter

I have a previous version of the doc and this statement was NOT present.

Now Apple says to use web_order_line_item_id as match key but our db did not use it (since Apple did not say that before) and therefore can not match the previous purchases. We need to use original_transaction_id, how can we do?

Replies

Youcan continue to use the original_transaction_id. iOS6 was replaced with iOS7 about 5 years ago (and we are now up to iOS11) so ignore that. NOte that it also says "This value is the same for all receipts that have been generated for a specific subscription." I could be wrong but I believe that the original_transaction_id will be different on two different devices even for the same user (but the same for multiple autorenewable subscription renewals on any one device) and I believe that the web_order_line_item_id will be different for each subscription renewal on a single device (but the same for a particular renewal across all devices). So a single user with 2 devices and 5 autorenewable subscription renewals will have 5 web_order_line_item_id's and 2 original_transaction_id's (2 - one for the original purchase on device A and one for the restoreCompletedTransactions on device B).

Post not yet marked as solved Up vote reply of PBK Down vote reply of PBK

The documentation https://developer.apple.com/library/content/releasenotes/General/ValidateAppStoreReceipt/Chapters/ReceiptFields.html

does not refer to the 'operating system version' but to the 'inapp purchase style transaction version'.

We are migrating from 'inapp purchasing ios5 style tranction' to the 'inapp purchase ios7 style transaction' and we want continue to use the original_transaction_id parameter for connecting multiple transaction receipts to the same individual customer's subscription (as specified in iOS6 style transaction).

We need to clarify the behavior changes about original_transaction_id field in 'inapp purchase ios7 style transaction' compared previous style transaction versions.

> The documentation https://developer.apple.com/library/content/releasenotes/General/ValidateAppStoreReceipt/Chapters/ReceiptFields.html

does not refer to the 'operating system version'


Actually, that document references "iOS 6 style transaction receipts". The "iOS6" in that quotation is referring to the 'operating system version' known as "iOS6". The iPhone that makes an IAP is using an iOS version. If that version was 6 then it got a transaction.transactionReceipt that was an iOS6 style transaction receipt. Otherwise it would have been an iOS7 or later receipt.


Again, it is unclear whether the original_transaction_id was ever the same across the same user's multiple devices. Note that device 1 will make a purchase but device 2 will make a restoreCompletedTransaction with a different original_transaction_id. What eveidence do you have to indicate that it were ever the same? Does that same evidence indicate they still are?

Did you ever receive an adequate answer to your question? Like you, we are struggling to understand the docs, and are relying on `original_transaction_id` as a uniqe identifier to update information for a user. However if a user cancels it sends `web_order_line_item_id` so should we be using `web_order_line_item_id` instead of `original_transaction_id`??

[Interestingly, this did not show up on the forum where it was supposed to. I received an email and could find this post only through that email.]


But to address your question:


The web_order_line_item_id is specific to a purchase of a particular subscription renewal - e.g. from October 3 to November 3, 2017. It is the same for all devices that are associated with that subscription - e.g. my iPhone X and my iPad. It differs from month to month. If I have 12 renewals and 2 devices there will be 12 different web_order_line_item_id's.


The original_transaction_id is specific to a subscription and all its autorenewals. It is the same for the purchase in October and November and December and January and February and.... It may* be different from device to device. My iPhone X may * have a different original_transaction_id than my iPad. If I have 12 renewals and 2 devices there will be 2* different original_transaction_id's.


* Here's what I do not know - is the original_transaction_id on my iPhone X the same or different from the original_transaction_id on my iPad if I do 1) a restoreCompletedTransaction from my iPad or 2) a refresh receipt from the iPad. Before the refersh receipt was introduced it was different. After the refresh receipt it may be the same. I don't know. perhaps someone will respond.