Please enable Javascript to view the contents

优化支付 (IAP) 时的异常处理

 ·  ☕ 1 分钟

背景信息

  • Unity IAP;
  • 目标是对支付异常情况的捕捉及处理;

具体实现

异常列表完善

  1. 内置的异常如下:
  2. 新增的异常如下(初始化阶段之前):
    • NetworkUnavailable:初始化阶段的第一优先级判断,玩家本地无网络连接时;

因此,最终的异常列表如下(异常描述就省略了,🙊 当然不是因为表格太丑二删掉的):

类型 具体异常 处理方案
判断网络
(初始化前)
NetworkUnavailable 网络异常
InitializationFailureReason
(3个)
AppNotKnown 支付失败
NoProductsAvailable 支付失败
PurchasingUnavailable 支付失败
PurchaseFailureReason
(8个)
DuplicateTransaction /
ExistingPurchasePending /
PaymentDeclined /
ProductUnavailable 支付失败
PurchasingUnavailable 支付失败
SignatureInvalid 支付失败
Unknown 支付失败
UserCancelled /

异常处理方案

按照捕捉到的具体异常进行分类处理,共如下三类:

  • 网络异常:需要交互;
  • 支付失败:需要交互;
  • 其他(取消/重复购买/仅iOS的特殊异常):暂不处理;

附:IAP 官方流程

PurchaseProcessingResult.Complete
PurchaseProcessingResult.Pending
分享

Molly Wang
作者
Molly Wang
一个数据产品人的自我修养