首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查用户是否取消了SKPaymentTransaction

检查用户是否取消了SKPaymentTransaction
EN

Stack Overflow用户
提问于 2012-11-27 02:32:27
回答 7查看 9.8K关注 0票数 17

我如何检查用户是否点击了取消按钮(当他被问到是否想购买smth时,或者如果他已经购买了这个SKProduct,他是否想要下载它)?

现在,我只是在paymentQueue:updatedTransactions:方法中收到SKPaymentTransactionStateFailed,无论是在用户点击取消按钮之后,还是在没有互联网的情况下。有没有办法区分这两种情况?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-11-27 02:49:32

检查设置的SKPaymentTransaction error属性。

@property(非原子,只读) NSError *error描述处理事务时发生的错误的对象。(只读)

除非将transactionState设置为SKPaymentTransactionStateFailed,否则error属性未定义。您的应用程序可以读取error属性来确定事务失败的原因。

此外,您可能希望在启动交易之前使用Apple的可达性类来确定Internet是否可用。

票数 1
EN

Stack Overflow用户

发布于 2013-03-08 23:14:17

下面的代码适用于我:

代码语言:javascript
复制
if (transaction.error.code != SKErrorPaymentCancelled) {
    NSLog(@"Other error");
} else {
    NSLog(@"User canceled");
}
票数 22
EN

Stack Overflow用户

发布于 2015-01-08 23:09:49

Ellen的答案是完美的。以防有人对其他案子感到疑惑

代码语言:javascript
复制
switch (transaction.error.code) {
   case SKErrorUnknown:
       //Unknown error
       break;
   case SKErrorClientInvalid:
       // client is not allowed to issue the request, etc.
       break;
   case SKErrorPaymentCancelled:
       // user cancelled the request, etc.
       break;
   case SKErrorPaymentInvalid:
       // purchase identifier was invalid, etc.
       break;
   case SKErrorPaymentNotAllowed:
       // this device is not allowed to make the payment
       break;
   default:
       break;
}
票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13570970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档