項目中要用到支付功能,須要支付寶支付、支付寶網頁支付轉客戶端、微信支付、銀聯支付、Apple_pay,因此打算總結一下,方便之後的查閱,也方便你們, 用到的地方避免再次被坑。 今天咱們就主要介紹一下Apple_pay,其餘支付也寫了對應教程,而且給出了鏈接。web
1-2. 商戶生成訂單,經過商戶 SERVER 端將訂單信息發送給銀聯支付網關; 3-4. 銀聯支付網關記錄訂單信息,返回用來標識訂單的 TN 號,經由商戶 SERVER 返回至給 商戶 APP; 5.商戶 APP 調用銀聯 SDK,將 TN 號傳遞給銀聯 SDK 6.銀聯 SDK 向 Apple 公司的 PASSKIT FRAMEWORK 發起支付請求; 7.接口返回加密的支付 Token 信息; 8-9.銀聯 SDK 將支付 Token 傳遞給銀聯支付網關,完成交易認證; 10-12.銀聯將支付結果返回給商戶 APP,商戶 SERVER,商戶 APP 負責提示用戶交易結果。bash
bundleID設置服務器
Capability中啓用Apple Pay權限,並選擇merchantID,merchantID申請流程。微信
以後項目會多一個Applepay的配置文件ApplePayYasin.entitlementspost
Apple Pay SDK微信支付
下載以後,找到.h文件和庫文件,使用UPPaymentControl須要將paymentcontrol/inc目錄下UPAPayPlugin.h、UPAPayPluginDelegate.h文件和paymentcontrol/libs目錄下的libUPAPayPlugin.a文件添加到商戶應用的工程中加密
在調用銀聯支付類裏面,首先增長頭文件引用。spa
#import "UPAPayPlugin.h"
// TODO 商戶須要換用本身的mertchantID
#define kAppleMerchantID @"merchant.com.AgreePay.ApplePayAgree"
複製代碼
在調起支付的方法中代碼以下:3d
//當得到的tn不爲空時,調用支付接口
if (tn != nil && tn.length > 0) {
[UPAPayPlugin startPay:tn
mode:@"01"
viewController:ViewController
delegate:self andAPMechantID:kAppleMerchantID];
}
複製代碼
方法須要的幾個參數文檔上都寫的有,tn是交易流水號,服務器端傳回來的,客戶端只有憑藉這個參數才能調用支付控件 進行支付的。只須要調用一個方法就行啦!!!code
就在調起支付的ViewController 中寫入下面代碼便可
#pragma mark -
#pragma mark 響應控件返回的支付結果
#pragma mark -
- (void)UPAPayPluginResult:(UPPayResult *)result
{
if(result.paymentResultStatus == UPPaymentResultStatusSuccess) {
NSString *otherInfo = result.otherInfo?result.otherInfo:@"";
NSString *successInfo = [NSString stringWithFormat:@"支付成功\n%@",otherInfo];
NSLog(@"%@",successInfo);
}else if(result.paymentResultStatus == UPPaymentResultStatusCancel){
NSLog(@"支付取消");
}else if (result.paymentResultStatus == UPPaymentResultStatusFailure) {
NSString *errorInfo = [NSString stringWithFormat:@"%@",result.errorDescription];
NSLog(@"支付失敗%@",errorInfo);
}else if (result.paymentResultStatus == UPPaymentResultStatusUnknownCancel) {
//TODO UPPAymentResultStatusUnknowCancel表示發起支付之後用戶取消,致使支付狀態不確認,須要查詢商戶後臺確認真實的支付結果
// NSString *errorInfo = [NSString stringWithFormat:@"支付過程當中用戶取消了,請查詢後臺確認訂單"];
// [self showAlertMessage:errorInfo];
NSLog(@"支付過程當中用戶取消了,請查詢後臺確認訂單");
}
}
複製代碼
關注 【網羅開發】微信公衆號,網羅天下方法,方便你我開發,更多iOS技術乾貨等待領取,全部文檔會持續更新,歡迎關注一塊兒成長!
但願能夠幫助你們
若是哪裏有什麼不對或者不足的地方,還望讀者多多提意見或建議
如需轉載請聯繫我,通過受權方可轉載,謝謝