移动App后台Java开发银联支付后台接口

本文介绍如何使用Java后台开发银联支付接口,包括登录银联开放平台、下载技术文档和Demo,理解支付流程,配置和运行Demo,获取tn并返回给客户端,设置回调地址以及处理交易成功的回调逻辑。重点在于理解和配置银联提供的SDK以及处理tn的传递和验证。
摘要由CSDN通过智能技术生成

由于公司App开发的支付需求,需要后台用Java来完成银联支付接入接口。

首先你要先进入银联开发登录地址open.unionpay.com


找到手机控件支付模块,完成相应的入网步骤

这里写图片描述


准备工作做完之后银联会对你发放相应的技术文档

银联接入的相关文档

这里由于银联所给的证书信息只有14天,所以要尽快下载,并且只能下载一次。
这里写图片描述

下载手机控件Demo就可以开始了,这里面IOS版本的和安卓版本的任意一个都可以,都有我们需要的后台开发样例
这里写图片描述

将下载下来的Demo仔细阅读开发联调步骤向导中的
三、后台开发步骤
1. 打开后台开发包,找到对应语言\示例代码文件夹,看下readme.txt,按步骤部署、修改配置文件等。
2. 其中Form_6_2_AppConsume的接口可获取tn,请跟客户端开发确定一下后台和app间传递tn的方式,最简单的方法就是直接在页面打印tn,不过部分语言直接仅打印tn的时候会带换行符,建议手机开发在收到tn的时候trim一下。
3. 后续参考readme完成。
(此时已经有了大体思路知道该怎么做了,就是通过下面的类得到 tn 返还给Android或者IOS前台人员,剩下的就是他们根据相应下载的控件来调取银联支付接口的事情了,是不是so easy)

这里写图片描述

我们首先先来运行一下Demo,在脑海中首先形成一个流程的概念
工程运行之后访问http://localhost:8080/ACPSample_AppServer/
输入钱数,点击消费。

这里写图片描述

会返回给我们一个报文,这里面有你的请求信息以及应答信息
在这里我们可以清楚的看到有个神奇的tn
这就是他们要的

这里写图片描述

找到Demo中的这个类,不得不说银联很是牛逼,方便大家接入直接用servlet来写

这里写图片描述

这里需要注意的一点是他在加载servlet容器时注释的SDKConfig加载配置文件的代码

@Override
    public void init(ServletConfig config) throws ServletException {
        /**
         * 请求银联接入地址,获取证书文件,证书路径等相关参数初始化到SDKConfig类中
         * 在java main 方式运行时必须每次都执行加载
         * 如果是在web应用开发里,这个方法可使用监听的方式写入缓存,无须在这出现
         */
        //这里已经将加载属性文件的方法挪到了web/AutoLoadServlet.java中
        //SDKConfig.getConfig().loadPropertiesFromSrc(); //从classpath加载acp_sdk.properties文件
        super.init();
    }

由于他在web.xml中配置了autoLoadServlet在项目一起动的时候就运行此servlet,会自动执行被挪到web/AutoLoadServlet.java中的加载配置文件信息,所以在自己使用调用的时候不要忘记加载配置文件相关信息。

<servlet>
    <servlet-name>autoLoadServlet</servlet-name>
    <servlet-class>web.AutoLoadServlet</servlet-class>
    <load-on-startup>0</load-on-startup>
  </servlet>

下面就可以进行接入了,首先现将Demo中给的银联接入所需要的工具类导入自己的工程,否则复制下面的代码会报错。
这里写图片描述

在你需要接入支付的业务处理层中加入如下代码。通过此段程序就可以将tn返给前台,这里我用的是json格式返回的。大家可以采用别种方式。

//加载配置文件
SDKConfig.getConfig().loadPropertiesFromSrc();// 从classpath加载acp_sdk.properties文件
//银联接入 要传入的参数
String referenceNumber = orderInfo.getOrder_number();//这里的订单id是根据自己的业务需求需要自行设置的         
 // 一分钱
String amount = "1";

Map<String, String> contentData = new HashMap<String, String>();

/***银联全渠道系统,产品参数,除了encoding自行选择外其
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值