android银联支付
银联支付教程:
1. 概述;
银联手机支付控件(以下简称支付控件),主要为合作商户的手机客户端或手机Web网站提供安全、便捷的支付服务。目前支付控件支持Android和iOS两个平台,用户通过在支付控件中输入银行卡卡号、手机号、密码(借记卡和预付卡)或者CVN2、有效期(信用卡)、验证码等要素完成支付。
网上有更加完整的文档教程,地址:http://202.101.25.178:8080/sim/docs/ (主要看 3.控件使用指南)
android手机银联支付接入方式有两种,第一种是apk方式,另外一种是jar包方式,下面会作出讲解。
测试账号:
为方便商户进行接入的测试,银联支付为程序员提供了测试用的卡号和密码,
卡号:6226 4401 2345 6785 密码:111101(此类信息仅供测试,不会发生正式交易)
2. 支付流程介绍;
通过支付控件进行交易的流程如下图:
流程图说明:
(1)用户在客户端中点击购买商品,客户端发起订单生成请求到商户后台;
(2)商户后台收到订单生成请求后,按照《UPMP商户接入接口规范》组织并推送订单信息至银联后台;
(3)银联后台接收订单信息并检查通过后,生成对应交易流水号(即TN),并回复交易流水号至商户后台(应答要素:交易流水号等);
(4)商户后台接收到交易流水号,将交易流水号返回给客户端;
(5)客户端通过交易流水号(TN)调用支付控件;
(6)用户在支付控件中输入相关支付信息后,由支付控件向银联后台发起支付请求;
(7)支付成功后,银联后台将支付结果通知给商户后台;
(8)银联将支付结果通知支付控件;
(9)支付控件显示支付结果并将支付结果返回给客户端;
目前各个平台支持的设备情况如下:
Android平台SDK主要适用于Android 2.1及以上版本的终端设备;
iOS版本支付控件适用iOS 5.1及以上版本终端设备。
3. 客户端接入;
① SDK包的说明;
SDK分为以下两个版本:
a,支持纯无卡交易版本,该版本主要位于upmp_android/sdknocard目录下:
apk目录下包括了通过apk方式接入的UPPayPluginEx.apk;
jar目录下包括了静态库集成方式所需要的jar包、so文件(支持arm,armv7,x86和mips平台)和资源文件。
b,支持纯无卡交易和有卡交易的版本,有卡交易支持银联的迷你IC卡产品、智能SD卡产品、VIPOS产品等,该版本主要位于upmp_android/sdkPro目录下:
apk目录下包括了通过apk方式接入的UPPayPluginExPro.apk
jar目录下包括了静态库集成方式所需要的jar包、so文件(支持arm,armv7,x86和mips平台)和资源文件。
注意:
data.bin文件为图片资源文件,必须存放在工程的res/drawable目录下;
UPPayPluginEx.jar为jar包形式的控件,必须存放在工程的libs目录下;
libentryex.so为动态库文件,请根据需要存放于工程的libs/xxx/目录下,其中xxx为armeabi,armeabi-v7a,mips,x86之一。
②接口说明
upmp_android/UPPayAssistEx.jar包中定义了启动支付控件的接口,接口定义如下:
public static int startPay(Activity activity, String spId,String sysProvider, String orderInfo, String mode)
参数说明:
activity ——用于启动支付控件的活动对象
spId ——保留使用,这里输入null
sysProvider ——保留使用,这里输入null
orderInfo ——订单信息为交易流水号,即TN。
mode —— 银联后台环境标识,“00”将在银联正式环境发起交易,“01”将在银联测试环境发起交易
返回值:
UPPayAssistEx.PLUGIN_VALID —— 该终端已经安装控件,并启动控件
UPPayAssistEx.PLUGIN_NOT_FOUND —— 手机终端尚未安装支付控件,需要先安装支付控件
其它辅助接口:
public static boolean installUPPayPlugin(Context context)
参数说明:
context ——安装控件的上下文
返回值: true ——安装正常,false ——安装失败
③添加SDK包
android 手机银联支付接入有两种方式,1是apk方式,即调用银联已经写好的apk(该apk也存在我们的项目中);2是jar包的方式;
apk方式:
拷贝upmp_android\sdknocard\UPPayAssistEx.jar(或upmp_android\sdkPro\UPPayAssistEx.jar)到工程的libs\目录下,选中jar包点击右键,选择buildPath;
同时也可将upmp_android\sdknocard\apk\UPPayPluginEx.apk (或upmp_android\sdkPro\apk\UPPayPluginExPro.apk)复制到客户端工程的assets目录下
jar包方式:
拷贝upmp_android\sdknocard\UPPayAssistEx.jar;unionPay\sdknocard\jar\UPPayPluginEx.jar(或upmp_android\sdkPro\UPPayAssistEx.jar;upmp_android\sdkPro\UPPayPluginEx.jar)到工程的libs\目录下,选中jar包点击右键,选择buildPath;
拷贝upmp_android\sdknocard\data.bin存放在工程的res/drawable目录下,该文件为图片资源文件;
拷贝upmp_android\sdknocard\libentryex.so根据需要存放于工程的libs/xxx/目录下,其中xxx为armeabi,armeabi-v7a,mips,x86之一,该文件为动态库文件。
权限设置:
在manifest.xml中进行权限设置,具体如下:
<span style="white-space:pre"> </span><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.ACCESS_WIFI_STATE"/><uses-permission android:name="android.permission.READ_PHONE_STATE" />
④调用支付控件
a) 在调用支付控件的代码文件中引入UPPayAssistEx类如:
import com.unionpay.UPPayAssistEx;
b) 接着可以通过以下方式调用支付控件:
// “00” – 银联正式环境
// “01” – 银联测试环境,该环境中不发生真实交易
String serverMode = “01”;
int ret = UPPayAssistEx.startPay ( activity, null, null, tn, serverMode);
if( ret == UPPayAssist.PLUGIN_NOT_FOUND ){
<span style="white-space:pre"> </span>//安装Asset中提供的UPPayPlugin.apk
<span style="white-space:pre"> </span>// 此处可根据实际情况,添加相应的处理逻辑
<span style="white-space:pre"> </span>UPPayAssistEx.installUPPayPlugin(activity);
}
支付完成后,获取支付控件支付结果,并添加相应处理逻辑,只需实现调用Activity中的onActivityResult()方法即可,实例代码如下:
protected void onActivityResult( int requestCode,int resultCode, Intent data) {if( data == null ){return;}String str = data.getExtras().getString("pay_result");if( str.equalsIgnoreCase(R_SUCCESS) ){showResultDialog(" 支付成功! ");}else if( str.equalsIgnoreCase(R_FAIL) ){showResultDialog(" 支付失败! ");}else if( str.equalsIgnoreCase(R_CANCEL) ){showResultDialog(" 你已取消了本次订单的支付! ");} }
4. 注意事项
android 手机银联支付接入有两种方式,1是apk方式,即调用银联已经写好的apk(该apk也存在我们的项目中);2是jar包的方式;
android银联支付相关推荐
- Android银联支付控件集成总结
银联支付 1.概述 银联支付有很多种类型,我们这里主要说的是手机控件支付 银联手机支付控件主要应用于各类手机电子商务平台的支付应用.银联控件合作商户的手机客户端(或网站)内集成(或调用)银联支付控件后 ...
- android 实现银联程序,Android银联支付之AIDL的基本使用
近期忙着银联支付接口的对接,银联支付的接口采用的 AIDL 进行通讯.那么我就和大家一起分享 AIDL 是如何使用的? AIDL 的全称为 Android Interface Definition L ...
- android的银联支付,android 银联支付Demo
[实例简介]/* * *使用Upomp_Pay_Demo关联说明 */ 1.需将PluginLink.java和com_unionpay_upomp_lthj_lib.jar放入到Upomp_Pay_ ...
- android 银联支付必须要nfc吗,手机没有NFC功能,可以使用银联云闪付功能吗?
理论上来讲得有nfc功能才可以使用银联云闪付功能. NFC主要有以下几类: 1.接触通过,如门禁管理.车票和门票等,用户将储存着票证或门控密码的设备靠近读卡器即可,也可用于物流管理. 2.接触支付,如 ...
- 安卓android银联支付Unionpay
转: 详情见以下链接 http://www.360doc.com/content/14/0909/17/9200790_408206083.shtml
- Android app支付-银联支付
前段时间集成了银联.微信和支付宝,感觉银联和微信的集成过程都是比较容易的,只有支付宝在和后台进行加签的过程中容易出错,导致支付失败.自己总结了集成的过程,希望可以分享和记录下来. 一.银联的demo和 ...
- android 银联插件,Android版添加phonegap-银联支付插件教程
1.下载插件包,将libs文件里面的文件拷贝到你的项目对应目录.并引入到你的路径里面. 2.拷贝res里的文件 至您工程的res/drawable目录下. 3.拷贝Pgylpay.java到你的项目目 ...
- android移动支付——银联支付
前言 这里开篇讲解一系列的Android相关的移动支付.移动支付也称为手机支付,用户使用移动的设备,完成对所购买商品或者服务的支付功能.包括远程支付(网上支付.短信支付),近场支付(刷卡.滴卡.pos ...
- Android集成银联支付
银联支付是继支付宝于微信支付之后的第三大支付方式,如果你已经看过前两篇博文,学会支付宝和微信的支付集成方法,接下来,银联支付就很简单了. 支付宝支付流程博文 http://blog.csdn.net/ ...
- Android开发之——银联支付初探
前言 现在网上支付用的比较多的是微信支付,支付宝支付和银联支付.关于微信和支付宝支付前面已经讲过了,本文主要介绍关于银联支付集成的过程和步骤. 银联支付 资源查找 集成文档 点击上面的集成文档,打开如 ...
最新文章
- python listbox输入内容自动换行_python中的图像界面设计(二)
- 怎样写C代码——《狂人C》习题解答1(第一章习题7)
- PHP 简单计算器代码实现
- error connection reset by peer 104
- php如何使用正则表达式,php如何使用正则表达式实现替换
- /dev/mapper/centos-root 100% 虚拟机硬盘空间占满
- HSV颜色识别demo
- 建立城市安防系统 打造更安全智慧城市
- MBSE基于模型的系统工程
- 寒假每日一题——贝茜放慢脚步
- 啸叫抑制(howling suppression)
- 基于jeecgboot的flowable流程增加节点表单的支持(二)
- hazelcast 搭建_使用HazelCast实现Spring Config Server配置
- 又是暴力裁员?腾讯 7 年老员工一朝被裁,官方回应了...
- mysql 轨迹数据存储_基于Tablestore实现海量运动轨迹数据存储
- MySQLamp;amp;JDBC回顾——MySQL
- java ocx调用_Java调用ocx控件以及dll
- 【ELM预测】探路者算法优化极限学习机预测(含前后对比)【含Matlab源码 2204期】
- Android apps浅析01-Amazed:一个简单但令人上瘾的加速度为基础的大理石指导游戏。...
- 最全面的Android工程师知识图谱推荐
热门文章
- Fault tolerant heap shim applied to current process. This is usually due to previous crashes
- 用旧手机搭建服务器并实现内网穿透不需要root(本人亲测很多次最简单的一个)
- 激活win10企业长期服务版
- html中td是什么模块,html td什么意思
- 30 行代码实现蚂蚁森林自动收能量
- UVa 1586 Molar mass(模拟)
- mysql干嘛的_mysql和sql是干什么的?
- write和read返回值详解
- 微软MSBI零基础从数据仓库到商业智能实战(SSIS SSAS SSRS)
- 升华网第三次培训心得