Apple Pay运行环境:iPhone6以上设备,操作系统最低iOS9.0以上,部分信息设置需要iOS9.2以上。目前还不支持企业证书添加。
环境搭建好后可以在模拟器上面运行,xcode7.2.1+iPhone6SP9.2系统下,系统会绑定几种虚拟的银行卡,和几个联系人,方便调试,支付也不会发生真实的付款,真的很方便。
准备工作
在接入Apple Pay之前,首先要申请MerchantID及对应证书。(申请MerchantID及对应证书详细图文教程)
工程设置
- bundleID设置
Capability中启用Apple Pay权限,并选择merchantID。
之后项目会多一个Applepay的配置文件ApplePayYasin.entitlements
- 需要引用的库
Xcode7.0以上不需要再手动添加需要引用的库了,只需要导入头文件就可以了
1 2 3 |
|
- 设备Applepay权限检测
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
创建支付请求PKPaymentRequest
- 初始化PKPaymentRequest
这里需要注意RMB的币种代码是CNY
1 2 3 4 5 6 7 |
|
- 设置发票配送信息和货物配送地址信息,用户设置后可以通过代理回调代理获取信息的更新
1 2 3 4 5 |
|
送货信息页面展示
设置货物的配送方式,不需要不配置
1 2 3 4 5 6 7 8 9 10 |
|
- 账单信息的设置
每条账单的设置
账单列表使用PKPaymentSummaryItem添加描述和价格,价格使用NSDecimalNumber。
PKPaymentSummaryItem初始化:
label为商品名字或者是描述,amount为商品价格,折扣为负数,type为该条账单为最终价格还是估算价格(比如出租车价格预估)
1 2 |
|
NSDecimalNumber初始化:
NSDecimalNumber可以使用数字初始化,也可以使用字符串。
使用方法请移步我写的NSDecimalNumber--十进制数
添加账单列表:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
显示购物信息并进行支付
1 2 3 4 |
|
PKPaymentAuthorizationViewControllerDelegate代理
- 这里还有两个类要介绍
PKPayment 支付成功信息
1 2 3 4 5 |
|
PKContact 联系人信息
1 2 3 4 5 |
|
- 代理说明
送货地址回调
1 2 3 4 5 6 7 |
|
送货方式回调
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
支付卡选择回调
1 2 3 4 |
|
送货地址回调,已弃用
1 2 3 |
|
付款成功苹果服务器返回信息回调,做服务器验证
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
支付完成回调
1 2 3 |
|