银行App集成Apple Pay应用内开卡:向Apple Wallet传递activationData的正确方式
Apple Pay In-App Provisioning 中 activationData 的使用说明
核心结论
不需要同时执行两种操作,这两种方式对应不同的卡片激活流程,按需选择其一即可:
1. 通过 addPaymentPassViewController 代理方法传递
这种方式适用于自动激活场景:
- 若你在初始化
PKAddPaymentPassViewController时就能获取到完整的activationData,可在代理方法addPaymentPassViewController(_:didFinishAdding:error:)中直接将该数据传递给 Wallet。 - 流程逻辑:用户确认添加卡片后,代理方法触发,传入
activationData后,Wallet 会自动完成卡片激活,无需额外调用激活方法。
2. 调用 activate(_:activationData:completion:) 方法
这种方式适用于手动激活场景:
- 如果卡片添加到 Wallet 后需要用户完成额外验证操作(比如输入短信验证码),或者你无法在卡片添加阶段提前获取到
activationData,就需要使用该方法。 - 执行时机:在卡片成功添加到 Wallet 之后(通常是在
addPaymentPassViewController(_:didFinishAdding:error:)代理方法中确认卡片添加成功后),获取到服务端返回的activationData,再调用PKPaymentPass对象的activate(_:activationData:completion:)方法。
选择建议
- 若能在用户确认添加卡片前就从服务端拿到
activationData,优先选择第一种代理传递的方式,流程更简洁。 - 若卡片需要二次验证(比如用户完成验证后服务端才返回
activationData),则选择第二种手动调用激活方法的方式。
内容的提问来源于stack exchange,提问作者elmira
相关产品推荐
相关产品推荐

