如何控制取消订阅Ionic In App购买

时间:2020-04-04 15:07:47

标签: angular ionic-framework in-app-purchase android-inapp-purchase

需要有关InAppPurchase2的帮助

我的代码工作正常,但是我有一个问题。当用户取消订阅时,我无法识别,但是重新启动应用程序时,会发现此问题,应用程序将再次运行。

更好地说明: 1-应用启动并加载存储和产品。好 2-用户订单订阅,应用完成此操作,产品进入“拥有”状态。好 3-用户取消了在Google Play上的订阅,但是当我的应用调用store.refresh()时,产品仍保持“拥有”状态。问题 4-应用重新启动后,产品将返回“有效”状态。

调试我可以看到,在我调用finish()直到应用重新启动之后,仍在when.approved调用。

有什么办法可以重新启动负载存储?

    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 :(得分:0)

经过几个小时的尝试找到解决方案之后,我终于可以与您分享

一切正常,但获取签名信息并不容易。因此,InAppPurchase2插件可与其他服务一起使用:Fovea.Billing。客户的费用较低,可以免费开始。我测试了很多,喜欢这项服务。

好,让我们看看我实施的解决方案。

  1. 在Fovea.Billing上创建并配置一个帐户。

  2. 定义要验证的网址。

    • 可以在Fovea配置中找到此URL。

示例: store.validator = “ https://validator.fovea.cc/v1/validate?appName=&apiKey =”;

  1. 要启用验证,请按照以下步骤操作 执行p.verify()时将调用回执验证。一些演示代码忽略了这一行,因此请确保从已批准的事件中调用p.verify(),然后从已验证的事件中调用p.finish()。

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

在此之后,您可以了解订阅的情况。如果该订阅已过期,则不会触发经过验证的事件。