银联支付Java开发
注:原来来源于: 《 银联支付Java开发 》
银联的demo写的不错,基本上可以直接使用。
首先是对acp_sdk.properties的内容修改,注意这个文件的文件名不能进行修改。
对于文件内的证书路径以及证书对应的密码进行修改。
修改完这个文件后,需要对DemoBase这个类中的frontUrl,backUrl进行修改,这个是银联支付后向服务器通知的前台以及后台地址。
frontUrl主要处理的前台界面展示,backUrl主要处理后台业务逻辑。
注意:这两个地址需要是外网地址,否则将无法收到回调信息。
然后对于Form_6_2_FrontConsume类中的信息进行相应的修改,直接访问服务,会返回给你一段html字符串,把这段html直接传到前台加到页面上。这段代码会自动提交数据,会弹出银联支付的界面。
注意:测试环境下,微信浏览器无法弹出支付界面,需要换生成环境的证书才能正常的弹出支付界面。
支付成功后,银联会向你设置的backUrl发送成功信息,具体接受方法如下:
String encoding = req.getParameter(SDKConstants.param_encoding);
// 获取银联通知服务器发送的后台通知参数
Map<String, String> reqParam = getAllRequestParam(req);
System.out.println("reqParam----->" + reqParam.toString());
LogUtil.printRequestLog(reqParam);
Map<String, String> valideData = null;
if (null != reqParam && !reqParam.isEmpty())
{
Iterator<Entry<String, String>> it = reqParam.entrySet().iterator();
valideData = new HashMap<String, String>(reqParam.size());
while (it.hasNext())
{
Entry<String, String> e = it.next();
String key = (String) e.getKey();
String value = (String) e.getValue();
value = new String(value.getBytes(encoding), encoding);
valideData.put(key, value);
}
}
//重要!验证签名前不要修改reqParam中的键值对的内容,否则会验签不过
if (!AcpService.validate(valideData, encoding))
{
LogUtil.writeLog("验证签名结果[失败].");
//验签失败,需解决验签问题
}
else
{
LogUtil.writeLog("验证签名结果[成功].");
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
public static Map<String, String> getAllRequestParam(final HttpServletRequest request)
{
Map<String, String> res = new HashMap<String, String>();
Enumeration<?> temp = request.getParameterNames();
if (null != temp)
{
while (temp.hasMoreElements())
{
String en = (String) temp.nextElement();
String value = request.getParameter(en);
res.put(en, value);
//在报文上送时,如果字段的值为空,则不上送<下面的处理为在获取所有参数数据时,判断若值为空,则删除这个字段>
//System.out.println("ServletUtil类247行 temp数据的键=="+en+" 值==="+value);
if (null == res.get(en) || "".equals(res.get(en)))
{
res.remove(en);
}
}
}
return res;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
支付成功后,界面会有一个返回商户的按钮,那个按钮返回的界面就是在frontUrl设置。获取回调信息的方法与上面相同,就是在后面需要把界面导向你想要显示的界面,顺便带上返回的参数。
这样就顺利的完成了银联支付的流程。
银联支付Java开发的更多相关文章
- 银联支付java版
注:本文来源于:< 银联支付java版 > 银联支付java版 2016年09月18日 15:55:20 阅读数:2431 首先去银联官网注册测试支付账户 下载对应的demo[ ...
- 微信支付java开发
微信公众平台 (此处只讲pay) 微信商户平台,公众号的后台管理工具,包含公众号的商户信息,公众号支付,扫码支付,刷卡支付 1.商户信息包含商户号,和此公众平台关联的商户号,需登录商户平台设置商户秘钥 ...
- 微信支付与支付宝支付java开发注意事项
说明:这里只涉及到微信支付和淘宝支付 以官网的接口为准,主要关注[网关].[接口].[参数][加密方式][签名][回调] 第一步,了解自己的项目要集成的支付方式 常见的有扫码支付.网页支付.APP支付 ...
- JAVA微信支付接口开发——支付
微信支付接口开发--支付 这几天在做支付服务,系统接入了支付宝.微信.银联三方支付接口.个人感觉支付宝的接口开发较为简单,并且易于测试. 关于数据传输,微信是用xml,所以需要对xml进行解析. 1. ...
- 李洪强iOS开发支付集成之银联支付
iOS开发支付集成之银联支付 银联官网在这里,这里能下载SDK或者是看文档.最新的版本写的简单了很多,看文档一直做下去基本上就没问题了. 首先,SDK在这里下载,里面包含需要的库文件和详细的文档. 银 ...
- iOS开发 支付之银联支付集成
iOS开发之银联支付集成 最近在做支付这一块的东西,就记录下来以便以后参考和各位交流学习,这里是银联支付 银联官网在这里,这里能下载SDK或者是看文档.文档嘛,对银联来说,还是不要看的太仔细的好,以前 ...
- Java 银联支付官网demo测试及项目整合代码
注:原文来源与 < Java 银联支付官网demo测试及项目整合代码 > 银联支付(网关支付B2C) 一.测试官网demo a)下载官网开发包,导入eclipse等待修改(下载的开发包没 ...
- Android集成银联支付,提示java.lang.UnsatisfieldLinkError错误
尽管解决方法很简单,但还是记录一下吧. 最近做银联支付(Android),官方给的demo是eclipse的.按照官方(https://open.unionpay.com/ajweb/product) ...
- Java支付宝PC网站支付功能开发(详细教程)
一.前言 本案例使用的是Java实现的.使用支付宝的沙盒环境示例.发布需要换成正式环境.这里就不作详细说明了 本代码适合用来做参考,不要直接复制去使用. 没有账号的需要去平台注册一个: 登录支付宝开发 ...
随机推荐
- luogu 1314 聪明的质检员
二分答案的边界问题还是要注意 double挨着,int+1-1, 此题用到long long,所以初始化ans要足够大,前缀和优化 依然根据check答案大小左右mid,虽然有s,但是有了+1-1加持 ...
- 关于PHP建立数据库访问类的封装以及操作php单例模式连接数据库封装类
建立数据库访问类的封装 <?php class DBDA { public $host = "localhost"; //服务器地址 public $ui ...
- Mysql 忘记密码
Mysql 忘记密码,跳过密码登陆,在更改密码. Linux 系统: 1.查看平时进程:杀掉mysql进程. kill -TERM mysqld 或者 : ps -ef | grep mysqld | ...
- Coursera, Deep Learning 2, Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization - week1, Course
Train/Dev/Test set Bias/Variance Regularization 有下面一些regularization的方法. L2 regularation drop out da ...
- npm 切换源 nrm
版权声明:欢迎转载,请附加转载来源:一路博客(http://www.16boke.com) 转载 http://blog.csdn.net/wyc_cs/article/details/5155925 ...
- 5.28 js基础 简介
Web前端有三层: HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用户体验) JavaScript历史背景介绍 布 ...
- python - one day
1. python历史. 2008 年出现 python 2.7 与 python 3.0 两个版本,后来 吉多·范罗苏姆 大叔决定停用 python 2.7,但因用户反对,于是决定于 2020 年停 ...
- win7用VMware安装CentOs7搭建Linux环境
1. 首先要安装VMware 安装及破解教程 http://www.cnblogs.com/zhangqian27/p/9088237.html 2. 下载os镜像 CentOS下载地址: 阿里云开源 ...
- java包装类型的坑
开发中有遇到Long类型比较是否相等,比如Long A和Long B判断是否相等,当时习惯性的直接A==B: 自测的话确实么有问题,但是测试那边测试就有问题,当时郁闷了一下然后换成了A.equals( ...
- 安装.src.rpm
.src.rpm在坟墓镜像中能找到,例如6.8 os 的rpm包的.src.rpm格式就存放在http://vault.centos.org/6.8/os/Source/ .src.rpm是源码包,是 ...