Android应用内结算项目价格

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android应用内结算项目价格相关的知识,希望对你有一定的参考价值。

在实际显示应用内购买的android市场前端之前,如何检索应用内结算项目的价格?目前看起来用户只能在购买对话框中找到应用内商品的价格,并且我希望避免将所有支持货币的价格存储在应用程序中。

答案

现在可以使用Billing API v3。您可以使用getSkuDetails()方法获取信息。例子是here

ArrayList skuList = new ArrayList();
skuList.add("premiumUpgrade"); 
skuList.add("gas");
Bundle querySkus = new Bundle();
querySkus.putStringArrayList(“ITEM_ID_LIST”, skuList);

Bundle skuDetails = mService.getSkuDetails(3, getPackageName(), “inapp”, querySkus);

int response = skuDetails.getInt("RESPONSE_CODE");
if (response == 0) {
    ArrayList responseList = skuDetails.getStringArrayList("DETAILS_LIST");

    for (String thisResponse : responseList) {
        JSONObject object = new JSONObject(thisResponse);
        String sku = object.getString("productId");
        String price = object.getString("price");
        if (sku.equals(“premiumUpgrade”)) {
            mPremiumUpgradePrice = price;
        } else if (sku.equals(“gas”)) { 
            mGasPrice = price;
        }
    }
}
另一答案

如果您使用的是Trivial Drive示例并包含IabHelper类,则需要将skus列表传递给queryInventoryAsync。

    String[] moreSkus = {"SKU_ITEMONE", "SKU_ITEMTWO"};
    mHelper.queryInventoryAsync(true, Arrays.asList(moreSkus), mGotInventoryListener);
另一答案
String price = inventory.getSkuDetails("sku_of_your_product").getPrice();

以上是关于Android应用内结算项目价格的主要内容,如果未能解决你的问题,请参考以下文章

应用内结算测试:android.test.purchased 已拥有

Android 应用内结算货币代码始终为美元

Android 应用内结算意外响应

即使 IAP 的价格发生变化,Google Play 应用内结算 v3 getSkuDetails() 也会返回缓存结果

Android 应用内结算订阅验证

Android 应用内结算:退款的应用内购买未取消