微信支付

上一篇文章介绍了支付宝支付的介入,今天来填坑,说一下微信支付的具体方法。
微信支付我用的是扫码支付,具体开通方法就不赘述,具体可以看官方文档,我用的是模式二,具体流程官方说的很清楚,很遗憾的是我没有找到官方的java版扫码支付的demo,因为时间紧任务重,就没有自己一点点研究,看了很多博客和资料,最后参考了一个博客文章,连接是:http://blog.csdn.net/u010449283/article/details/52195117,这位大神已经遇到了很多坑,给了很多解决方案,省了我很多事,在这我主要说说我遇到的坑和解决办法。
###微信回调
参考上面的博客我们可以得到微信扫码支付的二维码,可以向微信支付了,但是支付成功后的回调我们返给微信时费了不少时间,因为和支付宝不同的是,微信支付用的xml进行传参,所以在支付成功后要给微信返回xml的返回结果。

    /*** 微信支付订单* @return* @throws Exception */@ResponseBody@RequestMapping(value = "pay/wxPayOrder", method = RequestMethod.POST, produces = "application/xml")public String wxPayOrder(HttpServletRequest request,HttpServletResponse response) throws Exception {LOGGER.info("微信支付订单");。。。//处理支付逻辑。。。
//支付成功
return "<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>";//支付失败
return "<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[NO]]></return_msg></xml>";

###支付成功页面跳转
由于微信支付只有异步通知没有同步通知,所以页面跳转需要用我们自己去跳转,我用的方法时js轮训查询订单支付情况,当订单支付后进行页面跳转,直接上代码

<script>$(function(){getWeixinImage();});var num = 45;var timer1;//检查订单状态var timer2;//超时提醒function weixinImageTimeout(){num = num-1;if (1 <= num) {$("#num").text(num);} else if (1 > num){$('.sytTable_p').html('二维码已过期,<a href="javascript:getWeixinImage();"><span>刷新</span></a>页面重新获取二维码。');$("#weixinImageURL").attr("src","${staticPath }/static/images/timeout.png");//clearInterval(timer1);clearInterval(timer2);}}function getWeixinImage(){num=45;$("#weixinImageURL").attr("src","createQRCode?orderNo="+'${orderNo}');$('.sytTable_p').html('距离二维码过期还剩<span id="num">45</span>秒,过期后请刷新页面重新获取二维码。');timer1 = setInterval(function(){queryOrderState('${orderNo}');}, 3000);//设置3秒循环查询// 二维码超时提醒timer2 = setInterval(weixinImageTimeout, 1000);  }function queryOrderState(orderNo){$.ajax({type: "POST",url: "wxCheckOrderState",data: {orderNo:orderNo},dataType: "json",/* timeout: 4000,async:false, */success: function(result) {if(result.obj==1){//直接跳到成功页window.location.href="pay/payStatus?orderNo="+orderNo;}}});}  </script><!--收银台-->
<div class="sytCon"><div class="syt_div"><p>请您及时付款,以便订单尽快处理!订单号:${orderNo}</p><h3>应付金额:<span>${fee}</span>元</h3></div><table width="1000" class="sytTable"><tr><td class="sytTable_tit">微信支付</td><td colspan="2" class="sytTable_p">距离二维码过期还剩<span id="num">45</span>秒,过期后请刷新页面重新获取二维码。</td><!-- <a href="javascript:getWeixinImage();">获取失败 点击重新获取二维码  </a> --></tr><tr><td>&nbsp;</td><td width="294"><span class="sytTable_ewm"><img id="weixinImageURL" src="${staticPath }/static/images/loading.gif" /></span></td><!-- loading.gif --><td rowspan="2" class="sytTable_img"></td></tr><tr><td>&nbsp;</td><td><img src="${staticPath }/static/images/syt_ico.gif" /></td></tr><tr><!-- <td colspan="3" class="sytTable_link"><a href="#">选择其它支付方式</a></td> --></tr></table>
</div>

效果图为

因为微信支付链接过期是时间2小时,我自己设置的是45秒,过了45秒之后换一个二维码,具体页面参照的是京东的微信支付页面。
由于最近比较忙,只是简单的记录了一下接入方式,如果有问题可以加qq454578193进行交流学习,也欢迎指正我的错误或提出更好的解决方案,谢谢。


由于个人原因,写完本文就很少上csdn,没想到这么多同学留言要源码,十分惶恐,十分内疚,恐怕是误导和耽误了很多同学,本人亦是讨厌留文不留码的行为,现在将源码献上,不过已经过了4年,支付功能已经改版多次,此源码仅供参考,更多的还是要看官方demo。
下载地址:https://download.csdn.net/download/qukaiwei/12091787

java版+支付宝支付和微信支付(二)(含源码)相关推荐

  1. Java版智慧社区商业级别项目(附源码)

    介绍 HC小区物业管理系统是由java110团队于2017年4月份发起的前后端分离.分布式架构开源项目,有HC小区管理系统后端,HC小区管理系统前端,HC小区管理系统业主手机版和HC小区管理系统物业手 ...

  2. Java+SSM在线商城系统电商购物系统(含源码+论文+答辩PPT等)

    项目功能简介: 该项目采用的技术实现如下 后台框架:Spring.SpringMVC.MyBatis UI界面:BootStrap.jQuery .JSP 数据库:MySQL 系统分为前台订票和后台管 ...

  3. Java基于Redis实现“附近的人”(含源码下载)

    "附近的人"在社交类APP已成为标配的功能,Low一点的实现方式可以把坐标存至关系型数据库,通过计算的坐标点距离实现,这种计算可行但计算速度远不及内存操作级别的NoSql数据库. ...

  4. Java银行柜员业务绩效考核系统(含源码+论文+答辩PPT等)

    该项目采用技术JSP.Servlet.jdbc.Tomcat服务器.MySQL数据库 ,项目含有源码.论文.配套开发软件.软件安装教程.项目发布教程 项目功能:业务绩效考核系统主要目的是使绩效考核信息 ...

  5. Java医院分诊挂号管理系统SSH医疗住院(含源码+论文+答辩PPT等)

    该项目采用技术JSP.SpringMVC.Spring,Hibernate,Tomcat服务器.MySQL数据库 ,项目含有源码.论文.配套开发软件.软件安装教程.项目发布教程 分诊管理主要实现患者信 ...

  6. Java+JSP政府机关公文文档收发管理系统(含源码+论文+答辩PPT等)

    该项目含有源码.论文等资料.配套开发软件.软件安装教程.项目发布教程等 使用技术: 前端使用技术:JSP,HTML5,CSS3.JavaScript等 后台使用技术:Servlet.Jdbc等 数据库 ...

  7. Java在线人才招聘系统求职兼职应聘(含源码+论文+答辩PPT等)

    项目功能简介: 该项目采用技术JSP.Servlet.jdbc.Tomcat服务器.MySQL数据库 ,项目含有源码.论文.配套开发软件.软件安装教程.项目发布教程 本系统的目的旨在为企业和求职者提供 ...

  8. Java+SSM流浪猫狗救助领养网站(含源码+论文+答辩PPT等)

    项目功能简介: 该项目采用技术: 后端采用SSM框架 前端采用了html+css+bootstrap框架 MySQL数据库+Tomcat服务器,项目含有源码.文档.配套开发软件.软件安装教程.项目发布 ...

  9. 一套免费Java开源农业物联网平台Version:3.0.1含源码

    一套免费Java开源农业平台Version:3.0.1含源码 体验地址, V3 star star : 点我访问 体验地址, V2 star star : 点我访问 (没有广告)! 一.简介 一套免费 ...

  10. 微信支付java版v2.0_刷卡支付-翟东平-专题视频课程

    微信支付java版v2.0_刷卡支付-1814人已学习 课程介绍         微信支付系列课程将讲解"刷卡支付"."扫码支付"."公众号支付&qu ...

最新文章

  1. C#事件的发送方和接收方(订阅方)
  2. 4岁的儿子还不会写红黑树,我该怎么办?
  3. 本地计算机上的 postgresql 服务启动后停止解决方法
  4. jvm 崩溃日志设置_JVM致命错误日志(hs_err_pid.log)分析(转载)
  5. 余弦相似度和欧氏距离_欧氏距离和余弦相似度
  6. (软件工程复习核心重点)第五章详细设计-第五节:程序复杂度的定量度量
  7. ios. GCD 倒计时时间
  8. Linux上监控tomcat down掉后自动重启tomcat
  9. 浏览器中跨域创建cookie的问题
  10. python使用系统命令连接数据库_windows下命令行方式完成MySQL配置及Python连接数据库...
  11. Atitit refact art 重构的艺术 目录 1. Concept 1 1.1. Bp 1 2. Prob 2 3. Tool 2 1.Concept 1. legacy code遗留代
  12. java getname threads_Java8并发教程:Threads和Executors
  13. can't resolve symbol 'R' ...
  14. UReport2报表序号展示
  15. SPSS聚类分析——一个案例演示聚类分析全过程
  16. HTTPS网络流量分析方法简介
  17. Hybrid Blockchain Database Systems: Design and Performance(VLDB‘2022)
  18. 陶哲轩实分析 命题7.2.9 绝对收敛判别法
  19. SSM+校园社团平台 毕业设计-附源码251554
  20. js replace 与replaceall实例用法

热门文章

  1. 读书寄语:泥泞的路上才有脚印
  2. win11时钟没有秒解决方法
  3. matplotlib绘制线性回归y=kx+b参数的损失函数等高线图
  4. 轻笔记显示无法连接到服务器,轻笔记:支持群组的跨平台笔记应用 (1)PC客户端...
  5. parallels恢复linux密码,重置Parallels虚拟机windows密码
  6. 查询网址 连接虚拟机,vi编辑开启ens33网络
  7. 李航 统计学习方法 第2章 感知机
  8. Android各种问题解决
  9. Tkinter之Scrollbar篇
  10. 人生成功的六匹马(转自喷嚏网的一篇品书)