Android 在Google Play应用内账单上消费取消的购买
我正在开发一个应用程序,它利用Google Play In app Billing V3销售一个在一定时间内有效的商品。用户购买后,我将购买数据发送到服务器,如果成功,我会立即使用它。然后,服务器授予该特定用户对额外服务的访问权,直到该期间结束。注意:我没有使用应用内订阅 我在沙箱模式下与测试用户一起测试购买,不进行付款。它们中的大多数都是成功的,并且这个流程运行良好。然而,有时,我的购买被谷歌立即取消。在我的Google Checkout帐户的订单历史记录中,我看到一行: “为了保护你,谷歌取消了这个订单。交易被取消了 被视为欺诈。” 即使发生这种情况,我看到我在购买数据中收到一个Android 在Google Play应用内账单上消费取消的购买,android,google-play,in-app-billing,google-play-services,Android,Google Play,In App Billing,Google Play Services,我正在开发一个应用程序,它利用Google Play In app Billing V3销售一个在一定时间内有效的商品。用户购买后,我将购买数据发送到服务器,如果成功,我会立即使用它。然后,服务器授予该特定用户对额外服务的访问权,直到该期间结束。注意:我没有使用应用内订阅 我在沙箱模式下与测试用户一起测试购买,不进行付款。它们中的大多数都是成功的,并且这个流程运行良好。然而,有时,我的购买被谷歌立即取消。在我的Google Checkout帐户的订单历史记录中,我看到一行: “为了保护你,谷歌取
“purchaseState”:0
,表示成功。此外,尝试使用此产品也会成功(调用IInAppBillingService.consumePurchase(版本、包、令牌)
返回0)。稍后查询我的库存显示我没有购买(因此没有退款/取消),并且我可以再次自由购买相同的物品。这与正常、未取消状态下的行为相同
希望这有帮助。我正在设置相同类型的应用程序。
用户可以购买一个项目,它将在我的服务器上跟踪,并最终消费,因此用户可以再次购买相同的项目 我一直在跟踪有关购买的所有信息,并试图取消一个已消费的订单。我可以向您确认订单的状态将发生变化(大约10分钟后,您将收到关于取消的电子邮件) 使用productId和purchaseToken调用PurchaseAPI的此url将返回购买信息:
https://www.googleapis.com/androidpublisher/v2/applications/<app.package.name>/purchases/products/<productId>/tokens/<purchaseToken>?access_token=<myToken>
取消后,purchaseState将发生变化:
{
"kind": "androidpublisher#productPurchase",
"purchaseTimeMillis": "1458047931024",
"purchaseState": 1,
"consumptionState": 1,
"developerPayload": "mypurchasetoken"
}
这与我第一次为产品验证所做的相同。最好定期检查购买物品的状态,如果取消,则在服务器上更新购买信息。如果您在服务器上跟踪购买物品,则购买的orderId也是付款交易的ID。即使物品已经被消费,也要由您进行某种验证。
{
"kind": "androidpublisher#productPurchase",
"purchaseTimeMillis": "1458047931024",
"purchaseState": 1,
"consumptionState": 1,
"developerPayload": "mypurchasetoken"
}