in-app purchase for Amazon Appstore

今天在做 in-app purchase for Amazon,没有办法只能针对各个市场一个一个地做啦。

错误1:

05-07 15:17:05.967: E/AmazonSDKTester(938): Unable to get item information during purchase

05-07 15:17:05.967: E/AmazonSDKTester(938): com.amazon.testclient.TestClientException: JSON file does not exist on the device's external storage

05-07 15:17:05.967: E/AmazonSDKTester(938): at com.amazon.testclient.discovery.DiscoveryClient.readFile(DiscoveryClient.java:94)

05-07 15:17:05.967: E/AmazonSDKTester(938): at com.amazon.testclient.discovery.DiscoveryClient.getItemData(DiscoveryClient.java:74)

05-07 15:17:05.967: E/AmazonSDKTester(938): at com.amazon.testclient.purchase.PurchaseAction.handlePurchaseFlow(PurchaseAction.java:84)

05-07 15:17:05.967: E/AmazonSDKTester(938): at com.amazon.testclient.KickstartService.onHandleIntent(KickstartService.java:38)

05-07 15:17:05.967: E/AmazonSDKTester(938): at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:59)

05-07 15:17:05.967: E/AmazonSDKTester(938): at android.os.Handler.dispatchMessage(Handler.java:99)

05-07 15:17:05.967: E/AmazonSDKTester(938): at android.os.Looper.loop(Looper.java:130)

05-07 15:17:05.967: E/AmazonSDKTester(938): at android.os.HandlerThread.run(HandlerThread.java:60)

05-07 15:17:05.967: E/AmazonSDKTester(938): Error getting item data for dcc826ec-0eff-4945-8b6d-b2dd5481da9a (com.amazon.buttonclicker.subscription.1mo)


出现原因:

json file位置放置错误,根据 amazon的文档应该放在 /mnt/sdcard/amazon.sdktester.json  这个位置,于是我就在sdcard中创建了这个目录,结果证明这样做是不正确的,正确的做法直接将amazon.sdktester.json放在sdcard根目录下。

还发现一个问题,当把手机与电脑相连时,无法访问sd card,这是因为你打开了debug调试,对sd card采用了所谓的“硬盘模式”而导致的。如果不打开debug调试就无法跟踪logcat里面的日志信息。这个问题的解决方法就是----- 改变手机与电脑的连接方式。

menu--->Settings ---->PC/Sync Settings(under System tab) ----> close Mount SD card  (use default connection type)



错误2:

05-07 15:33:22.480: E/AmazonSDKTester(938): Unable to get item information during purchase
05-07 15:33:22.480: E/AmazonSDKTester(938): com.amazon.testclient.TestClientException: org.json.JSONException: Value com.amazon.buttonclicker.ten_clicks of type java.lang.String cannot be converted to JSONObject
05-07 15:33:22.480: E/AmazonSDKTester(938): at com.amazon.testclient.discovery.DiscoveryClient.readFile(DiscoveryClient.java:138)
05-07 15:33:22.480: E/AmazonSDKTester(938): at com.amazon.testclient.discovery.DiscoveryClient.getItemData(DiscoveryClient.java:74)
05-07 15:33:22.480: E/AmazonSDKTester(938): at com.amazon.testclient.purchase.PurchaseAction.handlePurchaseFlow(PurchaseAction.java:84)
05-07 15:33:22.480: E/AmazonSDKTester(938): at com.amazon.testclient.KickstartService.onHandleIntent(KickstartService.java:38)
05-07 15:33:22.480: E/AmazonSDKTester(938): at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:59)
05-07 15:33:22.480: E/AmazonSDKTester(938): at android.os.Handler.dispatchMessage(Handler.java:99)
05-07 15:33:22.480: E/AmazonSDKTester(938): at android.os.Looper.loop(Looper.java:130)
05-07 15:33:22.480: E/AmazonSDKTester(938): at android.os.HandlerThread.run(HandlerThread.java:60)
05-07 15:33:22.480: E/AmazonSDKTester(938): Caused by: org.json.JSONException: Value com.amazon.buttonclicker.ten_clicks of type java.lang.String cannot be converted to JSONObject
05-07 15:33:22.480: E/AmazonSDKTester(938): at org.json.JSON.typeMismatch(JSON.java:107)
05-07 15:33:22.480: E/AmazonSDKTester(938): at org.json.JSONObject.<init>(JSONObject.java:158)
05-07 15:33:22.480: E/AmazonSDKTester(938): at org.json.JSONObject.<init>(JSONObject.java:171)
05-07 15:33:22.480: E/AmazonSDKTester(938): at com.amazon.testclient.discovery.DiscoveryClient.readFile(DiscoveryClient.java:100)
05-07 15:33:22.480: E/AmazonSDKTester(938): ... 7 more
05-07 15:33:22.480: E/AmazonSDKTester(938): Error getting item data for 89350660-aac2-461b-9b22-16ecdfa09c41 (com.amazon.buttonclicker.subscription.1mo)

