Android银联支付控件集成总结
银联支付
1.概述
银联支付有很多种类型,我们这里主要说的是手机控件支付
银联手机支付控件主要应用于各类手机电子商务平台的支付应用。银联控件合作商户的手机客户端(或网站)内集成(或调用)银联支付控件后,持卡人在合作商户上即可使用银联手机支付安全控件进行安全的、便捷的即时支付,同时,保障用户银行卡信息的安全。
2.支付流程
流程图说明:
(1)用户在客户端中点击购买商品,客户端发起订单生成请求到商户后台;
(2)商户后台收到订单生成请求后,按照《手机控件支付产品接口规范》组织并推送订单信息至银联后台;
(3)银联后台接收订单信息并检查通过后,生成对应交易流水号(即TN),并回复交易流水号至商户后台(应答要素:交易流水号等);
(4)商户后台接收到交易流水号,将交易流水号返回给客户端;
(5)客户端通过交易流水号(TN)调用支付控件;
(6)用户在支付控件中输入相关支付信息后,由支付控件向银联后台发起支付请求;
(7)支付成功后,银联后台将支付结果通知给商户后台;
(8)银联将支付结果通知支付控件;
(9)支付控件显示支付结果并将支付结果返回给客户端;
注: 本文档主要关注上述流程中(5)、(9)部分的实现
目前各个平台支持的设备情况如下:
Android平台SDK主要适用于Android 2.3及以上版本的终端设备;
3.测试账号
提供测试使用卡号、手机号信息(此类信息仅供测试,不会发生正式交易)
招商银行借记卡:6226090000000048 |
华夏银行贷记卡: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'] } }最后就可以测试看看了 。