就我而言,我在PlayStore上有应用内商品,并为不同国家设置不同的价格。接下来,每当我使用IabHelper.queryInventory()
获取产品时,产品的价格是基本价格而不是特定国家/地区。
基价为12.99欧元,我国的价格为9.99欧元。 IabHelper.queryInventory()
返回响应,价格为12.99欧元。但是当我购买并从PlayStore看到对话框时,它显示实际价格为9.99欧元。
在IabHelper中是一个问题还是我做错了什么?
答案 0 :(得分:0)
似乎只在某些国家/地区提供了应用内结算不同价格:https://support.google.com/googleplay/android-developer/answer/1169947?hl=en
如果您位于支持merchant registration的位置,请与您联系 可以通过Google Play以多种货币提供应用 开发者控制台。
您可以查询Google Play以编程方式检索与您的应用相关联的应用内商品的详细信息
设置queryInventoryAsync
mHelper.queryInventoryAsync(true, additionalSkuList, mQueryFinishedListener);
从结果集中检索商品价格
IabHelper.QueryInventoryFinishedListener mQueryFinishedListener = new IabHelper.QueryInventoryFinishedListener() {
public void onQueryInventoryFinished(IabResult result, Inventory inventory) {
if (result.isFailure()) {
// handle error
return;
}
String firstItemPrice= inventory.getSkuDetails(YOUR_SKU_ONE).getPrice();
String NthItemPrice = inventory.getSkuDetails(YOUR_SKU_N).getPrice();
// update the UI
}
}
查看此参考以获取更多详细信息。 https://developer.android.com/training/in-app-billing/list-iab-products.html#QueryDetails
getSkuDetails()
方法。
此方法返回产品ID列表的产品详细信息。在Google Play发送的响应包中,查询结果存储在映射到DETAILS_LIST键的String ArrayList中。详细信息列表中的每个字符串都包含JSON格式的单个产品的产品详细信息。查看this API reference了解详情