我已经阅读并重读了一次性购买和应用内购买示例,但我错过了将调用 Google 网上商店 API 的响应转换为的步骤。
我已经付款了(在测试模式下)。但是不知道如何检查用户是否实际付款。我不明白如何解开谷歌回馈的任何东西。
我只有一个 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("");
}
好的,JSON 研究和反复试验的组合让我找到了解决方案。
给其他黑客(和谷歌)的注意:扩展对于想要构建东西但没有任何正式培训的人来说是一个很好的切入点。我对 JSON 有一个模糊的概念,但没有经验......如果您不知道如何处理来自简单 API 的返回,Google 网上应用店的说明和示例省略了关键步骤。
到目前为止,我只有一个 SKU,所以我需要专门检查数组中的第一个 - 它是零,而不是一个。
var license = licenses[0];
alert(license.sku)
上面的代码正确弹出了用户已经购买的SKU。因此,现在我可以使用此调用在我的应用中的其他位置强制执行付款。
这是我购买.js代码 - 从谷歌提供的示例略有修改。
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)
}