- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
很抱歉问了有关 iTunes 订阅的第一百万个问题,但我仍然有一些疑问。
基本上,我正在我的应用程序中实现自动续订订阅,我想确保我做对了。以下是我想出的要采取的步骤列表:
这些步骤正确吗?如果是这样,为什么苹果文档说:
In most cases, your iOS client application should not need to change. In fact, your client application is now made simpler, as you can use the same code to recover auto-renewable subscriptions as you do to recover nonconsumable products. This is described in “Restoring Transactions.”Your application receives a separate transaction for each period of time where the subscription was renewed; your application should verify each receipt separately.
对我来说,这似乎需要一些代码来处理我提到的所有各种情况。或者说我完全错了。我是吗?
另外,我如何知道订阅到期日期?我无法找到在任何地方获取此信息的方法。我应该将其保存在我自己的数据库中吗?
更新:
自从我发布这个问题以来,我已经弄清楚了一些事情。如果我错了,请随时纠正我。
首先,我想我应该将订阅的长度存储在我自己的数据库中的某个位置,因为正如苹果文档中所述,您无法通过苹果的网络服务以任何方式检索它。事实上,每个订阅长度都有不同的产品标识符,因此您应该有一种方法将产品标识符转换为订阅长度。
还有,西尔维安 has posted有关他实现自动更新订阅的详细信息,所以至少我知道我的想法没有太大缺陷。
现在唯一的问题是:我如何知道用户有有效的订阅?我可以将此信息存储在我的服务器上,是的,但是如何将用户与已完成的订阅关联起来?交易?我应该保存设备的 UDID 吗?
最佳答案
以下是我们如何实现应用内购买,特别是我公司的新自动续订产品。
应用程序将交易收据传输到我们的网络服务,如果处理正确,我们会向应用程序返回 OK,并且 Apple 可以验证它。在这种情况下,我们更新了用户帐户(即数据库)以表示“是的,他已付款,并且他的订阅在收据到期日期之前有效”。
此 Web 服务确定后,应用程序通过另一个 Web 服务重新加载帐户信息,并查看是否有有效的订阅。就是这样......直到自动更新产品出现。
我们现在必须实现一些每天运行的 CRON 作业:每天我们都会列出应该过期的通行证列表,然后我们询问 Apple 原始收据是否仍然有效:神奇的是他们的答案,有一个字段 latest-receipt
嵌入 latest 收据。如果它与我们拥有的不同,我们就知道订阅已自动续订,我们会存储最新的收据以供下一次 cron 检查,并更新用户帐户以延长到期日期。
希望有帮助。
关于iphone - 应用内自动续订订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5329336/
我正在用 Java 创建一组小部件,用于解码和显示在串行接口(interface)接收到的消息。 消息类型由唯一标识符定义。每个小部件只对特定标识符感兴趣。 如何对应用程序进行编程,以便将消息正确分发
我有以下代码,其中包含多个订阅。我需要实现的是这样的: 订阅activateRoute 以获取用户和产品数据。 返回商品数据后,使用商品数据订阅getSeller服务。 使用返回的卖家数据订阅 get
我已经使用 Fitbit 的 PHP 库 (www.disciplinexgames.com/fitbit) 在我的网站中成功集成了 FitBit api。它工作正常,但我现在想使用订阅 API,以便
在我的 Angular 7 应用程序中,我有下一个功能: getUserData(uid) { return this.fireStore.collection('users').doc(
我正在尝试在 Node 中实现发布/订阅模式,但不使用 Redis。功能应该是相同的;您可以发布到 channel ,订阅 channel 并收听数据(如果您已订阅);以下是 Redis 功能: pu
这是我当前的应用程序结构: /client/client.js /server/server.js collection.js 有 HTML 和 CSS 文件,但这些与我的问题无关。在将我的应用程序拆
我们正在使用OpenTok建立视频聊天室体验,并且在基本工作正常的同时,我发现当 session 室中有很多参与者发布音频时,本底噪声非常高。像Zoom这样的浏览器外解决方案似乎没有这种高水平的“白噪
RabbitMQ 是点对点还是发布-订阅?或者两者都取决于配置选项? 我一直在查看配置,它们似乎都支持点对点模型而不是发布-订阅。即消息一旦被消费就会从队列中删除,并且不可用于第二个消费者。 最佳答案
我是 Angular 6 和 ngrx 商店的新人。我尝试在从商店订阅数据后调度操作,但它会导致无限循环并使浏览器崩溃?我错了什么。我发现它使用 rxjs 的 do/tap 运算符但仍然不起作用的一些
这个问题已经有答案了: Property '...' has no initializer and is not definitely assigned in the constructor (37
这个问题已经有答案了: Property '...' has no initializer and is not definitely assigned in the constructor (37
我正在使用 Visual Studio 2017 v15.6.2 和 Azure Services Authentication Extension 为支持 MSI 的应用程序进行本地 azure 功
我想知道如何确定给定的 WC_Product 对象 $product 是否是订阅产品。 最佳答案 您可以使用他们的辅助函数,这可能是最完整的: if( class_exists( 'WC_Subscr
我正在研究使用服务器发送的事件作为支持 api 来实现“订阅”类型。 我正在苦苦挣扎的是接口(interface),更准确地说,是这种操作的 http 层。 问题: 使用原生 EventSource不
我会根据每个用户的订阅类型向我的用户发送通知。 例如: 用户 A 订阅了所有新闻文章 用户 B 订阅了所有评论 用户 C 订阅了网站上的所有新内容 我有一个每 5 分钟运行一次的脚本(除非该脚本仍在运
我正在使用 Ionic2/Angular2,并且需要使用参数 authData 调用函数,如下所示。 public auth: FirebaseAuth this.auth.subscrib
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我们现有的系统可以持续处理大量文件。粗略地说,每天大约有 300 万个文件,大小从几千字节到超过 50 MB。这些文件从接收到完成使用会经历几个不同的处理阶段,具体取决于它们所采用的路径。由于这些文件
我有一项服务,我使用 Paypal 订阅。 Paypal 有 webhooks。问题是我不知道我需要使用哪个,不知道用户是否为下个月付款。 我使用了 Billing subscription rene
我目前正在为一个网站整理一个处理脚本,遇到了一个我似乎无法找到明确答案的问题。 Paypal 的文档充其量是不确定的,我对 Paypal 的使用还不够多,无法从他们提供的信息中轻松辨别答案。 当通过
我是一名优秀的程序员,十分优秀!