2012-07-31 59 views
0

當你確認這是因爲一個用戶已經完成的交易有明顯的需要驗證這個特定的採購是由特定用戶所做的簽署JSON。當您發送userId和簽名JSON到服務器進行驗證時,防止更改userId的可能性尤其重要。但是在簽名的JSON中沒有這樣的字段。的Android應用內結算 - 用戶ID登錄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" }] 
} 

回答

2

是的。在開發人員有效負載中放置一些用戶身份是可以的。當您在PURCHASE_STATE_CHANGED廣播中收到後,您可以將其發送到您自己的服務器上。

這與非託管項目尤爲相關,您需要在自己的服務器上爲每個用戶維護購買和使用這些項目。

真正的問題是你要發送什麼用戶身份,以及你將從哪裏獲得。它不能是設備特定的,因爲用戶可能有多個設備。它確實需要是Google Play提供的身份。但我不知道如何找到它。

+0

同意。這就是我們的Android團隊向正確的購買者提供他購買的產品的方式。在我們的應用程序中,用戶可以註冊並以新用戶身份登錄,並且不保證Android In-App結算的響應立即或甚至不久後(可能需要幾個小時)纔會進入。 – Dallas 2012-08-21 19:00:09