我如何检查用户是否点击了取消按钮(当他被问到是否想购买smth时,或者如果他已经购买了这个SKProduct,他是否想要下载它)?
现在,我只是在paymentQueue:updatedTransactions:方法中收到SKPaymentTransactionStateFailed,无论是在用户点击取消按钮之后,还是在没有互联网的情况下。有没有办法区分这两种情况?
发布于 2012-11-27 02:49:32
检查设置的SKPaymentTransaction error属性。
@property(非原子,只读) NSError *error描述处理事务时发生的错误的对象。(只读)
除非将transactionState设置为SKPaymentTransactionStateFailed,否则error属性未定义。您的应用程序可以读取error属性来确定事务失败的原因。
此外,您可能希望在启动交易之前使用Apple的可达性类来确定Internet是否可用。
发布于 2013-03-08 23:14:17
下面的代码适用于我:
if (transaction.error.code != SKErrorPaymentCancelled) {
NSLog(@"Other error");
} else {
NSLog(@"User canceled");
}发布于 2015-01-08 23:09:49
Ellen的答案是完美的。以防有人对其他案子感到疑惑
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;
}https://stackoverflow.com/questions/13570970
复制相似问题