2016-02-18 31 views
0

我已閱讀並重讀了一次性購買和應用內購買示例,並且我錯過了將呼叫的響應轉換爲Google Web Store API的步驟。如何確認應用內Google延期購買的SKU?

我有付款工作(在測試模式)。但不能弄清楚如何檢查用戶是否已實際支付。我不明白如何解開Goog​​le回饋的任何內容。

我只有一個SKU,所以不需要顯示一個列表(例如假設的例子)。

這裏是一個輕微修改(來自Google提供的示例)代碼片段,我試圖獲取用戶購買的物品的SKU。我只是試圖在警報中彈出該值來反向設計正確的語法。我正在向控制檯寫入值,但我在警報中的所有內容都是「未定義的」。

function onLicenseUpdate(response) { 
    console.log("onLicenseUpdate", response); 
    var licenses = response.response.details; 
    var count = licenses.length; 
    for (var i = 0; i < count; i++) { 
    var license = licenses[i]; 
    alert(license.sku); 
    // addLicenseDataToProduct(license); 
    } 
    // statusDiv.text(""); 
    } 

回答

0

好吧,JSON研究和試錯的組合讓我有了一個解決方案。

注意其他黑客(和Google):擴展對於那些想要構建事物但沒有任何正式培訓的人來說是一個很好的切入點。我對JSON有一個模糊的概念,但沒有經驗......如果您不知道如何處理來自簡單API的回報,那麼Google Web Store的說明和示例就會省略關鍵步驟。

我到目前爲止只有一個SKU,所以我需要檢查數組中的第一個 - 這是零,而不是一個。

var license = licenses[0]; 
alert(license.sku) 

上面的代碼正確彈出的SKU用戶已經購買。所以現在我可以使用這個調用來在我的應用程序的其他地方執行付款。

以下是我的purchase.js代碼 - 從Google提供的示例中輕微修改。

function CheckPurchases(){    //What license do we already have? 
    console.log("google.payments.inapp.getPurchases"); 
// statusDiv.text("Retreiving list of purchased products..."); 
    google.payments.inapp.getPurchases({ 
    'parameters': {env: "prod"}, 
    'success': onLicenseUpdate, 
    'failure': onLicenseUpdateFailed 
    }); 

} 

function onPurchase(){ 
      alert('Made a purchase'); 
} 

function onPurchaseFail(){ 
      alert('Failed to make a purchase'); 
} 

function onLicenseUpdate(response) { 
    console.log("onLicenseUpdate", response); 
    var licenses = response.response.details; 

    var license = licenses[0]; 
alert(license.sku) 

    }