We released our game with subscription added to it. For apple side verification we use apple original transaction id and we also save it for our own purpose. 33% of our users are pushing this appleOriginalTransactionID on our database as empty string. We are not able to reproduce the case locally. Game is on Unity 2021 IAP version is v4.9.4 Its happening on IOS devices only.
I’m seeing this as well, but only on the very first purchase. When I checked the release notes for the update that added appleOriginalTransactionId (see UGS Release Notes), it says:
Added: Apple - Product.appleOriginalTransactionId :
Returns the original transaction ID. This field is only available when the purchase was made in the active session.
Because the purchase dialog causes the app to move to the background on that initial transaction, I suspect the ID might not be captured correctly in that moment, which could be why appleOriginalTransactionId comes back empty. However, since others mention this doesn’t reproduce locally (and there are no replies here), I’m wondering if anyone else is actually seeing it—or if it’s just me. If there’s a workaround, please let me know. If this is a bug, it would be great if Unity could address it in an upcoming patch.
Unity 2022.3.47f1, Unity IAP 4.12.2
Thanks in advance for any insight.
Update: I checked again and the issue no longer reproduces, so the problem has disappeared.
My previous suspicion—“Because the purchase dialog causes the app to move to the background on that initial transaction, I suspect the ID might not be captured correctly, which could explain why appleOriginalTransactionId comes back empty.”—may have been incorrect.
Yesterday, during Apple review and in my environment, the appleOriginalTransactionId was indeed empty. It’s possible there was a Store outage, but Apple’s status page no longer shows history, so I can’t verify. For your reference.