问题标签 [auto-renewable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - 错误代码=2“无法连接到 iTunes Store”{NSLocalizedDescription=无法连接到 iTunes Store} 仅适用于部分用户的生产环境
我已经在应用程序中实现了自动更新购买。但是,并非所有用户都能完成购买。他们的钱被扣除了,但交易进入失败状态并出现上述错误,或者有时在购买状态后甚至没有触发 updatedTransaction 方法。此外,如果我要求用户恢复购买,他们会收到“产品已购买”的警报。我现在对此感到非常沮丧,因为我什至无法复制这个问题。它在沙盒上完美运行,而且我尝试了真正的购买,它也在那里工作。我错过了什么?请帮我。
ios - 用于升级的 CANCEL 通知和 Apple 订阅通知的客户支持取消的负载差异
Apple 针对客户的订阅相关更改发送服务器到服务器通知。CANCEL
通知在两种情况下发出:
- 用户致电客户服务中心取消订阅。
- 用户更改升级计划。
在情况 2 中,INTERACTIVE_RENEWAL
通知后跟CANCEL
。
当收到 CANCEL 通知时,我们可能无法确定是针对情况 1 还是情况 2。
两种情况下触发 CANCEL 通知的有效负载字段值是否存在差异。
android - 自动续订订阅的价格变化
我们正在为两个平台(Android 和 iOS)开发一个应用程序,并实现应用内购买。在订阅价格更改后,需要在一定的自定义时间段内为老用户保留之前的订阅价格。有没有办法处理这样的情况?我们在本地数据库中维护了用户购买历史记录。
ios - iOS Auto Renewable Subscriptions veirfyReceipt 返回与设备不同的收据 base64
我正在尝试实施自动可更新订阅。我的应用程序可以在不同的设备(Android、Web)上使用,因此我需要实现状态轮询技术,以便在 App Store 设法续订过期订阅时确认我的服务器。收据正在我的服务器上进行验证,如此处所述。在设备上进行的每笔交易中,我都会last_receipt_base64
在收据验证过程中更新用户在数据库中输入的字段。
在每次状态轮询中,我都想更新last_receipt_base64
andexpired_date
字段,所以我将其last_receipt_base64
发送到苹果的/verifyReceipt
路由。但每次它都会在“latest_receipt”键下放置不同的收据(base64)。甚至,返回的(来自/verifyReceipt
)收据库 64 的长度奇怪地比从设备发送的收据短得多(来自设备的 35,000 个字符的收据,从 的返回的 6000 个字符的收据/verifyReceipt
)。这是为什么?
如果有变化但数据不断变化,我想在每个状态极上更新我的数据库中的条目!此外,来自设备的收据之间的极端长度差异/verifyReceipt
让我担心有一天收据可能会被拒绝,如果用户长时间不登录 iOS 应用程序。无论如何,我有点困惑,文档不是很好......一些指导方针会有所帮助。
ios - 自动续订订阅续订和取消检测和收据刷新
我已经实现了一个本地收据验证例程来提取订阅的到期日期,并且它工作正常。但是我很难找出收据何时自动更新以及何时应该强制刷新。
我有几个关于此事的问题
1) SKPaymentQueue.default() 是否会被 Apple 外部更新?还是仅在本地设备上触发事务时才更新?
2) 我们能否确定在购买自动更新订阅产品后,收据会自动更新?我是否应该在确认购买后使用 SKReceiptRefreshRequest() 更新收据
paymentQueue(_ queue: SKPaymentQueue, updated Transactions transactions: [SKPaymentTransaction])
或者在购买完成后,我可以直接从收据中读取新的到期日期,而无需调用 SKReceiptRefreshRequest()?
请注意,我询问的是从 Apple 服务器刷新收据,而不是验证或读取过期日期。
3) 如果用户在续订日期取消订阅或付款方式失败,Apple 是否会自动更新应用收据,或者我应该在每次应用启动时使用 SKReceiptRefreshRequest() 请求刷新收据以检测订阅取消?
4) 当自动续订订阅成功续订时,Apple 是否会自动更新应用收据,或者我应该在每次应用开始获取新收据时使用 SKReceiptRefreshRequest() 请求刷新收据,以便在收到新收据时获取新的到期日期发生续约?
5) 使用 SKReceiptRefreshRequest() 请求刷新收据是否每次都要求用户提供他们的 App Store 凭据?
如您所见,我的主要困惑是何时需要强制 ReceiptRefresh 以及何时可以依靠 SKPaymentQueue 或 StoreKit 自动更新它。
欢迎任何见解。
macos - 应用因指南 3.1.2 被拒绝 - 业务 - 付款 - 订阅
由于自动续订订阅,我的 macOS 应用程序不断被拒绝。
这是苹果评论家对我说的:
指南 3.1.2 - 业务 - 付款 - 订阅
您的应用使用自动续订订阅,但不适合使用该服务。
下一步
要解决此问题,请将您的应用内购买产品更改为非续订订阅。
这对我来说毫无意义,因为同一应用程序的 iOS 版本已获得批准,并且自动续订订阅的数据完全相同。我已要求提供更多信息,但他们没有回答我。
任何人都可以帮助我或给我一些线索来了解可能发生的事情吗?
谢谢你的时间。
PS:该应用程序的两个版本(iOS 和 macOS)同时审核:p iOS 批准,macOS 拒绝。这是一款生产力应用程序,可免费试用 7 天。
ios - 除了 expires_date_ms 之外,我还应该检查 cancel_date_ms 以获取自动续订订阅吗?
我正在我的应用程序中实现自动更新订阅。
目前,为了检查用户是否有活动订阅,我latest_receipt_info
从 Apple/verifyReceipt
服务返回的响应 JSON 中检查数组中的所有记录,找到具有最大值的记录expires_date_ms
并检查该日期是否在未来。在检查日期之前,我还要检查该status
字段是否为 0(收据有效)。
我以为这就够了,但我最近发现还有另一个领域 - cancellation_date_ms
. 据我从文档中了解到,如果用户通过 Apple 支持取消了订阅,则存在此文件。
来自(Apple 文档)
您可以使用此值来:
确定是否停止提供与购买相关的内容。
检查任何最新的续订交易,这可能表明用户重新开始或升级了他们的订阅,以进行自动续订订阅购买。
所以我想知道,如果用户通过Apple支持取消订阅,这会影响expires_date_ms
当前订阅期吗?所以下次我检查expires_date_ms
时,我知道订阅没有激活。
还是expires_date_ms
和用户取消订阅前一样,所以我也需要检查一下cancellation_date_ms
?
ios - 使用 Flutter for iOS 检索订阅 IAP 产品列表
我正在Flutter中实现自动更新订阅。我已经使用这个包成功地为 Android 实现了它们https://pub.dev/packages/in_app_purchase
。但是,它不适用于 iOS。
我已按照所有说明在应用中心创建自动续订订阅,但是当我尝试在应用中获取产品列表时,它会返回null
。请帮我解决这个问题,我被困在这个问题上。提前致谢。
ios - 如何以首次折扣实施自动续订订阅
我想实现自动更新订阅,为用户提供不同的折扣优惠。我有一个产品 ID,但我想对同一个产品 ID 应用不同的折扣。像这样的场景,如果用户在安装应用程序的 1 周内购买,则希望在首次付款时提供 50% 的折扣。如果用户在 1 周后和第 2 周完成之前购买,则希望在首次付款时提供 25% 的折扣。其他用户以产品原价购买..
为了实现这个功能,我在互联网上搜索并找到了一些 SKPaymentDiscount。但我不知道我是否可以使用 SKPaymentDiscount 来实现。
如果有人实施了相同的事情或对 SKPaymentDiscount 有经验,请与我分享。
如果有人有其他建议,那么我也会尝试。
在此先感谢并欢迎提出建议。