Как мне выйти из тестового режима «Покупки приложений»

Поэтому я решил реализовать in-app-purchases с помощью expo-in-app-purchases, и все отлично заработало.

Теперь я выполнил свою часть работы и хочу, чтобы она работала в производственном режиме.

Когда я пытаюсь купить что-то в своем приложении, оно говорит test Card. Как мне выйти из этого?

Я выпустил свое приложение на консоли Google Play, и оно находится на рассмотрении. Должен ли я просто подождать, пока часть обзора не будет завершена, а затем автоматически появится тестовый режим?

Вот класс оплаты, который у меня сейчас есть.

import * as InAppPurchases from 'expo-in-app-purchases';
export default class payment {
    private static finishTransactionCallback?: (purchase: any) => Promise<void>;
    constructor() {

    }

    public static connectAsync = async () => {
        await InAppPurchases.connectAsync();
        InAppPurchases.setPurchaseListener(async ({ responseCode, results, errorCode }) => {
            // Purchase was successful
            if (responseCode === InAppPurchases.IAPResponseCode.OK) {
                results.forEach(purchase => {
                    if (!purchase.acknowledged) {
                        console.log(`Successfully purchased ${purchase.productId}`);
                        // Process transaction here and unlock content...
                        // Then when you're done
                        payment.finishTransactionAsync(undefined, purchase);
                    }
                });
            } else
                if (responseCode === InAppPurchases.IAPResponseCode.USER_CANCELED) {
                    console.log('User canceled the transaction');
                } else if (responseCode === InAppPurchases.IAPResponseCode.DEFERRED) {
                    console.log('User does not have permissions to buy but requested parental approval (iOS only)');
                } else {
                    console.warn(`Something went wrong with the purchase. Received errorCode ${errorCode}`);
                }
        });
    }

    public static async disconnectAsync() {
        await InAppPurchases.disconnectAsync();
    }

    public static getPurchaseHistoryAsync = async () => {
        var item = await InAppPurchases.getPurchaseHistoryAsync();
        if (item && item.results && item.results.length > 0)
            return item.results;
        else return [] as (InAppPurchases.InAppPurchase | InAppPurchases.IAPItemDetails)[];
    }

    public static getProducts = async (itemList: string[]) => {
        var item = await InAppPurchases.getProductsAsync(itemList);
        if (item && item.results && item.results.length > 0)
            return item.results;
        else return [] as (InAppPurchases.InAppPurchase | InAppPurchases.IAPItemDetails)[];
    }

    public static finishTransactionAsync = async (callBack?: (purchase: any) => Promise<void>, purchase?: any) => {
        try {
            if (callBack)
                payment.finishTransactionCallback = callBack;
            else {
                await InAppPurchases.finishTransactionAsync(purchase, false);
                purchase.acknowledged = true;
                if (payment.finishTransactionCallback)
                    await payment.finishTransactionCallback(purchase);

            }
        } catch (error) {
            console.log(error);
        }
    }

    public static async requestPayment(productId: string) {
        try {
            await InAppPurchases.purchaseItemAsync(productId);
            return true;
        }
        catch (error) {
            console.log("Something went wrong. with purchase:" + productId);
            console.log(error);
        }

        return false;
    }
}

Обновлять

Сейчас приложение запущено в производство и все еще находится в тестовом режиме.

Мое приложение называется NovelManager.


person Alen.Toma    schedule 06.03.2021    source источник