首页 > 解决方案 > 反应本机 IAP (Android) 验证接收问题

问题描述

我添加了 react-native-iap 库(https://github.com/dooboolab/react-native-iap)来使用订阅。

在 IOS 上运行良好,但我在 Android 上遇到了一些问题。

在 Android 方面完美运作的订阅者。我需要检查阻止过期用户的过期日期。对于 IOS 端,我使用 RNIap.validateReceiptIos(receiptBody, false) 这给了我过期日期和 expired_ms。我使用了这些,但在 Android 方面我使用

const result = await RNIap.validateReceiptAndroid(
          'com.test.app',
          'test_sku_1m_acc',

//below token comes from RNIap.getPurchaseHistory() -> purchaseToken
          'faolcmekaiihplkgoaljnfjh.AO-J1OxykzAlHtDtn0-NRHGUBavVbhA_bBLVYPIlc4yUMkHTLXrA_V66lBsZYKknGt-gcCZgznCXKNww0BW9FLuf4ah23HhB_Q',

//below token comes from localhost node.js backend (nodejs Code *)
          'ya29.c.Kp0B7QcDz53Bt4YeXHZ6lOjSm7NW9FW0pNwSgX78EQVYNlhSoY2ZM-lhug4mODUy8lzghDuJ8SVj9Lw1Dtvh8ZuB8YFEEv_phTc_YOwJ2PK1_WPyS3nRuF-B96wJADN0F6QBCShHl2uOxEAocNyoCKzb6k1YVPBZxENGS6kwBXfcnNR_Hu4-TKpnl3y0s6vX5_XE_viR46d9cO73cdXIjA',
          true, // for subscriptions should pass "true"
        ).catch((err) => {
            console.log('err', JSON.stringify(err));
          })

代码返回 {"statusCode":401,"line":126336,"column":53,"sourceURL":"http://192.168.2.27:8081/index.bundle?platform=android&dev=true&minify=false"}

这个问题来自我或图书馆。谢谢您的答复。

注意:node.js 代码 *:

const open = require("open");
const { google } = require("googleapis");
const account = require("./service-account.json");
const express = require("express");

const app = express();

const JWTClient = new google.auth.JWT(
  account.client_email,
  null,
  account.private_key,
  ["https://www.googleapis.com/auth/androidpublisher"]
);

app.get("/", (req, res) => {
  JWTClient.getAccessToken((err, token) => {
    if (err) {
      return res.status(404).send("get access token failed");
    }

    return res.status(200).send(token);
  });
});

app.listen(8000);

open("http://localhost:8000");

标签: react-nativereact-native-iap

解决方案


推荐阅读