iOS IAP商品展示和支付失败错误的优化.md

苹果文档明确提出了,如果要对错误的问题做处理的话,是针对两个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

参考资料

  • Handling Errors
  • cfnetworkerrors
  • URL Loading System Error Codes

你可能感兴趣的:(iOS IAP商品展示和支付失败错误的优化.md)