不一致-“用于调用Google Play开发者API的项目ID尚未在Google Play开发者控制台中链接。”

时间:2018-09-07 01:24:33

标签: node.js google-iap

这就是问题-我的Android应用程序有一个node.js后端服务器。我正在使用Google Play结算库,并使用后端按照Google文档的建议来验证购买。

现在,所有其他有关此错误的答案似乎都表示一个一致的问题。

我的后端SOMETIMES进行了验证,并且SOMETIMES以此错误返回,表明实际上我的服务帐户已链接(如控制台中所示)。

我尝试了两个不同的第三方库,但我遇到了同样的问题。有时一个人会响应验证成功,而另一个人会说我的帐户未链接。有时它们都是消极的,有时都是消极的。

似乎不一致。

var platform = 'google';
        var payment = {
            receipt: purchaseToken, // always required  ... this is google play purchaseToken
            productId: subID,  // my subscription sku id
            packageName: 'com.xxxxxx', // my package name
            keyObject: key,  // my JSON file
            subscription: true, // optional, if google play subscription

        };



   var promise2 = iap.verifyPayment(platform, payment, function (error, response) {
        /* your code */
        if (error) {
            console.log('error with iap, ' , error);
            return true;
        } else {
            console.log('success with iap, response is: ', response);
            return true;
        }
    });

我也尝试了一个不同的库,得到了相同的结果:

var receipt = {
            packageName: "com.xxxx",
            productId: subID,  // sku subscription id
            purchaseToken: purchaseToken // my purchase token
            };

            var promise = verifier.verifySub(receipt, function cb(err, response) {
                if (err) {
                    console.log('within err, was there a response? : ', response); 
                console.log('there was an error validating the subscription: ', err);
                //console.log(err);
                return true;
                } else {
                console.log('sucessfully validated the subscription');
                // More Subscription info available in “response”
                console.log('response is: ', response    );
                return true;
                }
               });


// return promises later.

还有其他人遇到此问题吗?

1 个答案:

答案 0 :(得分:7)

我终于找到了答案。问题不在于我的代码,也不在于Google Developer Console或Google Play Console中的权限。除了一件事情,一切都设置正确。

以前,在Google Play控制台中设置测试许可帐户之前,我已经用我的商品ID“ X”中的真实货币进行了实际的订购购买。

然后,在添加了以测试用户身份购买了该订阅的Google帐户之后,我继续测试了同一订阅(产品ID为“ X”)的结果。

即使我取消了REAL购买,实际的到期日期也不是另一个月。

因此,我相信有时我会在购买/取消购买交易时感到困惑-将测试订阅与真实订阅相混淆。

创建一个新的产品ID(仅使用它)可以解决我的问题,并且所购买的商品始终得到验证。