Как контролировать отмену подписки Ioni c В приложении Покупка - PullRequest
0 голосов
/ 04 апреля 2020

Нужна помощь с InAppPurchase2

Мой код работает нормально, но у меня есть одна проблема. Когда пользователь отменяет подписку, я не могу идентифицировать это, но при перезапуске приложения этот вопрос идентифицируется и приложение снова работает.

Объясните лучше: 1 - Приложение запускается и загружает магазин и продукты. OK 2 - подписка на заказ пользователя и приложение завершает sh this и продукт go до статуса «в собственности». Хорошо 3 - пользователь отменяет подписку в Google Play, но когда мое приложение вызывает store.refre sh (), продукт по-прежнему остается в статусе «владелец». ПРОБЛЕМА 4 - когда приложение перезапускает продукт, он возвращается в «правильное» состояние.

Отладка Я вижу, что via.approved продолжает вызывать после того, как я вызываю fini sh () до перезагрузки приложения.

Есть ли способ перезагрузить загрузочный магазин?

    configurarProdutos() {
        this.platform.ready().then(() => {      

          // Registra os produtos da loja
          this.store.register([
            {id: "mensal_basico",
            type: this.store.PAID_SUBSCRIPTION}
          ]);

          this.registrarEventos('mensal_basico')

          this.store.refresh();
        });    
      }

  registrarEventos(produto) {
    this.store.when(produto)
    .approved( (product: IAPProduct) => {
      product.finish()
    })
  }

1 Ответ

0 голосов
/ 06 апреля 2020

После нескольких часов попыток найти решение, наконец, я могу поделиться этим с вами.

С кодом все в порядке, но получить информацию о подписи нелегко. Поэтому плагин InAppPurchase2 работает с другим сервисом: Fovea.Billing. Каст ниже и имеет хороший номер, чтобы начать бесплатно. Я много тестировал и мне понравился сервис.

Хорошо, давайте посмотрим, какое решение я внедрил.

  1. Создание и настройка учетной записи на Fovea.Billing.

  2. Определите URL для проверки.

    • Этот URL можно найти в конфигурациях Fovea.

Пример: store.validator = "https://validator.fovea.cc/v1/validate?appName= & apiKey = ";

Чтобы включить проверку, выполните следующие действия. Проверка проверки квитанции вызывается при выполнении p.verify (). Некоторые демонстрационные коды пропускают эту строку, поэтому убедитесь, что p.verify () вызывается из утвержденного события, а затем p.fini sh () вызывается из подтвержденного события.

store.when ('product ') .approved (p => p.verify ()) .verified (p => p.fini sh ());

После этого вы можете узнать ситуацию subcribe. Если срок действия подписки истек, подтвержденное событие не инициируется.

...