你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發基礎 >> iOS 集成銀聯支付(繞過文檔的坑,快速集成)

iOS 集成銀聯支付(繞過文檔的坑,快速集成)

編輯:IOS開發基礎

45.png

本文是投稿文章,作者:南栀傾寒
當初集成支付寶的時候,覺得見了這麼丑的代碼,加上這麼難找的下載地址,在配上幾乎為零的文檔,寒哥就要吐血了。

下午去集成銀聯,才知道血吐的早了。

  • 下載地址:https://open.unionpay.com/upload/download/Development_kit85427986.rar

其實我找了半個小時 也不知道怎麼就下載好了 這個我在Chrome的下載記錄裡找到的

解壓之後會有這樣的目錄結構

239184-ebeabb025e019b86.png

Paste_Image.png

文檔在下面 sdk在upmp_iPhone裡面
239184-7ff3b248547406c6.png

Paste_Image.png

1、SDK 說明

SDK 分為以下兩個版本:
1.支持純無卡交易靜態庫,以下簡稱 UPPayPlugin,包含文件:

UPPayPlugin.h  UPPayPluginDelegate.h  libUPPayPlugin.a

2、支持純無卡交易和 VIPOS 音頻口支付靜態庫,以下簡稱 UPPayPluginPro,

包含文件:

  • UPPayPluginPro.h

  • UPPayPluginDelegate.h  libUPPayPluginPro.a

3、添加 SDK 包

a.根據商戶選擇的SDK版本,將sdk/inc目錄和sdk/libs目錄下對應版本的三個文件添加到 UPPayDemo 工程中;

b.如 果 你 選 擇 的 是 UPPayPlugin 版 本 , 添 加 QuartzCore.framework 、Security.framework 到工程中;

c.如 果 你 選 擇 的 是 UPPayPluginPro 版 本 , 添 加 QuartzCore.framework 、AudioToolbox.framework, CoreAudio.framework 、 MediaPlayer.framework,AVFoundation.framework 和 Security.framework 到工程中;

d.在工程的 Build Settings 中找到 Other Linker Flags 中添加-ObjC 宏;(這個可能是遺留的問題 我就沒寫 不報錯)

239184-6764e25cd0a71413.png

Paste_Image.png

4、調用插件

a.在需要調用支付控件的源文件內引用頭文件 UPPayPlugin.h 或 UPPayPluginPro.h(注意:如果工程的 compile source as 選項的值不是 Objective–C++,則引用此頭文件的文件類型都要改為.mm)

b.通過調用

(BOOL)startPay:(NSString)tn mode:(NSString)mode

viewController:(UIViewController*)viewController delegate:(id)delegate;

實現控件的調用

c.處理支付結果

銀聯手機支付控件有三個支付狀態返回值:success、fail、cancel,分別代表:支付成功、支付失敗、用戶取消支付。這三個返回狀態值以字符串的形式作為回調函數參數(NSString)result 返回。通過在工程中添加頭文件“UPPayPluginDelegate.h”,在處理交易結果的界面,實現 UPPayPluginDelegate接口,根據該頭文件中的回調函數:-(void)UPPayPluginResult:(NSString)result來實現回調方法,從而可以根據支付結果的不同進行相關的處理。

a.將 xcode 工程中 Build Setting -> Apple LLVM compiler Language 標簽下的 C++ Language Dialect 和 C++ Standard Library 屬性值修改為 Compiler Default

b.將涉及到引用 UPPayPlugin.h 的源文件的後綴名都改為.mm;

c.參照demo,檢查工程設置 Search Paths 裡的 Framework Search Paths、Header Search Paths、Library Search Paths 的路徑設置,看設置路徑是否正確

d.添加 QuartzCore.framework、AudioToolbox.framework, CoreAudio.framework、 MediaPlayer.framework, AVFoundation.framework 和 Security.framework

e.工程的 Build Settings 中找到 Other Linker Flags 中添加-ObjC 宏;

上面提到的幾點網上都可以找到,如果已經正確設置,還是編譯不通過,那麼趕緊檢查下 項目targets 對應的sdk版本,選擇7.0以下的,目前銀聯的sdk貌似還不支持7.0,

注:

銀聯支付目測只需要2個參數 1 tn 其實就是訂單號 2 mode 是測試環境還是線上環境

和支付寶不同的是 支付寶要求本地把訂單的信息書寫完畢 調起sdk支付即可 銀聯是我把一些生成訂單的信息 如 付款方 收款方 訂單描述 金額等信息傳遞到服務器 由服務器生成一個訂單號 然後客戶端調起sdk進入支付

mode 竟然是個死的字符串 真是醉了 "00" 表示線上環境"01"表示測試環境

返回的代理結果 更是坑爹 :success、fail、cancel,分別代表:支付成功、支付失敗、用戶取消支付

測試環境 賬號

提供測試使用卡號、手機號信息(此類信息僅供測試,不會發生正式交易)招商銀行預付費卡:卡號:6226 4401 2345 6785密碼:111101

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved