React-Native ДоходCat ProductAlreadyPurchasedError, тогда как это не так - PullRequest
0 голосов
/ 04 мая 2020

Сейчас я использую RevenueCat на android (react-native-purchases), чтобы купить «непотребляемый продукт». Я настроил свой аккаунт в соответствии с do c (отлично do c!). Однако я столкнулся с проблемой.

Прежде всего, вы знаете, что android позволяет приобрести продукт с 4 разными картами в аккаунте тестера. У меня нет проблем с картой, которая всегда отклоняется, карта всегда принимается и карта принимается после задержки. Но моя проблема с отменой карты через несколько минут.

Вот как я поступаю:

1.

Добавление прослушивателя

// function for purchase Listener
this.purchaserInfoUpdateListener = (info) => {
    checkIfPro(info, this._becomePremium);
};

// add this function to Purchases's Listener
Purchases.addPurchaserInfoUpdateListener(this.purchaserInfoUpdateListener);

//function call when listener is called 
function checkIfPro(purchaserInfo, callbackFunction) {
    // Check when function is called
    console.log('checkIfPro is called ! ');
    if (typeof purchaserInfo.entitlements.active.premium !== 'undefined') {
        // Unlock premium content :
        console.log('#Unlock great content#');

        // Active premium
        callbackFunction();
    } else {
        console.log('Not premium');
    }
}

2.

Приобрести товар (карта будет отменена через несколько минут)

const { purchaserInfo, productIdentifier } = await Purchases.purchaseProduct(
    itemToPurchase,
    null,
    Purchases.PURCHASE_TYPE.INAPP
);

3.

Смотреть журналы

e.userInfo.readableErrorCode = 'PaymentPendingError'

Мы можем увидеть «PaymentPendingError», все нормально, транзакция еще не завершена.

4.

Подождите несколько минут

5.

Поскольку ничего не произошло (слушатель не звонит или что-то показывает, что транзакция отменена), я пытаюсь купить продукт еще раз. Однако в журналах говорится:

ProductAlreadyPurchasedError

, тогда как когда я звоню

await Purchases.getPurchaserInfo()

, право неактивно.

Мои проблемы:

  • Я не могу знать, отменена ли транзакция через несколько минут, поэтому я не могу попытаться купить ее после (когда транзакция официально отменен)
  • Мой продукт также действует как «расходный» продукт, и я не знаю, как настроить его как «не расходуемый продукт». Потому что, если я выберу карточку, которая всегда принимается, я могу купить товар столько, сколько захочу.
...