出现原因:

暂时不清楚: Error getting item data for 89350660-aac2-461b-9b22-16ecdfa09c41 (com.amazon.buttonclicker.subscription.1mo)  为什么出现这个?

此时所用的json文件内容如下:

# Creating the JSON Data File

# The SDK Tester Uses a JavaScript Object Notation (JSON) text file to contain

# the IAP item information used to respond to IAP API calls.  This file resides 

# on the device containing the app under test and the SDK Tester. Once created,

# the file needs to reside on the device's file system under the path:

# /mnt/sdcard/amazon.sdktester.json

# The contents of the file is a list of JSON objects that should have the same

# properties as the IAP items that you entered into the Developer Portal. This

# ensures you are testing with the same item attributes that will be available

# in the live environment.

# The overall format of the JSON file is (note the commas!):

# { IAP Item Definition 1 },

# { IAP Item Definition 2 },

# .

# .

# .

# { IAP Item Definition n }

# Where "IAP Item Defintion" is:

# {

#     SKU_1:{IAP_Item_1_Description},

#     SKU_2:{IAP_Item_2_Description},

#     .

#     .

#     .

#     SKU_n:{IAP_Item_n_Description}

# }

# Format for ENTITLED and CONSUMABLE Items:

# "SKU":{

#   "itemType": "ENTITLED|CONSUMABLE",

#   "price": item_price,

#   "title": item_title,

#   "description": item_description,

#   "smallIconUrl": "http://path_to_image",

# }

# examples:

 

 "com.amazon.buttonclicker.ten_clicks" : {

     "itemType": "CONSUMABLE",

     "price": 0.99,

     "title": "More Clicks!",

     "description": "Click your button ten more times!",

     "smallIconUrl": "http://some/image.jpg"

   }

  

   "com.amazon.buttonclicker.blue_button" : {

     "itemType": "ENTITLED",

     "price": 0.99,

     "title": "Blue Button",

     "description": "Button Clicker - Now in Blue!",

     "smallIconUrl": "http://some/image.jpg"

   }

# Format for Subscription Items:

# "SKU":{

#   "itemType": "ENTITLED|CONSUMABLE",

#   "price": item_price,

#   "title": item_title,

#   "description": item_description,

#   "smallIconUrl": "http://path_to_image",

#   "subscriptionParent": "parentSKU"

# }

# example:

 "com.amazon.buttonclicker.subscription.1mo" : {

   "itemType" : "SUBSCRIPTION",

   "price" : 3.99,

   "title": "Button Clicker",

   "description": "Click your button!",

   "smallIconUrl": "http://some/image.jpg",

   "subscriptionParent": "com.amazon.buttonclicker.subscription"

 }


不知道格式有什么错误!


经过不断测试发现,json文件书写有问题:整体格式应该是 {"SKU1":{},"SKU2":{},"SKU3":{}}  注意它们之间的逗号

{

 "com.amazon.buttonclicker.ten_clicks" : {

     "itemType": "CONSUMABLE",

     "price": 0.99,

     "title": "More Clicks!",

     "description": "Click your button ten more times!",

     "smallIconUrl": "http://some/image.jpg"

   },

"com.amazon.buttonclicker.blue_button" : {

     "itemType": "ENTITLED",

     "price": 0.99,

     "title": "Blue Button",

     "description": "Button Clicker - Now in Blue!",

     "smallIconUrl": "http://some/image.jpg"

   },

"com.amazon.buttonclicker.purple_button" : {

     "itemType": "ENTITLED",

     "price": 0.99,

     "title": "Purple Button",

     "description": "Button Clicker - Now in Purple!",

     "smallIconUrl": "http://some/image.jpg"

   },

"com.amazon.buttonclicker.green_button" : {

     "itemType": "ENTITLED",

     "price": 0.99,

     "title": "Green Button",

     "description": "Button Clicker - Now in Green!",

     "smallIconUrl": "http://some/image.jpg"

   },

 "com.amazon.buttonclicker.subscription.1mo" : {

   "itemType" : "SUBSCRIPTION",

   "price" : 3.99,

   "title": "Button Clicker",

   "description": "Click your button!",

   "smallIconUrl": "http://some/image.jpg",

   "subscriptionParent": "com.amazon.buttonclicker.subscription"

 }

}


如上所示就是正确的json文件格式!经测试是完全正确的!

参考资料:

https://developer.amazon.com/sdk/in-app-purchasing.html



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值