APP中銀聯支付的使用量相比較來說是比較少的,官方給出的文檔比較簡陋但是集成起來還是比較簡單的。以下是我參考官方文檔和實際項目中總結一些集成步驟和問題
去銀聯支付開放平臺下載開發包https://open.unionpay.com/ajweb/index,開發包不怎么好找 = =
1.最新版本的開發包現在只有兩個文件這里我事先新進一個文件夾講開發包里面的libPaymentControl.a文件和UPPaymentControl.h文件放在一個文件夾中,并添加到工程當中,如下圖所示:
2.添加庫文件CFNetwork.framework、SystemConfiguration.framework 、libz.tbd、libPaymentControl.a到工程如圖所示
3.添加完庫文件需要設置應用回調地址。在URL Types里面添加 如圖:
在紅線處添加你工程的名稱即可
4.適配http網絡設置。需要在工程對應的plist文件中添加NSAppTransportSecurity Dictionary 并同時設置里面NSAllowsArbitraryLoads 屬性值為 YES。
但是蘋果在2017.01.01起就強制要求所有的網絡請求的接口必須是HTTPS了,所以這里讓還是后臺設置好最為妥當。
5.添加協議白名單。在Xcode7.0之后的版本中進行開發,需要在工程對應的plist文件中,添加LSApplicationQueriesSchemes Array并加入uppaysdk、uppaywallet、uppayx1、uppayx2、uppayx3五個item。如圖所示:
6.調用支付。這里銀聯支付的開發文檔提示我們:如果工程的compile source as 選項的值不是Objective–C++,則引用此頭文件的文件類型都要改為.mm。查看下自己的選項是不是,直接在工程中修改要吊起的 .m文件的文件名問 .mm 即可。
6.1 在要吊起支付的文件中引入頭文件 #import "UPPaymentControl.h" 。
6.2 從后臺獲取吊起支付需要的參數 tn 執行方法:
if (_tnStr != nil && _tnStr.length>0) {
[[UPPaymentControl defaultControl]startPay:_tnStr fromScheme:@"YouProjectName" mode:@"00" viewController:self];
}
這里的mode有兩種值 當為00時代表生產模式,當為01時代表測試模式。
6.3 支付結果回調。在Appdelegate.m文件里。前端的支付結果是要通過服務器反饋來判斷的,我這里為了省事直接獲取的結果然后用的通知返回給吊起頁面的。
銀聯支付的大概集成使用也就這些了,對于前端來說還是比較簡單的。
對于集成中遇到的問題以后會陸續更新,大家也可以相互交流。。