领导想要接入Apple Pay,先找个的Demo跑起来。找的银联的SDK,开始干活。
- 先准备Merchant ID,ID要以“merchant.”开头。
- 项目中在Capabilities里,找到Apple Pay 设置为on,填写上Merchant ID。项目会自动生成XXX.entitlements ,打开会发现是一个plist形式的键值对,Merchant IDs是个存储多个Merchant ID的数组。
- 把银联SDK的UPAPayPluginDelegate.h 和UPAPayPlugin.h 还有libUPAPayPlugin.a 一起拖入项目中来。
- 在Build Phases的Link Binary With Libraries添加以下几个库:libz.tbd、SystemConfiguration.framework、Passkit.framework、CFNetwork.framework。
- 唤醒支付的时候要判断是否能够支付 。iOS 9.2 以上和 iPhone 6以上的机型。
[PKPaymentAuthorizationViewController canMakePayments]
- 根据卡的类型来判断是否可以支付
if ([PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:@[PKPaymentNetworkChinaUnionPay]] && tn )
{
[UPAPayPlugin startPay:tn mode:@"01" viewController:self delegate:self andAPMechantID:kAppleMerchantID];
}
- 编译要处理一下,唤醒支付那个类.m 改成.mm。Build Setting里面修改Apple LLVM 8.1 -Language -C++, C++ Language Dialect 和 C++ Standard Library 都修改为Compiler Default。Linking 里面的Other Linker Flags 添加-force_load $(PROJECT_DIR)/ApplePayDemo/libUPAPayPlugin.a。格式是-force_load+空格+静态库的路径。一定要确保静态库的路径正确。
- 支付后处理回调
- (void) UPAPayPluginResult:(UPPayResult *) payResult