2012-09-18 87 views
0

我在Android上测试应用内结算。我能够购买被管理的产品,并从服务器获得预期的响应。但是,当我尝试重新购买来自同一设备的被管理产品时,我没有从Google Play获得任何回复。

当再次购买时,我会看到标题为“已购买的商品”的弹出式消息,但是没有任何回应。但令人惊奇的是,我早已得到响应。即使我试图重新购买同一产品设备。任何人都可以帮我解决这个问题吗?
还有什么办法来检查产品是否已经购买或没有?

代码:当我试图重新买In App Purchase Android:购买已购买产品时Google Play没有回应

@Override 
public void onPurchaseStateChange(PurchaseState purchaseState, 
           String itemId, int quantity, long purchaseTime, 
           String developerPayload) {} 

onPurchaseStateChange()函数没有被调用。
只有从google play获得了RESULT_ERROR对onRequestPurchaseResponse()的回应。但是我可以在第一次购买产品并获得PurchaseState.PURCHASED状态。在重新购买的情况下,不会返回任何状态。这是由于与Google Play相关的服务器错误?

回答

1

你不应该重新购买托管物品。如果您想多次使用非托管物品进行销售。

RESULT_ERROR在尝试重新购买您已经拥有的东西似乎是合理的。如果没有购买发生,您不会要求购买状态更改消息。

你确定你没有改变你使用的项目从非托管到托管吗?或者,也许您正在使用测试产品,现在您正在使用实际产品? (您可以反复购买android.test.purchased)

您的应用应该跟踪已购买的商品,以便您可以将托管商品标记为已购买,以防止用户尝试重新购买它们(以及他们知道他们已经购买了他们)。

您需要检查用户是否已拥有任何托管项目的唯一时间是重新安装应用程序。在这种情况下,您会进行还原交易呼叫并更新已购买内容的应用程序本地记录。