如何实现Apple Wallet Extension完成银行App银行卡添加至苹果钱包
Apple Wallet 发卡方非UI扩展调用逻辑
前置校验(系统展示你方App入口的前提)
- 已获取
com.apple.developer.payment-pass-provisioning权限,且完成苹果发卡方资质备案 - 扩展的
Info.plist中NSExtension节点正确配置:扩展类型为com.apple.PKIssuerProvisioningExtension,主类指向你实现的PKIssuerProvisioningExtensionHandler子类 - 你方主App已登录的用户名下存在可添加至钱包的有效银行卡
用户选中你方App后的非UI扩展调用流程
- 系统后台启动非UI扩展进程,全程不会拉起主App,也不会展示你方自定义UI
- 首次回调:系统调用主类的
passesWithCompletion:方法,你需要在该回调中返回用户名下所有可添加的银行卡基础信息(卡面、卡号后四位、卡产品名称等),封装为PKIssuerProvisioningExtensionPassEntry数组返回给系统 - 用户在钱包弹出的可选卡列表中选择要添加的卡片后,系统触发第二次回调:调用主类的
generateCredentialsForEntry:completion:方法 - 你需要在该回调中与银行后台交互,获取加密卡数据、证书链、随机数、签名等必填参数,封装为
PKAddPaymentPassRequest对象返回给系统 - 系统拿到参数后自动完成后续的卡激活、写入钱包操作,添加成功后回调你扩展的对应方法通知结果
补充说明
如果流程中需要身份校验(比如短信验证、人脸核验),系统会自动拉起你方的UI扩展展示认证页面,认证完成后才会回到非UI扩展的后续流程,无需主动跳转主App实现认证。
非UI扩展的运行时长被系统限制在30s以内,所有操作必须在超时前完成回调,否则进程会被系统强制终止,导致添加卡失败。
内容的提问来源于stack exchange,提问作者saggy
相关产品推荐
相关产品推荐

