java实现银联商务扫码支付----根据银联商务扫码支付文档

新增加GitHub源码下载地址(下载导入本地即可使用,由于隐私需要,屏蔽了相关密钥、密码之类):https://github.com/wshy0924/UnionPay_Scan/tree/master(老铁别忘记留个星星~感谢!)
一、本文对接银联商务扫码支付文档,文档链接:
https://download.csdn.net/download/weixin_40550118/12113039
本文根据扫码支付文档接口,之前博客中也写过一篇关于银联商务扫码支付的案例,对接的是银联商务的公众号+服务窗支付文档,获取的url支付链接是自己封装之后生成,也可以进行扫码支付。
这篇文档是对接银联商务扫码支付文档,只需做简单的做参数传值,就可以简单的获取支付二维码,与我之前的扫码支付有一点区别:
之前的方式需要选择支付方式,比如支付宝微信,然后生成相对应的支付二维码,而本篇的方式是一码,两个app都可以扫码,由扫码文档可知,是根据先扫码的那一方判断支付,下面是文档中的描述:

直接看代码如下:
1.1 Union_ScanPayContrloloer控制层代码

 /*** a获取一次性二维码* @param request* @param response* @param jsonreq* @return* @throws UnsupportedEncodingException */@RequestMapping(value = "/onceQRCode.do", method = RequestMethod.GET)public Map<String, Object> getOnceQRCode(HttpServletRequest request, HttpServletResponse response,String totalAmount) throws UnsupportedEncodingException {Map<String,Object> resultmap = new HashMap<String,Object>();//Map<String,Object> reqmap = new HashMap<String,Object>();resultmap = scan_unionPay.Scan_UnifiedOrder(totalAmount);return resultmap;}

1.2 Scan_UnionPayimpl

@Service
public class Scan_UnionPayimpl implements Union_ScanPayinf{private final static Logger logger = LoggerFactory.getLogger(UnifiedOrderServiceimpl.class);@Value("${para.mid}")private String mid;@Value("${para.tid}")private String tid;@Value("${para.instMid}")private String instMid;@Value("${para.msgSrc}")private String msgSrc;@Value("${para.msgSrcId}")private String msgSrcId;@Autowiredprivate UnionPayRequest unionpayrequest;/*** 获取支付二维码*/@Overridepublic Map<String, Object> Scan_UnifiedOrder(String totalAmount) throws UnsupportedEncodingException {// TODO Auto-generated method stubMap<String, Object> reqmap = new HashMap<String, Object>(); //请求银联商务mapMap<String, Object> respmap = new HashMap<String, Object>(); //接收银联商务返回mapreqmap.put("mid",this.mid);    //商户号reqmap.put("tid", this.tid);   //终端号reqmap.put("instMid", this.instMid);reqmap.put("msgSrc", this.msgSrc);   //消息来源//reqmap.put("msgId", "UnionPay_F001");  //自定义reqmap.put("msgType", "bills.getQRCode"); //支付类型,前端传入
//报文请求时间String aligetTime = PayUtil.aligetTime();logger.info("end_time = " + aligetTime);reqmap.put("requestTimestamp", aligetTime); //商户订单号//reqmap.put("msgSrcId", this.msgSrcId); //来源编号String orderid = GGitUtil.createOrderID();StringBuffer buff = new StringBuffer(); buff.append(this.msgSrcId);buff.append(orderid);reqmap.put("billNo", buff);reqmap.put("totalAmount",totalAmount); //订单金额reqmap.put("notifyUrl", "http://www.baidu.com"); //支付结果通知地址reqmap.put("returnUrl", "http://www.baidu.com"); //网页跳转地址//获取二维码idString codeid = GGitUtil.createQrCodeId();StringBuffer codebuff = new StringBuffer();codebuff.append(this.msgSrcId);codebuff.append(codeid);reqmap.put("qrCodeId", codebuff);
//生成待签名字符串并进行MD5加密String builderSignStr = "";try {builderSignStr = PayUtil.builderSignStr(reqmap,UnionPayConstants.MD5KEY);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}reqmap.put("sign", builderSignStr);logger.info("reqmap= " + reqmap);String jsonstring = GGitUtil.MapToJson2(reqmap);  //请求map转成jsonlogger.info("发送query post请求消息:" + jsonstring);
//接收银联商务返回maprespmap = unionpayrequest.dopost(UnionPayConstants.queryURL, jsonstring);return respmap;}

1.3测试结果
本次接口对接仅仅是对接接口中生成一次性支付二维码,其中还有固定二维码和半固定二维码生成,只是传递参数的不同,具体的封装见之后的总结,返回的map如下图示,其中billQRCode为二维码链接,前端接收这个链接转为二维码即可,用户扫描二维码进行支付测试。

{"qrCodeId": "3194202001190900110874327","msgType": "bills.getQRCode","msgSrc": "WWW.TEST.COM","errMsg": "查询二维码成功","mid": "898340149000005","billDate": "2020-01-19","tid": "88880001","instMid": "QRPAYDEFAULT","responseTimestamp": "2020-01-19 09:00:19","errCode": "SUCCESS","billNo": "319420200119090011443764","billQRCode": "https://qr-test2.chinaums.com/bills/qrCode.do?id=3194202001190900110874327","sign": "C8A598A6523A516FBA7E908050D279D8","statuscode": "200"
}

java对接银联商务扫码支付(银联商务扫码支付文档)相关推荐

  1. java计算机毕业设计果之芒农场销售系统MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计果之芒农场销售系统MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计果之芒农场销售系统MyBatis+系统+LW文档+源码+调试部署 本源码技术栈: 项目架构 ...

  2. QQ 一键加群、扫二维码加群 - 腾讯官方API文档接入

    QQ 一键加群.扫二维码加群 - 腾讯官方API文档接入 QQ一键加群功能,腾讯API生成链接和二维码等等 获取地址:腾讯官方API文档接口 使用方法:引入对应的链接即可 这里有生成图片.二维码的功效 ...

  3. java计算机毕业设计机械生产企业办公设备管理系统MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计机械生产企业办公设备管理系统MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计机械生产企业办公设备管理系统MyBatis+系统+LW文档+源码+调试部署 本源 ...

  4. java计算机毕业设计计算机课程在线培训学习管理系统MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计计算机课程在线培训学习管理系统MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计计算机课程在线培训学习管理系统MyBatis+系统+LW文档+源码+调试部署 ...

  5. java数字家谱管理系统设计与实现计算机毕业设计MyBatis+系统+LW文档+源码+调试部署

    java数字家谱管理系统设计与实现计算机毕业设计MyBatis+系统+LW文档+源码+调试部署 java数字家谱管理系统设计与实现计算机毕业设计MyBatis+系统+LW文档+源码+调试部署 本源码技 ...

  6. java计算机毕业设计数字家谱管理系统设计与实现MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计数字家谱管理系统设计与实现MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计数字家谱管理系统设计与实现MyBatis+系统+LW文档+源码+调试部署 本源码技 ...

  7. java计算机毕业设计再生产公益管理系统设计与实现MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计再生产公益管理系统设计与实现MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计再生产公益管理系统设计与实现MyBatis+系统+LW文档+源码+调试部署 本源 ...

  8. java计算机毕业设计高校体育器材及场地管理MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计高校体育器材及场地管理MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计高校体育器材及场地管理MyBatis+系统+LW文档+源码+调试部署 本源码技术栈: ...

  9. java计算机毕业设计哈尔滨旅游项目推荐平台演示录像2020MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计哈尔滨旅游项目推荐平台演示录像2020MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计哈尔滨旅游项目推荐平台演示录像2020MyBatis+系统+LW文档+ ...

  10. java计算机毕业设计干洗店订单管理系统设计与实现MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计干洗店订单管理系统设计与实现MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计干洗店订单管理系统设计与实现MyBatis+系统+LW文档+源码+调试部署 本源 ...

最新文章

  1. html中右侧三角形代码,html – 使用CSS边框的三角形和倒三角形
  2. 教你10招最有效防电脑辐射方法
  3. Linux-3.14.12内存管理笔记【kmalloc与kfree实现】【转】
  4. nb-iot模块的at指令_esp-07s模块规格-
  5. Python论做游戏外挂,Python输过谁?
  6. 从零开始用Python搭建超级简单的点击率预估模型
  7. Java Web day01
  8. 66.Systemd 命令
  9. php商城项目开发视频_ThinkPHP开发大型商城项目实战视频_ThinkPHP商城开发案例
  10. 常见端口号服务用途及查看端口
  11. 367个公益宣传PPT模板免费下载网站
  12. INT 10H 中断简介
  13. Python中单线程、多线程和多进程的效率对比实验
  14. 踩坑之路:finish方法执行后居然还有这种操作?
  15. linux Nginx服务的安装及使用
  16. Docker搭建 Nginx+PHP+MySQL 环境并部署WordPress实践
  17. 三星 android 模拟器,三星Galaxy Tab模拟器
  18. 【C语】例如2+22+222+2222+22222此式的和
  19. 光流估计(一) 光流的简介与操作
  20. 论人工智能背后的伦理问题

热门文章

  1. IOS使用信鸽推送收不到消息的问题
  2. 使用Python实现excel项目清单自动生成word文档
  3. windows聚焦 电脑锁屏不显示图片问题
  4. CAN总线协议是什么?CAN总线协议有哪些?
  5. Mp4box的下载、安装和使用
  6. 涉计算机检查记录表,西安电子科技大学保密监督检查记录表.doc
  7. Flink在bilibili的优化与实践
  8. 11 个超火的前端必备在线工具,终于有时间上班摸鱼了
  9. 情迁机器人手机版1.6.9升级说明包含多个重要更新
  10. 开发工作中使用的敏捷开发模式