Restoring Transactions does not work (non-consumable purchases).
I delete the game and re-install.
When the game starts, the store successfully initialized and logs can be seen that the purchase EXISTS on the server:
07-28 18:30:20.134: I/UnityIAP(13921): Sku is owned: com.game.mysupergame_donate_pack_2
But ProcessPurchase method is not called, though the documentation is written, it must be called automatically. Manual Restoring Transactions Unity IAP is not provided for Android.
For the sake of experiment, try manually again to buy goods. Reading logs. We see that the goods have ALREADY been bought and then he charged us successfully:
07-29 10:33:07.716: I/UnityIAP(13543): Unable to buy item (response: 7:Item Already Owned)
07-29 10:33:07.716: I/UnityIAP(13543): Product purchased successfully!
Why does not the automatic restoration of purchases and not called ProcessPurchase?
Full logs initialization when you start the game:
07-28 18:30:20.114: I/UnityIAP(13921): Starting in-app billing setup.
07-28 18:30:20.122: I/UnityIAP(13921): Billing service connected.
07-28 18:30:20.123: I/UnityIAP(13921): invoking callback
07-28 18:30:20.123: I/UnityIAP(13921): Checking for in-app billing 3 support.
07-28 18:30:20.126: I/Finsky(7529): [2555] com.google.android.finsky.billing.iab.q.a(160): com.game.mysupergame: Account from first account - [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]
07-28 18:30:20.127: I/UnityIAP(13921): In-app billing version 3 supported for com.game.mysupergame
07-28 18:30:20.129: I/Finsky(7529): [2554] com.google.android.finsky.billing.iab.q.a(160): com.game.mysupergame: Account from first account - [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]
07-28 18:30:20.129: I/UnityIAP(13921): Subscriptions AVAILABLE.
07-28 18:30:20.130: I/UnityIAP(13921): onIabSetupFinished: 0
07-28 18:30:20.130: I/UnityIAP(13921): Requesting 4 products
07-28 18:30:20.130: I/UnityIAP(13921): QueryInventory: 4
07-28 18:30:20.131: I/UnityIAP(13921): invoking callback
07-28 18:30:20.131: I/UnityIAP(13921): Querying owned items, item type: inapp
07-28 18:30:20.131: I/UnityIAP(13921): Package name: com.game.mysupergame
07-28 18:30:20.131: I/UnityIAP(13921): Calling getPurchases with continuation token: null
07-28 18:30:20.133: I/Finsky(7529): [2579] com.google.android.finsky.billing.iab.q.a(160): com.game.mysupergame: Account from first account - [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]
07-28 18:30:20.134: I/UnityIAP(13921): Owned items response: 0
07-28 18:30:20.134: I/UnityIAP(13921): Sku is owned: com.game.mysupergame_donate_pack_2
07-28 18:30:20.134: I/UnityIAP(13921): Continuation token: null
07-28 18:30:20.134: I/UnityIAP(13921): Querying SKU details.
07-28 18:30:20.137: I/Finsky(7529): [2555] com.google.android.finsky.billing.iab.q.a(160): com.game.mysupergame: Account from first account - [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]
07-28 18:30:20.189: I/UnityIAP(13921): Got sku details: SkuDetails:{"productId":"com.game.mysupergame_donate_pack_1","type":"inapp","price":"21,99 Š³ŃŠ½.","price_amount_micros":21990000,"price_currency_code":"UAH","title":"1000 Coins","description":"Coins for ingame purchases"}
07-28 18:30:20.189: I/UnityIAP(13921): Got sku details: SkuDetails:{"productId":"com.game.mysupergame_donate_pack_2","type":"inapp","price":"43,99 Š³ŃŠ½.","price_amount_micros":43990000,"price_currency_code":"UAH","title":"Ads removing","description":"Remove all Ads in the game"}
07-28 18:30:20.190: I/UnityIAP(13921): Got sku details: SkuDetails:{"productId":"com.game.mysupergame_donate_pack_2","type":"inapp","price":"43,99 Š³ŃŠ½.","price_amount_micros":43990000,"price_currency_code":"UAH","title":"Ads removing","description":"Remove all Ads in the game"}
07-28 18:30:20.190: I/UnityIAP(13921): Got sku details: SkuDetails:{"productId":"com.game.mysupergame_donate_pack_3","type":"inapp","price":"149,99 Š³ŃŠ½.","price_amount_micros":149990000,"price_currency_code":"UAH","title":"Coins double + Ads removing","description":"Coins double + Ads removing"}
07-28 18:30:20.190: I/UnityIAP(13921): Got sku details: SkuDetails:{"productId":"com.game.mysupergame_donate_pack_4","type":"inapp","price":"439,99 Š³ŃŠ½.","price_amount_micros":439990000,"price_currency_code":"UAH","title":"Unlimited fuel + Coins double + Ads removing","description":"Unlimited fuel + Coins double + Ads removing"}
07-28 18:30:20.190: I/UnityIAP(13921): Querying owned items, item type: subs
07-28 18:30:20.190: I/UnityIAP(13921): Package name: com.game.mysupergame
07-28 18:30:20.190: I/UnityIAP(13921): Calling getPurchases with continuation token: null
07-28 18:30:20.192: I/Finsky(7529): [2554] com.google.android.finsky.billing.iab.q.a(160): com.game.mysupergame: Account from first account - [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]
07-28 18:30:20.193: I/UnityIAP(13921): Owned items response: 0
07-28 18:30:20.193: I/UnityIAP(13921): Continuation token: null
07-28 18:30:20.193: I/UnityIAP(13921): Querying SKU details.
07-28 18:30:20.195: I/Finsky(7529): [2579] com.google.android.finsky.billing.iab.q.a(160): com.game.mysupergame: Account from first account - [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]
07-28 18:30:20.271: I/UnityIAP(13921): onQueryInventoryFinished: true
07-28 18:30:20.271: I/UnityIAP(13921): Inventory refresh successful. (response: 0:OK)
07-28 18:30:20.507: I/Unity(13921): OnInitialized: PASS
07-28 18:30:20.511: I/art(13921): Rejecting re-init on previously-failed class java.lang.Class<org.chromium.content.browser.FloatingWebActionModeCallback>
07-28 18:30:20.512: I/art(13921): Rejecting re-init on previously-failed class java.lang.Class<org.chromium.content.browser.FloatingWebActionModeCallback>
07-28 18:30:20.513: I/Unity(13921): 1000 Coins , 21,99 Š³ŃŠ½., price_int21.99, iso: UAH
07-28 18:30:20.513: I/Unity(13921): Ads removing , 43,99 Š³ŃŠ½., price_int43.99, iso: UAH
07-28 18:30:20.513: I/Unity(13921): Coins double + Ads removing , 149,99 Š³ŃŠ½., price_int149.99, iso: UAH
07-28 18:30:20.514: I/Unity(13921): Unlimited fuel + Coins double + Ads removing , 439,99 Š³ŃŠ½., price_int439.99, iso: UAH
Unity 5.3.4
Tested on Samsung Galaxy S5 and Nexus 7 2013 (Android 5).
The application runs on Google Play in alpha.