验证和验证应用内购买不可再生 iOS
Posted
技术标签:
【中文标题】验证和验证应用内购买不可再生 iOS【英文标题】:Validate and Verify In-App purchase Non-Renewable iOS 【发布时间】:2016-03-22 06:55:05 【问题描述】:由于应用内购买类型,苹果第三次拒绝了二进制文件。我的应用程序使用 IAP订阅 1 个月、1 年和免费的包。之前我使用了 Consumable,所以应用被拒绝并建议使用 "Non-Renewable"。我正在关注教程“https://www.raywenderlich.com/36270/in-app-purchases-non-renewing-subscription-tutorial”。我已经从教程中下载了“VerificationController”类文件来验证交易。但是,我遇到了很多错误,
VerificationViewController.m
No visible @interface for 'VerificationController' declares the selector 'encodeBase64:length:'
No visible @interface for 'VerificationController' declares the selector 'decodeBase64:length:'
Implicit declaration of function 'checkReceiptSecurity' is invalid in C99
Conflicting types for 'checkReceiptSecurity'
Missing context for method declaration
CommonDigest.
Missing '@end'
谁能帮忙解决这个问题并立即提交应用程序?
【问题讨论】:
嗨@Yuvaraj.M 你找到解决方案了吗?即使我遇到同样的问题 嗨@pooja_1205 我没有找到解决方案,之后我们放弃了 IAP 集成。如果您找到此问题的解决方案,请在此处分享您的答案。这可能对每个人都有帮助。如果我得到解决方案,我会在这里分享。谢谢。 【参考方案1】:我刚刚在这个线程上用 tkdkop 回答修复了这个问题:XCode 6 verificationController.m issues。希望这可以帮助并为其他人节省一些时间。
【讨论】:
【参考方案2】:让我分享一下我的想法: 首先,不可更新订阅是所有订阅中最难处理的。由开发人员来处理:
-
订阅到期日期
跟踪订阅
更何况你必须提供恢复按钮,以便用户可以恢复他们的购买
这是我的处理方式: 我使用 iCloud 和后端服务器的组合来跟踪重要数据。
-
每当用户订阅不可更新(即购买)时,我都会存储
购买日期,并创建相当于一个月的到期日期
从后端服务器和 iCloud 中的购买日期开始。请注意,我的订阅期仅为一个月。在 iCloud 商店中
storeUserPurchase.set(key: nrs_key, vale: someData)
每当订阅用户想要访问订阅的材料时,我都会根据存储在
用户的 iCloud,使用这个唯一的 id,我要求我的服务器计算
基于此 ID 的到期日期。如果尚未过期,则授予访问权限
到材料。就像是
purchaseInfo = getSomePurchaseDataFor(key: nrs_key)
serverValidateReceiptAndGetExpirationDateFor(receipt, purchaseInfo)
我忘了提到所有这些验证都伴随着收据验证,这也在后端服务器中完成。
恢复购买: 您必须提供此功能,否则您的应用将被 Apple 冷拒绝。
Here is the tutorial worth reading
In-App Purchase FAQ
【讨论】:
以上是关于验证和验证应用内购买不可再生 iOS的主要内容,如果未能解决你的问题,请参考以下文章