- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我使用服务器端收据验证。
当客户的
- (void)paymentQueue:(SKPaymentQueue *)queue
updatedTransactions:(NSArray *)transactions
被调用,transactionState
为SKPaymentTransactionStatePurchased
,客户端将收据发送到我们的服务器,我们的服务器会验证它。
服务端回执校验成功后,客户端显然调用了finishTransaction
,没有问题。
当服务器端收据验证失败时,因为 apple 临时返回非 json,或者客户端发送了无效的收据,或者什么的,服务器将该信息返回给客户端。
接下来,我们的客户应该做什么?我们应该调用 finishTransaction
吗?
这会导致无效交易永远存在于队列中?就像在这个问题中所说:iPhone in-app purchase: receipt verification
But if you find out that a receipt is invalid, you should finish the associated transaction. If not, you may have extra-transactions living forever in the transaction queue. That means that each time your app runs, paymentQueue:updatedTransaction: will be called once per transaction...
但是如果我们执行 finishTransaction
,我们宝贵的用户将通过这张收据(我们未能验证)收费,对吧?
或者 verify-failed-transaction 是否在某个时间段内过期?
这是否记录在苹果文档的某处?我在 http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/Introduction/Introduction.html 中找不到任何内容
最佳答案
是的,你必须完成交易。
这取决于您是否给用户他们想要的东西。在某些情况下,最好给用户他们想要的东西,即使收据无效或伪造(使用越狱)。尤其是当您无需花费任何费用时。
关于ios - 当服务器端收据验证失败时,我应该调用 finishTransaction 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15526156/
我们一直在 iOS 9 iPhone 6 上测试使用 Xcode 6.4 编译的应用程序,在完成应用内购买时出现无法解释的崩溃。在 paymentQueue:updatedTransactions:
tl;dr 如何 FinishTransaction 非来自 UpdatedTransactions 的应用内购买回调? 详细信息 目前我有一个SKPaymentTransactionObserver
我对什么时候打电话有点困惑: [[SKPaymentQueue defaultQueue] finishTransaction:transaction]; 在“服务器产品模型”中:http://dev
我使用服务器端收据验证。 当客户的 - (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transa
我们的应用程序中有两个用于购买非续订订阅的 IAP。 - (void)paymentQueue:(SKPaymentQueue*)queue updatedTransactions:(NSArray*
我的应用程序将允许用户通过应用程序内购买升级到专业版功能。我正在用我自己的服务器验证收据数据,如果确认从我的服务器返回,我调用 finishTransaction: 如果验证失败(可能不是因为盗版企图
我正在 iOS sdk 中的应用程序购买项目中工作。我已经准备了应用程序购买类,用于从应用程序商店购买应用程序,并启用项目的内部内容。但是,我的问题是 SKPaymentQueue 没有完成我的类。这
这个问题让我头疼了一段时间。 我的应用采用自动续订订阅模式。我有一个 SKPaymentQueue transactionObserver,当通过 Apple 成功完成购买时会收到通知,此时我将 Ap
我包含了一些非消耗性 IAP,但我在加载我的应用程序时遇到了问题,因为它似乎不断提示我登录到我设置的测试帐户用户。 我看了类似的问题后,我相信这是因为我最初没有在每个 .case 中添加以下行: S
我在 iPhone 上的应用程序中模拟购买自动续订订阅。我的问题是购买被认为是由 App store 完成的,但事实并非如此。 事情是这样的: 用户按下按钮购买续订 用户提供他的 iTunes 密码并
我是一名优秀的程序员,十分优秀!