Amazon rejected our IAP App because it won't run on a Samsung device

I also have this issue which is critical roadblock for our app.

Here is rejection response from Amazon:

Bug Description: Functionality fail
Steps to Reproduce:

  1. Install and launch the app 
  2. Tap on any IAP
  3. Tap on “Buy Now”
  4. App keeps loading. 

Device : 4.1.x / HTC

bump this thread

Hi @Blerdo,

As the Amazon IAP plugin is a 3rd-party plugin (Amazon), we don’t have direct control over the source or functionality. Each plugin documentation page has a Support section at the bottom, and I encourage you to contact them directly about this issue. We are also making them aware of the issue and are trying to get a fix in place as quickly as possible.

http://docs.coronalabs.com/daily/plugin/amazon.iap/index.html

Thanks,

Brent

Will do.

I’m quite sure that the Amazon IAP plugin worked on my Samsung Galaxy S1 when I implemented Amazon IAP a few months back.

I’ll have to take a look and see.

Just thought about one thing:

I have the Amazon App Store app installed on the device, which I assume is required for IAP to function properly.

I had a look at the approval confirmation I got from Amazon in August.

Apparently they tested on a Samsung device. (This app includes Amazon IAP)

RESULTS: YOUR APP CLEARED TESTING FOR ALL TARGETED DEVICES

Device Result Comments
Non-Amazon Android (SAMSUNG - 4.1.X )  PASS
Fire HD 8.9 WAN  PASS
Fire HD 8.9 Wifi  PASS
Kindle Fire (1st Generation)  PASS
Kindle Fire  PASS
Kindle Fire HD  PASS

I just tested the approved version, downloaded from the Amazon App Store, on my Samsung Galaxy S1 (Android 2.3.6) and IAP works fine.

The big difference here is that my app was built with Corona SDK 2013.1197.

I recompiled my Amazon IAP app with the latest build (2013.1247), and IAP works as expected on my Samsung Galaxy S1.

(I made a test-purchase and it processed the transaction properly)

@ingemar Thank you so much for all this work! It seems obvious, but I don’t have the Amazon store on my Samsung. So let me get that installed in the next days and give it another try. Will keep this thread posted.

@ingemar - So, we did some testing on my Samsung Galaxy S4 and what we found is that if we add BOTH the Amazon Market and the SDKTester to our device, then store.init() works with the following trace:

D/PurchasingManager(28630): In App Purchasing SDK - Sandbox Mode: PurchasingObserver registered: plugin.amazon.iap.CoronaPurchasingObserver@425c0ec0 I/PurchasingManager(28630): Purchasing Framework initialization complete. Build ID 1.0.3 D/qdmemalloc(  211): ion: Mapped buffer base:0x479e2000 size:8355840 fd:53 E/WifiHW  (  772): ##################### set firmware type 0 ##################### D/WifiStateMachine(  772): setWifiEnabled : WifiNative.setFwType(0) D/qdmemalloc(  211): ion: Mapped buffer base:0x40081000 size:4096 fd:55 D/SandboxRequestHandler(28630): In App Purchasing SDK - Sandbox Mode: sendGetUserIdRequest E/SELinux (28659): selinux\_android\_seapp\_context\_reload: seapp\_contexts file is loaded from /seapp\_contexts D/dalvikvm(28659): Late-enabling CheckJNI D/STATUSBAR-NetworkController( 1041): refreshSignalCluster: data=0 bt=false I/dalvikvm(28659): Turning on JNI app bug workarounds for target SDK version 9... V/AlarmManager(  772): waitForAlarm result :4 D/qdmemalloc(  211): ion: Mapped buffer base:0x43290000 size:737280 fd:67 D/qdmemalloc(  211): ion: Mapped buffer base:0x40490000 size:4096 fd:69 I/AmazonSDKTester(28659): Sending UserId Response Broadcast ({"status":"SUCCESSFUL","requestId":"25ae1434-3204-423d-9d91-246ba566add9","userId":"DefaultTestUser"}) D/SandboxResponseHandler(28630): In App Purchasing SDK - Sandbox Mode: handleResponse D/SandboxResponseHandler(28630): In App Purchasing SDK - Sandbox Mode: Running Runnable for userIdResponse with requestId: 25ae1434-3204-423d-9d91-246ba566add9  

But, if we were to have only the Amazon Market without the SDK Tester, then store.init() fails and here is the trace (it doesn’t return)

D/PurchasingManager(28007): In App Purchasing SDK - Sandbox Mode: PurchasingObserver registered: plugin.amazon.iap.CoronaPurchasingObserver@425f89f0 I/PurchasingManager(28007): Purchasing Framework initialization complete. Build ID 1.0.3 D/qdmemalloc(  211): ion: Mapped buffer base:0x473ca000 size:8355840 fd:61 D/qdmemalloc(  211): ion: Mapped buffer base:0x400f1000 size:4096 fd:50 D/dalvikvm( 1311): GC\_CONCURRENT freed 496K, 9% free 18241K/20000K, paused 2ms+2ms, total 47ms D/FlurryAgent(28007): Report successful D/SandboxRequestHandler(28007): In App Purchasing SDK - Sandbox Mode: sendGetUserIdRequest W/ActivityManager(  772): Unable to start service Intent { act=com.amazon.testclient.iap.appUserId flg=0x10000000 (has extras) } U=0: not found  

Not sure why it won’t work without SDKTester. But you are correct, store.init() is now working for us.

Thanks!!

Shucks, I forgot to mention the SDKTester. It’s needed when you’re testing a debug build (or build that’s not yet published at Amazon).

The Amazon App Store app is needed for the official, approved app.

@ingemar Thanks for your terrific help!!