银联支付教程:

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银联支付相关推荐

  1. Android银联支付控件集成总结

    银联支付 1.概述 银联支付有很多种类型,我们这里主要说的是手机控件支付 银联手机支付控件主要应用于各类手机电子商务平台的支付应用.银联控件合作商户的手机客户端(或网站)内集成(或调用)银联支付控件后 ...

  2. android 实现银联程序,Android银联支付之AIDL的基本使用

    近期忙着银联支付接口的对接,银联支付的接口采用的 AIDL 进行通讯.那么我就和大家一起分享 AIDL 是如何使用的? AIDL 的全称为 Android Interface Definition L ...

  3. android的银联支付,android 银联支付Demo

    [实例简介]/* * *使用Upomp_Pay_Demo关联说明 */ 1.需将PluginLink.java和com_unionpay_upomp_lthj_lib.jar放入到Upomp_Pay_ ...

  4. android 银联支付必须要nfc吗,手机没有NFC功能,可以使用银联云闪付功能吗?

    理论上来讲得有nfc功能才可以使用银联云闪付功能. NFC主要有以下几类: 1.接触通过,如门禁管理.车票和门票等,用户将储存着票证或门控密码的设备靠近读卡器即可,也可用于物流管理. 2.接触支付,如 ...

  5. 安卓android银联支付Unionpay

    转: 详情见以下链接 http://www.360doc.com/content/14/0909/17/9200790_408206083.shtml

  6. Android app支付-银联支付

    前段时间集成了银联.微信和支付宝,感觉银联和微信的集成过程都是比较容易的,只有支付宝在和后台进行加签的过程中容易出错,导致支付失败.自己总结了集成的过程,希望可以分享和记录下来. 一.银联的demo和 ...

  7. android 银联插件,Android版添加phonegap-银联支付插件教程

    1.下载插件包,将libs文件里面的文件拷贝到你的项目对应目录.并引入到你的路径里面. 2.拷贝res里的文件 至您工程的res/drawable目录下. 3.拷贝Pgylpay.java到你的项目目 ...

  8. android移动支付——银联支付

    前言 这里开篇讲解一系列的Android相关的移动支付.移动支付也称为手机支付,用户使用移动的设备,完成对所购买商品或者服务的支付功能.包括远程支付(网上支付.短信支付),近场支付(刷卡.滴卡.pos ...

  9. Android集成银联支付

    银联支付是继支付宝于微信支付之后的第三大支付方式,如果你已经看过前两篇博文,学会支付宝和微信的支付集成方法,接下来,银联支付就很简单了. 支付宝支付流程博文 http://blog.csdn.net/ ...

  10. Android开发之——银联支付初探

    前言 现在网上支付用的比较多的是微信支付,支付宝支付和银联支付.关于微信和支付宝支付前面已经讲过了,本文主要介绍关于银联支付集成的过程和步骤. 银联支付 资源查找 集成文档 点击上面的集成文档,打开如 ...

最新文章

  1. python listbox输入内容自动换行_python中的图像界面设计(二)
  2. 怎样写C代码——《狂人C》习题解答1(第一章习题7)
  3. PHP 简单计算器代码实现
  4. error connection reset by peer 104
  5. php如何使用正则表达式,php如何使用正则表达式实现替换
  6. /dev/mapper/centos-root 100% 虚拟机硬盘空间占满
  7. HSV颜色识别demo
  8. 建立城市安防系统 打造更安全智慧城市
  9. MBSE基于模型的系统工程
  10. 寒假每日一题——贝茜放慢脚步
  11. 啸叫抑制(howling suppression)
  12. 基于jeecgboot的flowable流程增加节点表单的支持(二)
  13. hazelcast 搭建_使用HazelCast实现Spring Config Server配置
  14. 又是暴力裁员?腾讯 7 年老员工一朝被裁,官方回应了...
  15. mysql 轨迹数据存储_基于Tablestore实现海量运动轨迹数据存储
  16. MySQLamp;amp;JDBC回顾——MySQL
  17. java ocx调用_Java调用ocx控件以及dll
  18. 【ELM预测】探路者算法优化极限学习机预测(含前后对比)【含Matlab源码 2204期】
  19. Android apps浅析01-Amazed:一个简单但令人上瘾的加速度为基础的大理石指导游戏。...
  20. 最全面的Android工程师知识图谱推荐

热门文章

  1. Fault tolerant heap shim applied to current process. This is usually due to previous crashes
  2. 用旧手机搭建服务器并实现内网穿透不需要root(本人亲测很多次最简单的一个)
  3. 激活win10企业长期服务版
  4. html中td是什么模块,html td什么意思
  5. 30 行代码实现蚂蚁森林自动收能量
  6. UVa 1586 Molar mass(模拟)
  7. mysql干嘛的_mysql和sql是干什么的?
  8. write和read返回值详解
  9. 微软MSBI零基础从数据仓库到商业智能实战(SSIS SSAS SSRS)
  10. 升华网第三次培训心得