Добавить Android и iOS подписки в приложение Cordova - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь реализовать возобновляемые подписки в своем приложении cordova, и я использую плагин fovea cordova-plugin-purchase и следую их документации

В своей документации у них есть раздел для добавление подписок для iOS и Android отдельно, однако я вижу единственное отличие - предварительная настройка плагинов с точки зрения создания подписок в соответствующих магазинах. Фактический код один и тот же.

Я настроил «годовую» и «ежемесячную» подписку как в магазине приложений, так и в магазине Play, и моя реализация плагина соответствует их документации.

Когда я запускаю его на iOS Я получаю ожидаемые результаты, я могу зарегистрировать продукты и заказать заказ по ним и т. Д. c.

Однако, когда я запускаю тот же код на Android, я получаю ошибка о недоступности iOS storekit и некоторые другие iOS ошибки, которые заставляют меня поверить, что плагин все еще ищет в магазине приложений, хотя я на Android.

As Я говорю, что кодовая база из документации одинакова для обоих, и нет упоминания о настройке платформы или чего-либо еще, чтобы указать, какое хранилище посмотреть.

Кто-нибудь еще реализовал этот плагин для обоих и может сказать мне где я ошибаюсь.

ps Идентификаторы для моих продуктов подписки: ['year', 'помесячно'] как в магазине приложений, так и в магазине Play.

Любая помощь будет очень полезна eciated.

Вот моя реализация:

    appStore.verbosity = appStore.DEBUG;
        appStore.register(
            [
                {
                    id: 'monthly',
                    type: appStore.PAID_SUBSCRIPTION,
                },
                {
                    id: 'annual',
                    type: appStore.PAID_SUBSCRIPTION,
                }
            ]
        );
        appStore.validator = "https://validator.fovea.cc/v1/validate?appName=com.betterappcompany.better&apiKey=***";
        appStore.error((error) => {
            console.log({error: `ERROR ${error.code}: ${error.message}`});
        });
        appStore.when('subscription').updated(() => {
            const product1 = appStore.get('monthly') || {};
            const product2 = appStore.get('annual') || {};

            if (product1.owned || product2.owned) {
                commit('updateStoreStatus', 'Subscribed');
                console.log('Subscribed');
            } else if (product1.state === 'approved' || product2.state === 'approved') {
                commit('updateStoreStatus', 'Processing');
                console.log('Processing');
            } else {
                commit('updateStoreStatus', "Don't know");
            }

            commit('updateProduct', {id: 'product1', product: product1});
            commit('updateProduct', {id: 'product2', product: product2});

        });

        appStore.when('subscription')
            .approved(p => p.verify())
            .verified(p => p.finish())
            .owned(p => console.log(`you now own ${p.alias}`));

        appStore.refresh();
...