0

当您验证用户完成交易时出现的签名 JSON 时,显然需要验证此特定购买是由特定用户进行的。当您将例如 userId 和签名的 JSON 发送到您的服务器以进行验证时,防止更改 userId 的可能性尤其重要。但是签名的 JSON 中没有这样的字段。

那么在developerPayload字段中放置一些 userId 可以吗?

{ "nonce" : 1836535032137741465,
  "orders" :
    [{ "notificationId" : "android.test.purchased",
       "orderId" : "transactionId.android.test.purchased",
       "packageName" : "com.example.dungeons",
       "productId" : "android.test.purchased",
       "developerPayload" : "bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ",
       "purchaseTime" : 1290114783411,
       "purchaseState" : 0,
       "purchaseToken" : "rojeslcdyyiapnqcynkjyyjh" }]
}
4

1 回答 1

2

是的。可以在开发人员有效负载中放置一些用户身份。当您在 PURCHASE_STATE_CHANGED 广播中收到它时,您可以将其发送到您自己的服务器。

这与非托管项目尤其相关,您需要在自己的服务器上维护每个用户对这些项目的购买和使用。

真正的问题是您要发送什么用户身份以及从哪里获取它。它不能是特定于设备的,因为用户可能有多个设备。它确实需要是 Google Play 提供的身份。但我不知道如何找到它。

于 2012-08-18T02:02:50.740 回答