After having working IAP Subscriptions on Google and Apple I’m trying to get work the same IAP Subscriptions on Amazon AppStore.
It seems I’m doing something wrong on creating that Subscriptions IAP Products on Amazon AppStore.
I create a subscription with the same sku as I have on Google and Apple which I use when invoke “AddProduct(sku, ProductType.Subscription)” on IAP Plugin.
But I get a “Unavailable product sku - sku”. I don’t know why is duplicating sku - sku when trying to get the product.
I do have the amazon.sdktester.json on my phone to test.
@ArnauKokoro Unfortunately we don’t support Amazon subscriptions at this time, other users have reported the same behavior. We are hoping to address this later this year, perhaps Q2 or later.
@ArnauKokoro You might want to go straight to Live App Testing (LAT) mode. Sandbox mode have some real issues with subscriptions setup, even without using Unity IAP.
The statement from @JeffDUnity3D about not supporting Amazon subscriptions is not that scary, it is possible to make susbcriptions work with at least asset store 2.2.7 and com.unity.purchasing 2.2.2 (there were not that many changes since then as Amazon store is not on priority, so the latest Unity IAP should also work).
As far as my experience tells me, there are some minor issues to take care about:
Even if you use accelerated timelines in LAT mode, Amazon store will return real eta after server side validation (if you use one, of course); that is not related to Unity IAP directly and touches server side validation only
There will be no meta information on subscription after purchase, so no eta will be available; despite that fact you can still use hasReceipt property to track whether subscription is still active or not; I guess (but not really sure) that this is not Unity IAP issue - that is how Amazon store works, so can consider the issue as ‘by design’
If you will try to purchase already purchased subscription (that is also true for other types of product: consumable and entitlements), you won’t get PurchaseFailed callback with DuplicateTransaction error; you will get ProcessPurchase instead, but with empty transactionId argument
If you leave native purchase window by just clicking outside native window, you will get Unknown error instead of UserCancelled
Also with “parent - child” subscription relation scheme don’t remember that whatever sku (child or parent) you choose to purchase, ProcessPurchase will come with parent sku; but meta info will come to children skus (after initialization)
Also both parent and children skus have to be passed to IAP builder prior init.
@JeffDUnity3D you might want take a look at some issues from the list to compare with ones you already know.
And also I would like to suggest Unity IAP team to publish somewhere (with changelog maybe?) the list of known issues (if there is one) - I guess that can help other users as there are lots of repeating threads on forum with such type of issues.
I just tested it with last Unity IAP Plugin version and everything works perfect on LAT mode. I will take care with those three bullet points you tell us.
I added separately parent and child skus on builder and when Purchasing I use parent sku (the main sku when creating the iap product on Amazon AppStore).
@Remstam I’m trying to get product.metada.localizedPriceString but I get 0.
Other params like product.metada.isoCurrencyCode are correct but not the price.
@ArnauKokoro No, didn’t see that. If you properly set up prices in Amazon dashboard, that might be another Unity IAP issue as product metadata is operated by Unity IAP directly.