当我再次尝试购买商品时,会出现以下错误。请不要将此作为副本关闭。我知道在堆栈溢出中有很多这样的问题,但似乎都没有帮助。请参考我的代码。
public class BtnListener implements View.OnClickListener
{
// On-click event handler for all the buttons
@Override
public void onClick(View view)
{
switch (view.getId())
{
case R.id.TwoSeconds:
mHelper.launchPurchaseFlow(TimeBoosterActivity.this, ITEM_SKU, 10001,
mPurchaseFinishedListener, "2");
break;
}
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent data)
{
if (!mHelper.handleActivityResult(requestCode,
resultCode, data)) {
super.onActivityResult(requestCode, resultCode, data);
}
}
IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener
= new IabHelper.OnIabPurchaseFinishedListener() {
public void onIabPurchaseFinished(IabResult result,
Purchase purchase)
{
if (result.isFailure()) {
// Handle error
return;
}
else if (purchase.getSku().equals(ITEM_SKU)) {
consumeItem();
//buyButton.setEnabled(false);
}
}
};
public void consumeItem() {
mHelper.queryInventoryAsync(mReceivedInventoryListener);
}
IabHelper.QueryInventoryFinishedListener mReceivedInventoryListener
= new IabHelper.QueryInventoryFinishedListener() {
public void onQueryInventoryFinished(IabResult result,
Inventory inventory) {
if (result.isFailure()) {
Toast.makeText(getApplicationContext(), "Failed to consume item",
Toast.LENGTH_SHORT).show();
} else {
mHelper.consumeAsync(inventory.getPurchase(ITEM_SKU),
mConsumeFinishedListener);
}
}
};
IabHelper.OnConsumeFinishedListener mConsumeFinishedListener =
new IabHelper.OnConsumeFinishedListener() {
public void onConsumeFinished(Purchase purchase,
IabResult result) {
if (result.isSuccess()) {
String getSeconds=purchase.getDeveloperPayload();
SharedPreferences saveTwoSeconds=getSharedPreferences(getSeconds, Context.MODE_PRIVATE);
//clickButton.setEnabled(true);
} else {
// handle error
Toast.makeText(getApplicationContext(), "Failed to consume item",
Toast.LENGTH_SHORT).show();
}
}
};
@Override
public void onDestroy() {
super.onDestroy();
if (mHelper != null) mHelper.dispose();
mHelper = null;
}发布于 2016-02-29 20:11:02
首先,你需要弄清楚为什么会出现这个错误(错误响应:7:物品已经拥有)
有一些常见的情况:
1你只是购买了itemA,还没有消费它;
2另一个人(与你使用相同的谷歌账号)只需购买此itemA
第一种情况:只需消费itemA,您就可以再次购买。
情况2:您需要重启或删除google play服务和play商店缓存。然后使用消费该itemA的同一个google play帐户。
在第二种情况下,itemA的回执信息没有存储在您的设备中。重启或删除google play服务和play商店缓存,向google商店发出应用内计费请求,以获取购买的收据信息。所以你不能一次又一次地消费它。
发布于 2016-02-29 20:28:01
我认为你的消费购买没有被调用,因为你在onActivityResult中的代码。
尝试使用以下代码
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent data){
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == <Code you sent during launching purchase flow> || requestCode == <Code you sent during launching consume flow> )
mHelper.handleActivityResult(requestCode,resultCode, data))
}
}https://stackoverflow.com/questions/35680576
复制相似问题