苹果文档明确提出了,如果要对错误的问题做处理的话,是针对两个domain做处理: NSURLErrorDomain、 SKErrorDomain
,我们在商品展示和支付的过程中,可以根据这两个domain
下的不同ErrorCode
做不同处理,给用户不同的合适的处理方案(比如:提示失败的原因让用户主动解决、使用挽留弹框).
这样,一是可以减少客诉、二是能对用户做挽留消费(比如用户取消了扣款).
一、NSURLErrorDomain
和网络相关的使用NSURLErrorDomain. 判断NSError的domian是否为NSURLErrorDomain.
URL Loading System Error Codes
image.png
比如 NSURLErrorServerCertificateUntrusted = -1202:
image.png
二、SKErrorDomain
和payments, store products, and cloud services相关的使用SKErrorDomain.
SKErrorCode
枚举值 | 含义 |
---|---|
SKErrorUnknown=0 | 根据localizedDescription获取详细信息 |
SKErrorClientInvalid | 客户端不被允许 |
SKErrorPaymentCancelled | 用户主动取消 |
SKErrorPaymentInvalid | Payment参数不 被AppStore识别 |
SKErrorStoreProductNotAvailable | storeFront商品无效 |
SKErrorInvalidOfferIdentifier | Offer id无效.老用户优惠支付时,该offerid在itc未配置 |
SKErrorInvalidOfferPrice | 价格无效. 修改了正常订阅的价格,导致其比老用户优惠价格还低.Offer price必须<正常价格 |
SKErrorInvalidSignature | 老用户优惠签名不再有效 |
SKErrorMissingOfferParams | 老用户优惠参数丢失 |
示例: 失败的交易的Transaction
image.png
参考资料