首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >android在应用程序中购买API 3消费测试购买

android在应用程序中购买API 3消费测试购买
EN

Stack Overflow用户
提问于 2015-03-25 11:34:13
回答 1查看 285关注 0票数 1

我将API 3用于我的app.Currently中的应用程序特性,用于测试目的,我使用的是测试项代码。

android.test.purchased

如果我再一次点击“购买”按钮,它说“已经购买”,让用户购买product.But需要30分钟,我试着用下面的代码消费这个产品,但是它最终在QueryInventoryFinishedListener's (result.isFailure)中结束,它是我的消费代码。

代码语言:javascript
运行
复制
public void consumeItem() {
        mHelper.queryInventoryAsync(mReceivedInventoryListener);

    }

    IabHelper.QueryInventoryFinishedListener mReceivedInventoryListener = new IabHelper.QueryInventoryFinishedListener() {
        public void onQueryInventoryFinished(IabResult result,
                Inventory inventory) {


            if (result.isFailure()) {
                // Handle failure

                Log.i("Ajji", "Failed in Query Inventory Finished Listener");

            } else {
                mHelper.consumeAsync(inventory.getPurchase(ITEM_SKU),
                        mConsumeFinishedListener);

            }
        }
    };

    IabHelper.OnConsumeFinishedListener mConsumeFinishedListener = new IabHelper.OnConsumeFinishedListener() {
        public void onConsumeFinished(Purchase purchase, IabResult result) {

            if (result.isSuccess()) {
                // clickButton.setEnabled(true);

                Log.i("Ajji", "Item Consumed Successfully");
                rowPayment.setClickable(true);

            } else {
                // handle error
                Log.i("Ajji", "Not Consumed");
            }
        }
    };

我将此方法称为消费项目,并使用google的Trivial Drive示例项目进行调用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-25 12:25:49

我得到了解决方案谢谢,我需要编辑security.java文件从琐碎的驱动器项目.I更改了“返回假”行在verifyPurchase方法中改为“返回真”(不要忘记它的唯一调试模式),.Now我可以在app中成功地使用测试,.Following是验证购买方法的编辑

代码语言:javascript
运行
复制
public static boolean verifyPurchase(String base64PublicKey,
        String signedData, String signature) {
    if (TextUtils.isEmpty(signedData) || TextUtils.isEmpty(base64PublicKey)
            || TextUtils.isEmpty(signature)) {
        Log.e(TAG, "Purchase verification failed: missing data.");
        if (BuildConfig.DEBUG) {
            return true;
        }
        return false;
    }

    PublicKey key = Security.generatePublicKey(base64PublicKey);
    return Security.verify(key, signedData, signature);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29254515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档