Apple Pay运行环境:iPhone6以上设备,操作系统最低iOS9.0以上,部分信息设置需要iOS9.2以上。目前还不支持企业证书添加。
环境搭建好后可以在模拟器上面运行,xcode7.2.1+iPhone6SP9.2系统下,系统会绑定几种虚拟的银行卡,和几个联系人,方便调试,支付也不会发生真实的付款,真的很方便。
准备工作
在接入Apple Pay之前,首先要申请MerchantID及对应证书。
工程设置
-
bundleID设置
Capability中启用Apple Pay权限,并选择merchantID。
之后项目会多一个Applepay的配置文件ApplePayYasin.entitlements
-
需要引用的库
Xcode7.0以上不需要再手动添加需要引用的库了,只需要导入头文件就可以了
1
2
3
|
#import <passkit passkit.h=""> //用户绑定的银行卡信息
#import <passkit pkpaymentauthorizationviewcontroller.h=""> //Apple pay的展示控件
#import <addressbook addressbook.h=""> //用户联系信息相关</addressbook></passkit></passkit>
|
-
设备Applepay权限检测
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
if
(![PKPaymentAuthorizationViewController class]) {
//PKPaymentAuthorizationViewController需iOS8.0以上支持
NSLog(@
"操作系统不支持ApplePay,请升级至9.0以上版本,且iPhone6以上设备才支持"
);
return
;
}
//检查当前设备是否可以支付
if
(![PKPaymentAuthorizationViewController canMakePayments]) {
//支付需iOS9.0以上支持
NSLog(@
"设备不支持ApplePay,请升级至9.0以上版本,且iPhone6以上设备才支持"
);
return
;
}
//检查用户是否可进行某种卡的支付,是否支持Amex、MasterCard、Visa与银联四种卡,根据自己项目的需要进行检测
NSArray *supportedNetworks = @[PKPaymentNetworkAmex, PKPaymentNetworkMasterCard,PKPaymentNetworkVisa,PKPaymentNetworkChinaUnionPay];
if
(![PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:supportedNetworks]) {
NSLog(@
"没有绑定支付卡"
);
return
;
}
|
创建支付请求PKPaymentRequest
-
初始化PKPaymentRequest
这里需要注意RMB的币种代码是CNY
1
2
3
4
|