Несовместимо - "Идентификатор проекта, используемый для вызова API разработчика Google Play, не был связан в консоли разработчика Google Play".

Итак, вот в чем дело - у меня есть серверный узел node.js для моего приложения для Android. Я использую биллинговую библиотеку 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 ответ

Решение

Я в конце концов нашел ответ. Проблема была не с моим кодом, не с разрешениями в консоли разработчика Google ИЛИ в консоли Google Play. Все было настроено правильно, кроме одного.

Ранее, перед настройкой тестовых учетных записей в Google Play Console, я совершил фактическую покупку по подписке за реальные деньги на свой идентификатор продукта "X".

Затем, добавив ту же учетную запись Google, которая купила подписку в качестве тестового пользователя, я продолжил тестировать результаты для той же подписки, productID "X".

Несмотря на то, что я отменил РЕАЛЬНУЮ покупку, фактическая дата истечения срока была не в течение другого месяца.

Поэтому я считаю, что иногда Google путался, когда я покупал / отменял покупку - путая тестовую подписку с реальной подпиской.

Создание нового идентификатора продукта и только его использование решило мою проблему, и покупки были проверены последовательно.

Другие вопросы по тегам