I updated Unity IAP to version 1.23.2. But I’m having problems. But when I stop buying products show “PurchaseFailureReason.UserCanceled” log, but also completes the purchase and displays the “ProcessPurchase: PASS. Product:” log.
I wasn’t having this problem in version 1.23.1. How can I revert to version 1.23.1? I couldn’t find the unitypackage file anywhere.
How’s it going? It’s really annoying that IStoreListener.ProcessPurchase() is called right after IStoreListener.OnPurchaseFailed() (by user cancel).
For me, this situation is always occurred by this way:
Make a pending receipt.
Restarts the app.
Consume the receipt.
Try to buy a product, but cancel this time.
OnPurchaseFailed() is called with a code: user canceled.
Right after that, ProcessPurchase() is called.
When the situation occurs, the transaction ID value on ProcessPurchase() is actually the purchase token and the product info is same to the previously consumed one. I think it’s natural that there’s no transaction ID because the transaction was never happen by user cancel.
This problem lead my logging system to be totally screwed up, so I want to know any workaround or when it will be solved.
Thank you for the fast and helpful reports of the behavior after reinstallation!
[Unity IAP 1.23.3 is now released]( Unity IAP package 4.12.2 is now available page-2#post-6041324) and includes the functionality of 1.23.2 with a change to disable by default the problematic behavior @lowLevell (and @ryule_unity ) reported, “stop buying products [cancel purchase, then it] completes the purchase”.
Please see the release notes for more detail on how to opt-in to this feature for more immediate recovery and notification of successful purchases which were previously interrupted, which is safe to use if the game supplements the erasable TransactionLog Unity IAP on-device database with a transaction-ID de-duplication server.