Android銀聯支付控制元件整合總結
銀聯支付
1.概述
銀聯支付有很多種型別,我們這裡主要說的是手機控制元件支付
銀聯手機支付控制元件主要應用於各類手機電子商務平臺的支付應用。銀聯控制元件合作商戶的手機客戶端(或網站)內整合(或呼叫)銀聯支付控制元件後,持卡人在合作商戶上即可使用銀聯手機支付安全控制元件進行安全的、便捷的即時支付,同時,保障使用者銀行卡資訊的安全。
2.支付流程
流程圖說明:
(1)使用者在客戶端中點選購買商品,客戶端發起訂單生成請求到商戶後臺;
(2)商戶後臺收到訂單生成請求後,按照《手機控制元件支付產品介面規範》組織並推送訂單資訊至銀聯後臺;
(3)銀聯後臺接收訂單資訊並檢查通過後,生成對應交易流水號(即TN),並回復交易流水號至商戶後臺(應答要素:交易流水號等);
(4)商戶後臺接收到交易流水號,將交易流水號返回給客戶端;
(5)客戶端通過交易流水號(TN)呼叫支付控制元件;
(6)使用者在支付控制元件中輸入相關支付資訊後,由支付控制元件向銀聯後臺發起支付請求;
(7)支付成功後,銀聯後臺將支付結果通知給商戶後臺;
(8)銀聯將支付結果通知支付控制元件;
(9)支付控制元件顯示支付結果並將支付結果返回給客戶端;
注: 本文件主要關注上述流程中(5)、(9)部分的實現
目前各個平臺支援的裝置情況如下:
Android平臺SDK主要適用於Android 2.3及以上版本的終端裝置;
3.測試賬號
提供測試使用卡號、手機號資訊(此類資訊僅供測試,不會發生正式交易)
招商銀行借記卡:6226090000000048 證件型別:01身份證 證件號:510265790128303 姓名:張三 |
華夏銀行貸記卡:6226388000000095 |
4.接入SDK和一些文件的說明
因為下載下來的銀聯手機控制元件支付開發包裡面的demo工程都還沒配好的,還有是用eclipse的,一些說明也在下載回來的控制元件使用指南的文件中有了,這裡也會列出來,現在我改用Androidstudio來完成這個demo,如下:
4.1 SDK包說明
商戶開發者在獲取到銀聯提供的開發包後請檢查SDK檔案所在目錄upmp_android/sdkProSDK,以下部分提及的檔案均在該目錄中:
Android Studio環境的配置:重點
UPPayAssistEx.jar 和UPPayPluginExPro.jar的jar包匯入libs下面。並在main下面建立assets資料夾把data.bin新增進去。armeabi檔案要新增到jniLibs檔案加下 同理:jniLibs也是手動建立的。
mainifests中也要配置:
首先是許可權:
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.NFC" /> <uses-feature android:name="android.hardware.nfc.hce" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="org.simalliance.openmobileapi.SMARTCARD" />
第二步:新增跳轉app與網頁的類等
<uses-library android:name="org.simalliance.openmobileapi" android:required="false" /> <activity android:name="com.unionpay.uppay.PayActivity" android:configChanges="orientation|keyboardHidden|keyboard" android:screenOrientation="portrait"> </activity> <activity android:name="com.unionpay.UPPayWapActivity" android:configChanges="orientation|keyboardHidden|fontScale" android:screenOrientation="portrait" android:windowSoftInputMode="adjustResize" > </activity>
最後設定build.gradle檔案:
設定支援的so庫:
defaultConfig { ndk { // 設定支援的 SO 庫構架 abiFilters 'armeabi'//, 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64', 'mips', 'mips64' } }
設定找到lib檔案的配置:
sourceSets { main { jniLibs.srcDirs = ['libs'] } }最後就可以測試看看了 。