我正在Android上测试应用内计费。我可以购买托管产品,并从服务器获得预期的响应。然而,当我尝试从同一设备重新购买托管产品时,我没有从google play获得任何响应。
When re-buying I do get the popup message titled "Item already purchased", but then there's no response.But the amazing thing is i got response all time earlier.Even if i am trying to re buy same product from same device. Can anyone help me to resolve the issue? 另外,有没有办法检查产品是否已经购买?
代码:
@Override
public void onPurchaseStateChange(PurchaseState purchaseState,
String itemId, int quantity, long purchaseTime,
String developerPayload) {}当我尝试重新购买时,没有调用onPurchaseStateChange()函数。
只得到一个RESULT_ERROR响应onRequestPurchaseResponse()从谷歌play.But我是我能够在第一次购买的产品,并得到了PurchaseState.PURCHASED status.In的情况下,重新购买没有状态返回。这是因为与Google Play相关的服务器错误吗?
发布于 2012-10-01 07:40:14
您不应该重新购买托管项目。如果要多次销售某物,请使用非托管项。
作为对试图重新购买你已经拥有的东西的回应,RESULT_ERROR似乎是合理的。如果没有发生购买,您将不会请求一个采购状态已更改消息。
是否确实没有将正在使用的项从非托管更改为托管?或者,您以前使用的是测试产品,现在使用的是真正的产品?(你可以一遍又一遍地购买android.test.purchased )
你的应用程序应该跟踪已经进行的购买,这样你就可以将托管项目标记为已购买,以防止用户试图重新购买它们(这样他们就知道他们已经购买了)。
你唯一需要检查用户是否已经拥有你的任何托管项目的时候是他们是否重新安装了你的应用程序。在这种情况下,您可以调用恢复事务并更新应用程序的本地记录,以记录已购买的内容。
https://stackoverflow.com/questions/12476863
复制相似问题