文章分享至:https://cainluo.github.io/14740149724404.htmlhtml
前面已經把**
WeChat SDK
**的支付,AliPay SDK
搞得七七八八了, 接下來就是銀聯支付的Union Pay SDK
. 最後: 若是你有更好的建議或者對這篇文章有不滿的地方, 請聯繫我, 我會參考大家的意見再進行修改, 聯繫我時, 請備註Union Pay SDK
若是以爲好的話, 但願你們也能夠打賞一下~嘻嘻~祝你們學習愉快~謝謝~git
銀聯嘛, 用過銀行卡的人都懂的, 咱們大天朝的產物, 主要是用來聯合大天朝各個銀行, 實現各個銀行互通, 可跨行, 跨區, 跨境使用等等....其實換了一句話來講, 就是中國版的**
VISA
,MasterCard
, 雖然銀聯起步的比較晚, 但發展的腳步不比VISA
**, **MasterCard
**要差.github
在這裏, 我不得不吐槽一下, 若是是第一次集成銀聯的童鞋, 估計一開始還真是夠嗆的, 或許你連**
SDK
都找不到在哪裏下載, 這網站還真的很難找, 因此我在這裏貼出來給大家了, 方便各位童鞋們自行去查找下載商家技術服務** 這裏還有怎麼去查找SDK的示例, 你們也看看唄微信
這裏我下載下來的是3.3.3版本, 54.8MB大小, 或許以後銀聯會繼續更新SDK包, 這個的話, 你們看着辦吧~~網絡
慣例, 繼續來一段廢話, 打開咱們以前的集成**
WeChat SDK
和AliPay SDk
的工程, 新建一個工程叫作UnionPay-Objective-C
**的新工程app
配置工程的話, 首先咱們要引入**
Union Pay SDK
**的依賴包, 一共五個, 這或許是第三方支付品臺裏須要導入最少依賴的.佈局
- LocalAuthentication.framework
- SystemConfiguration.framework
- CoreGraphics.framework
- CFNetwork.framework
- libz.tbd
而後呢, 咱們須要去到**
Info.plist
**裏, 添加三個屬性學習
- App Transport Security Settings
- Allow Arbitrary Loads
- Application requires iPhone environment
- LSApplicationQueriesSchemes * uppaysdk * uppaywallet * uppayx1 * uppayx2 * uppayx3
接下來, 咱們要去添加**
URL Schemes
**了,測試
最後, 就是咱們要把**
Union Pay SDK
導進來了, 這樣子就配置好整個工程了, 順帶說一聲, 這個SDK
在paymentcontrol
**這個目錄下~網站
差點別忘了把**
-ObjC
**這個宏加上, 否則無法跑
慣例, 這裏咱們也是隻給一個**
UIButton
以及一個Action
**事件.
這裏還須要補充一個點, 因爲銀聯是採用**
C
、C++
以及Objective-C
混編的, 因此這個有些蛋疼, 官方提供三種方式去適配, 我這裏採用了最簡單的一種, 直接把.m
改爲.mm
**.
第一種
因爲支付控件使用到了**
C
、C++
和Objective-C
混編的狀況,因此商戶工程引入UPPaymentControl.h
**頭文件之後可能會出現連接錯誤,這個時候能夠經過如下三種方式解決:
將涉及到引用**
UPPaymentControl.h
的源文件的後綴名都改成.mm
**;若是商戶不想修改源文件的後綴名,能夠在工程中添加一個空的繼承自**
NSObject
的類,並將文件.m後綴名該改成.mm便可方法爲New File
** ->Objective-C class
->類名自取
->保存
->修改後綴名爲.mm
;將工程的**
compile source as
選項的值設置爲Objective–C++
**;
第二種
- 因爲在Demo工程中添加了自定義的庫文件**
libPaymentControl.a
** ,當編譯Demo工程時,應該檢查工程設置**Search Paths
裏的Framework Search Paths
、Header Search Paths
、Library Search Paths
**的路徑設置,看設置路徑是否正確,另外還要注意裏邊是否多餘一些不肯定的路徑。
第三種
- 將**
Xcode
工程中Build Setting
** ->Apple LLVM compiler Language
標籤下的C++ Language Dialect
和C++ Standard Library
屬性值修改成Compiler Default
如實在沒法解決,嘗試添加-ObjC
宏的地方修改成-force_load
+空格
+控件路徑
,如:-force_load $(PROJECT_DIR)/ libPaymentControl.a
,若是還報錯,上下文應該會有**libPaymentControl.a
文件找不到異常,好比ld: file not found: /Users/apple/Desktop/Communication 2/ libPaymentControl.a clang: error: linker command failed with exit code 1 (use -v to see invocation)
** 請肯定**libPaymentControl.a
**文件確實存在於此路徑,可能爲上下文路徑配錯。
集成的時候, 這裏咱們須要分爲兩個步驟, 一個是網絡, 一個是本地操做.
本地部分
所謂的本地部分, 指的就是彈框, 滅框的一些操做, 還有發起網絡一些點擊事件等等.
網絡部分
銀聯支付須要用到一個網絡交互的流程, 這裏的話, 咱們直接引用**
Demo
**裏的代碼, 而後再加以修改一丟丟, 就能夠了~
在測試支付這點上, 微信和銀聯都作的挺不錯的, 惟獨支付寶這個連個測試帳號都不提供, 真的是蛋疼...疼...疼, 打開銀聯接入指南, 裏面就會有兩個測試卡號.
測試帳號 | 測試信息 |
---|---|
姓名 | 張三 |
手機號碼 | 18100000000 |
證件類型 | 01身份證 |
證件號 | 510265790128303 |
招商銀行卡 | 6226090000000048 |
密碼 | 111101 |
驗證碼 | 123456(先點獲取驗證碼以後再輸入) |
測試帳號 | 測試信息 |
---|---|
姓名 | 張三 |
手機號碼 | 18100000000 |
證件類型 | 01身份證 |
CVN2 | 248 |
有效期 | 1219 |
證件號 | 510265790128303 |
華夏銀行貸記卡 | 6226388000000095 |
密碼 | 111101 |
驗證碼 | 123456(先點獲取驗證碼以後再輸入) |
項目地址: https://github.com/CainRun/PayProject