angular - 如何控制取消订阅 Ionic In app Purchase
问题描述
在 InAppPurchase2 方面需要帮助
我的代码工作正常,但我有一个问题。当用户取消订阅时,我无法识别这一点,但是当重新启动应用程序时,此问题被识别并且应用程序再次运行。
更好地解释: 1 - 应用程序启动和加载商店和产品。OK 2 - 用户订单订阅,应用程序完成此操作,产品进入“拥有”状态。好的 3 - 用户在 Google Play 上取消订阅,但当我的应用调用 store.refresh() 时,产品仍保持“拥有”状态。问题 4 - 当应用程序重新启动产品返回“有效”状态时。
调试我可以看到 when.approved 在我调用 finish() 后仍在调用,直到应用重新启动。
有没有办法重新启动加载存储?
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()
})
}
解决方案
经过几个小时试图找到解决方案,我终于可以和你分享这个了。
代码一切正常,但获取签名信息并不容易。因此 InAppPurchase2 插件可与其他服务一起使用:Fovea.Billing。cust 较低,并且有一个很好的数字可以免费开始。我测试了很多并且喜欢这项服务。
好的,让我们看看我实施的解决方案。
在 Fovea.Billing 上创建并配置一个帐户。
- android需要这个配置:文档
定义要验证的 url。
- 这个 URL 可以在 Fovea 配置中找到。
示例: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());
之后就可以知道订阅的情况了。如果订阅过期,则不会触发已验证的事件。
推荐阅读
- c# - 打开一个包含现有 cookie 的网站 (C# Selenium)
- r - cur_group_id 按大小而不是字母顺序
- apache-kafka - 经纪人不可用
- jboss - 如何删除 jbpm kie-server 的身份验证
- python - Python比较两个列表,如果单词匹配添加到另一个列表
- javascript - 我需要整个类型的文字在第二个循环消失之前在页面上停留一段时间
- python - gunicorn 与 python 3.8 不兼容
- sql - 需要在表的不同行之间连接
- api - 赛普拉斯:API 请求的身份验证令牌在哪里?
- php - 在数据库中搜索特定行并在 PHP 中删除 CSV 中的匹配行