需要有关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()
})
}
答案 0 :(得分:0)
经过几个小时的尝试找到解决方案之后,我终于可以与您分享
。一切正常,但获取签名信息并不容易。因此,InAppPurchase2插件可与其他服务一起使用:Fovea.Billing。客户的费用较低,可以免费开始。我测试了很多,喜欢这项服务。
好,让我们看看我实施的解决方案。
在Fovea.Billing上创建并配置一个帐户。
定义要验证的网址。
示例: store.validator = “ https://validator.fovea.cc/v1/validate?appName=&apiKey =”;
要启用验证,请按照以下步骤操作 执行p.verify()时将调用回执验证。一些演示代码忽略了这一行,因此请确保从已批准的事件中调用p.verify(),然后从已验证的事件中调用p.finish()。
store.when('product') .approved(p => p.verify()) .verified(p => p.finish());
在此之后,您可以了解订阅的情况。如果该订阅已过期,则不会触发经过验证的事件。