Android应用内结算 - 签名JSON中的用户ID

时间:2012-07-31 07:40:37

标签: java android in-app-billing

当您验证用户完成交易时出现的签名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" }]
}

1 个答案:

答案 0 :(得分:2)

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

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

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