7

我正在开发一个应用程序,该应用程序利用 Google Play 应用内计费 V3 来销售在一段时间内有效的商品。用户购买后,我将购买数据发送到我们的服务器,如果成功,我会立即使用它。然后,服务器授予此特定用户对额外服务的访问权限,直到该期限结束。注意:我没有使用应用内订阅。

我正在沙盒模式下与测试用户一起测试购买,其中不进行付款。他们中的大多数都是成功的,而且这个流程运行良好。但是,有时,Google 会立即取消我的购买。在我的 Google Checkout 帐户的订单历史记录中,我看到以下行:

“为了保护您,Google 取消了此订单。这笔交易被认为是欺诈性的。”。

即使发生这种情况,我看到我"purchaseState": 0在购买数据中收到一个,表示成功。此外,尝试使用此产品也会导致成功(调用IInAppBillingService.consumePurchase(version, package, token)返回 0)。稍后查询我的库存表明我没有购买(因此没有退款/取消),我可以再次自由购买相同的物品。这与正常的未取消状态中的行为相同。

  1. Google 是否经常在测试沙箱之外以同样的方式取消订单?
  2. 成功购买和消费的商品是否仍会因开发商无法控制的原因而被取消(即退款)?
  3. 是否可以知道已经消费的产品的取消?
4

2 回答 2

1

Google 是否经常在测试沙箱之外以同样的方式取消订单?

谷歌有一个欺诈检测系统,可以帮助识别不可靠的付款。例如,如果有人使用被盗的信用卡或多个账户使用同一张信用卡等。在这种情况下,付款交易甚至会在它开始之前(在联系支付提供商之前)停止,并显示您问题中的消息。在 5 月,此欺诈检测系统无法可靠地检测到测试帐户,这就是您可以看到此消息的原因。现在稍微好一点。在现实生活中,这种情况非常罕见。

成功购买和消费的商品是否仍会因开发商无法控制的原因而被取消(即退款)?

这是一个棘手的问题,因为取消的不是项目,而是与该项目相关的支付交易。从理论上讲,交易也可以在以后取消,但必须有充分的理由。信用卡被盗的相同示例在这里也有效。在现实生活中,我从未见过它。

是否可以知道已经消费的产品的取消?

虽然我自己从未尝试过,但我不相信消费的产品可以取消。正如我所说,可能会取消相关的支付交易,但不会取消消费产品。这是因为一个已消费的产品可以再次销售,并且还没有连接到付款。如果产品没有被消费,if 将进入取消状态,如果分配给它的支付交易被取消。

希望这可以帮助。

于 2013-08-22T13:54:31.970 回答
0

我正在设置相同类型的应用程序。
用户可以购买一件物品,它将在我的服务器上进行跟踪,最后被消费,因此用户可以再次购买相同的物品。

我正在跟踪有关购买的所有信息,并且我试图取消已经消费的订单。我可以向您确认订单状态将发生变化(大约 10 分钟后,您也会收到有关取消的电子邮件)。

使用您的 productId 和 purchaseToken 调用 PurchaseAPI 的此 url 将返回购买信息:

https://www.googleapis.com/androidpublisher/v2/applications/<app.package.name>/purchases/products/<productId>/tokens/<purchaseToken>?access_token=<myToken>

第一次你会得到类似的响应:

{
  "kind": "androidpublisher#productPurchase",
  "purchaseTimeMillis": "1458047931024",
  "purchaseState": 0,
  "consumptionState": 1,
  "developerPayload": "mypurchasetoken"
}

取消后 purchaseState 将发生变化:

{
  "kind": "androidpublisher#productPurchase",
  "purchaseTimeMillis": "1458047931024",
  "purchaseState": 1,
  "consumptionState": 1,
  "developerPayload": "mypurchasetoken"
}

这与我第一次为产品验证执行的 GET 相同。
明智的做法是定期检查所购商品的状态,如果取消,请在服务器上更新购买。

于 2016-03-16T01:37:18.313 回答