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

はい。開発者ペイロードにユーザー ID を配置しても問題ありません。PURCHASE_STATE_CHANGED ブロードキャストでそれを受信したら、これを自分のサーバーに送信できます。

これは、独自のサーバーでユーザーごとにアイテムの購入と使用を維持する必要がある、管理されていないアイテムに特に関連します。

問題は、どのユーザー ID を送信し、どこから取得するかです。ユーザーは複数のデバイスを持っている可能性があるため、デバイス固有にすることはできません。Google Play が提供する ID である必要があります。しかし、私はそれを見つける方法がわかりません。

于 2012-08-18T02:02:50.740 に答える