在Kindle Fire应用中测试应用内购买功能

4

即使使用亚马逊应用商店SDK测试器,我也无法测试应用内购买。

public void onPurchaseResponse(final PurchaseResponse purchaseResponse)

即使我有一个带有虚假JSON的amazon.sdktester.json文件,但purchaseResponse始终显示"INVALID_SKU"。

文件内容: { "test" : { "itemType": "CONSUMABLE", "price": 0.99, "title": "More Clicks!", "description": "Click your button ten more times!", "smallIconUrl": "http://www.google.com/images/srpr/logo3w.png" },

"com.amazon.buttonclicker.ten_clicks" : {
    "itemType": "CONSUMABLE",
    "price": 0.99,
    "title": "More Clicks!",
    "description": "Click your button ten more times!",
    "smallIconUrl": "http://www.google.com/images/srpr/logo3w.png"
  },

  "com.amazon.buttonclicker.blue_button" : {
    "itemType": "ENTITLED",
    "price": 0.99,
    "title": "Blue Button",
    "description": "Button Clicker - Now in Blue!",
    "smallIconUrl": "http://www.google.com/images/srpr/logo3w.png"
  }
}

即使示例应用程序也无法正常工作。 您有什么建议可以测试应用程序吗?似乎Amazon SDK Tester无法拦截请求。


新手问题:在让应用程序正常工作之前,您是否需要在Amazon开发者门户中注册示例应用程序和IAP项目及其SKU? - nicordesigns
5个回答

4
这是我如何使Kindle Fire上的应用内购买功能正常工作(经过数小时的挣扎...):
  1. adb install AmazonSDKTester.apk(在Kindle Fire上安装SDKTester)
  2. 在SDCARD目录中创建amazon.sdktester.json文件(连接的KF显示为SDCARD在Mac Finder中)
  3. amazon.sdktester.json的内容 - { "com.yourcompany.yourpkgname.200_coins" : { "itemType": "CONSUMABLE", "price": 0.99, "title": "200 COINS", "description": "2 COINS", "smallIconUrl": "http://www.yourcompany.com/icon.png" } }
  4. 按下KF上的电源按钮并按“断开连接”按钮 - 现在KF不再是您Mac上已挂载的驱动器。
  5. 在KF上运行AmazonSDKTester应用。
  6. 从Eclipse运行您的应用程序。确保JSON中的包名称与Amazon网站和PurchasingManager.initiatePurchaseRequest("com.yourcompany.yourpkgname.200_coins");中的应用内物品SKU匹配
  7. 现在,您可以看到应用内广告正在显示出来。
  8. 仍然无法正常工作 - 强制关闭您的应用程序和KF上的AmazonSDKTester; 强制重置KF; 从步骤1重新启动Eclipse并重新开始。

我该如何检测应用程序是否已经购买,就像在Play商店中的QueryInventory一样? - Amit Hooda
值得一提的是,IAP v2 只能与通过亚马逊商店分发的 AmazonSDKTester 一起使用。我花了一些时间才找到它。感谢这个链接:https://forums.developer.amazon.com/forums/thread.jspa?threadID=3735(在已知问题和有用笔记 v2 下)。尽管文档对我来说看起来不一致和零散。 - vir us

2

不要忘记在你的JSON中包含外部的{}大括号。 我花了3个小时才弄明白这一点...


1

看起来像是魔法,但硬重置解决了我所有的问题。


我能够测试可消耗和订阅项目,但无法通过应用程序测试器重置所有内容以从头开始。强制关闭+清除数据->解决它! - Tobliug

1
请确保在将USB电缆连接到计算机后按下断开连接按钮,否则SDK测试工具将无法读取您移动的JSON文件,因为此时设备已被挂载。我是通过艰难的方式发现这一点的。

我也遇到了这个问题,如果我没记错的话,我将JSON文件移动过去,强制关闭了SDK测试器,重新打开,然后测试了我的应用程序。我记得它似乎有点不稳定。 - Ryan Routon

0

我曾经遇到过与你相同的问题,关键在于:在你的Java代码中,你的项目ID必须等于JSON文件中的SKU,在这种情况下,它必须是:com.amazon.buttonclicker.ten_clickscom.amazon.buttonclicker.blue_button。以下是亚马逊提供的SampleIAPConsumablesAppSampleIAPEntitlementsApp示例项目的JSON文件示例:

{
"com.amazon.sample.iap.consumable.orange" : {

    "itemType": "CONSUMABLE",

    "price": 0.99,

    "title": "More Clicks!",

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

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

  },

  "com.amazon.sample.iap.entitlement.level2" : {

    "itemType": "ENTITLED",

    "price": 0.99,

    "title": "Blue Button",

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

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

  }
}  

祝你好运!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接