我将API 3用于我的app.Currently中的应用程序特性,用于测试目的,我使用的是测试项代码。
android.test.purchased
如果我再一次点击“购买”按钮,它说“已经购买”,让用户购买product.But需要30分钟,我试着用下面的代码消费这个产品,但是它最终在QueryInventoryFinishedListener's
(result.isFailure)中结束,它是我的消费代码。
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
示例项目进行调用。
发布于 2015-03-25 12:25:49
我得到了解决方案谢谢,我需要编辑security.java文件从琐碎的驱动器项目.I更改了“返回假”行在verifyPurchase方法中改为“返回真”(不要忘记它的唯一调试模式),.Now我可以在app中成功地使用测试,.Following是验证购买方法的编辑
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);
}
https://stackoverflow.com/questions/29254515
复制相似问题