領(lǐng)導(dǎo)想要接入Apple Pay,先找個(gè)的Demo跑起來。找的銀聯(lián)的SDK,開始干活。
- 先準(zhǔn)備Merchant ID,ID要以“merchant.”開頭。
- 項(xiàng)目中在Capabilities里,找到Apple Pay 設(shè)置為on,填寫上Merchant ID。項(xiàng)目會自動生成XXX.entitlements ,打開會發(fā)現(xiàn)是一個(gè)plist形式的鍵值對,Merchant IDs是個(gè)存儲多個(gè)Merchant ID的數(shù)組。
- 把銀聯(lián)SDK的UPAPayPluginDelegate.h 和UPAPayPlugin.h 還有l(wèi)ibUPAPayPlugin.a 一起拖入項(xiàng)目中來。
- 在Build Phases的Link Binary With Libraries添加以下幾個(gè)庫:libz.tbd、SystemConfiguration.framework、Passkit.framework、CFNetwork.framework。
- 喚醒支付的時(shí)候要判斷是否能夠支付 。iOS 9.2 以上和 iPhone 6以上的機(jī)型。
[PKPaymentAuthorizationViewController canMakePayments]
- 根據(jù)卡的類型來判斷是否可以支付
if ([PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:@[PKPaymentNetworkChinaUnionPay]] && tn )
{
[UPAPayPlugin startPay:tn mode:@"01" viewController:self delegate:self andAPMechantID:kAppleMerchantID];
}
- 編譯要處理一下,喚醒支付那個(gè)類.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+空格+靜態(tài)庫的路徑。一定要確保靜態(tài)庫的路徑正確。
- 支付后處理回調(diào)
- (void) UPAPayPluginResult:(UPPayResult *) payResult