刚接触了下银联支付,在网上搜还是看官方文档银联支付都不是很清晰,所以自己总结一篇,希望可以帮助大家快速集成。
一.进入下载官网,选择下载手机控件支付demo:
https://open.unionpay.com/ajweb/help/file/techFile?productId=3
二.直接找到demo中的三个类:
这里不得不吐槽下银联支付的demo了,不像支付宝那样的简单明了调一个方法改一些参数,银联的demo能用到的地方,需要自己手动复制到自己的代码中去。或者自己封装一下。(其中的jar包,.so文件这些就不说,直接复制到自己项目里面 ,特别注意,.so文件要放在src/main 目录下,和java文件并行。还有就是把用到的权限复制到自己项目中)
三.简单说下手机控件银联支付的流程:
概括一下就是,app这边将购买的商品信息提交给app后台,app后台接收到购买信息之后,将信息提交给银联后台,银联接收到支付信息给app后台返回一个交易流水号(也就是app需要的tn号,app后台将这个交易流水号返回给app,app拿到的这个订单流水号为21位纯数字号,为app调用银联所需的tn号)
四.看下这三个类:
这个demo不像支付宝的demo,这个demo,没有什么工具类固定类之类的,直接看BaseActivity 这个类。
这个类里面有注释,前面的不用看了,直接按照注释给的流程走:
步骤一看图,需要注意的,在用银联demo给的tn,和测试账号的时候,用01测试环境,在真正和后台交互的时候要换成00开发环境,不然报错。
demo中的步骤一,我们可以忽略掉,因为这个步骤一是在请求一个银联给的接口,只是用来获取tn值。(咱们上面第三部已经获取了tn值,所以直接跳过步骤一即可)
下面看步骤二
步骤二才是调用银联支付插件的重要地方,看demo,调了一个
doStartUnionPayPlugin(this, tn, mMode);
方法(上下文,tn值,开发环境)。tn值就是上面第三后台给的tn,mMode看第一步骤,自己改一下就行了,00开发环境,01测试环境。但是要注意,这个只是个回调接口方法。真正有用的其实在
JARActivity 中的
UPPayAssistEx.startPay(activity, null, null, tn, mode);
开启调用银联支付。
下面看步骤三
步骤三就是调用银联支付后,返回app的时候用了,看返回结果传,成功,失败,或者是什么返回。
完成以上的,银联控件支付基本就结束了。
但是要特别注意,在第三步骤上:
demo在返回结果上,进行了延签,我们直接把延签过程全部删除,不需要延签。经过延签的话,因为延签不通过,所以每次都是返回失败。
开发路漫漫,每天进步一点点。
看的有不明白的可以回帖,荣幸和各位大神一同探讨~