Hello,
Our game is being served on the Amazon App Store.
I received an email from Amazon like the one below.
Would you like to check the logic to generate AndroidManifest.xml for Amazon App Store?
================================
Note: You are receiving this email because you may have set incorrect ResponseReceiver permissions in your AndroidManifest.xml. We recommend you correct this issue right away.
We’re writing to inform you about an update to our In-App Purchasing API documentation. As part of this integration, your app needs to receive broadcast intents from the Amazon Appstore via the ResponseReceiver class. This class is never used directly in your app, but for your app to receive broadcast intents, you must add an entry for the ResponseReceiver to your AndroidManifest.xml file.
In the code snippet for this entry we had previously included the android:permission element in the action element instead of the receiver element. The following code snippets show the changes and how to correctly add a ResponseReceiver to the AndroidManifest.xml file:
Prior Version:
... ...Updated Version:
…
…
What do you need to do?
Check permission element: In the AndroidManifest.xml find the element android:permission = “com.amazon.inapp.purchasing.Permission.NOTIFY”. If the element is in the action element move it to the receiver element as suggested above.
Check if consumable receipt is already fulfilled: If you sell consumables as an in-app benefit in your app, implement checks to make sure you don’t fulfill a previously fulfilled receipt. Check your back-end server to see if the receipt has been fulfilled previously. This is described in our SampleIAPConsumablesApp (in the examples directory in the SDK) and our external documentation.
What could happen if you don’t take these actions?
Currently, the Appstore app holds the signature-level permission com.amazon.inapp.purchasing.Permission.NOTIFY. If you don’t fix the android:permission element, the ResponseReceiver could potentially receive intents from other sources. This would result in you receiving a duplicate response containing a previously fulfilled receipt in your onPurchaseResponse() method. You would need to remove the duplicate receipts so as not to overfulfill the item. When you deliver an item, record that you have done so, and do not deliver again even if you receive a duplicate receipt.
If you need additional assistance, please Contact Us.
Thank You,
The Amazon Appstore Team