标签:
在你发布 In-app Billing 应用前,你需要在 Google Play 开发者控制台 定义可供购买的数字商品列表。
在开发者控制台,你可以定义内购商品的商品信息并把这些商品和你应用关联起来。
在商品列表里添加新的内购商品:
重要: In-app Billing Version 3 服务现在只支持受管理内购商品,所以在开发者控制台当你向商品列表添加一个新商品时,要确保设置这个商品的类型为“受管理的”。
提醒: It may take up to 2-3 hours after uploading the APK for Google Play to recognize your updated APK version. 在你 APK 上传到后,Google Play可能需要2-3小时来识别你更新的 APK 版本。如果你在Google Play识别完你上传的APK之前就做测试的话,你的应用会收到一个带有 “In-app Billing在当前版本应用不可用” 错误信息的 “购买取消” 回应。
你可以通过代码方式向Google Play查询关联你应用的商品详细信息(像商品价格,名称,描述以及类型)。 这个对你很有帮助,比如你想展示哪些用户可以购买自己未拥有的商品时就可以用到。
注意: 在使用查询时你需要使用查询商品的明确商品ID。你可以从开发者控制台通过打开你应用的 In-app Products 标签手动找到这个商品ID。这些商品ID位于 Name/ID 标签栏下。
通过 IabHelper 实例调用 queryInventoryAsync(boolean, List, QueryInventoryFinishedListener) 方法来获取商品详细信息
true
)。List
参数由一个或多个你想查询商品的商品ID组成。QueryInventoryFinishedListener
参数指定了一个监听,当查询操作完成以及处理查询回应时这个监听收到通知。
下面的代码展示了如何获取商品ID为 SKU_APPLE
和 SKU_BANANA
的两个商品的详细信息,这两个商品ID是先前在开发者控制台定义的。
List additionalSkuList = new List(); additionalSkuList.add(SKU_APPLE); additionalSkuList.add(SKU_BANANA); mHelper.queryInventoryAsync(true, additionalSkuList, mQueryFinishedListener);
如果这个查询成功执行,查询结果会存到一个 Inventory
对象中,这个对象会回传给先前传入的监听。
下面的代码展示了如何从查询结果中获取商品价格。
IabHelper.QueryInventoryFinishedListener mQueryFinishedListener = new IabHelper.QueryInventoryFinishedListener() { public void onQueryInventoryFinished(IabResult result, Inventory inventory) { if (result.isFailure()) { // handle error return; } String applePrice = inventory.getSkuDetails(SKU_APPLE).getPrice(); String bananaPrice = inventory.getSkuDetails(SKU_BANANA).getPrice(); // update the UI } }
标签:
原文地址:http://www.cnblogs.com/lovexb/p/4672562.html