实用!!!!springBoot加入微信扫码支付功能,有一说一还是挺有意思的
基于springboot微服务加入微信支付的功能
在线微信支付开发文档:
https://pay.weixin.qq.com/wiki/doc/api/index.html
native扫码支付方式:

统一下单api
1.新建工程 导入pom依赖 注意:这个包是从微信开发网站下载的
<dependency>
<groupId>com.github.wxpay</groupId>
<artifactId>wxpay-sdk</artifactId>
<version>3.0.9</version>
</dependency>
2.创建com.github.wxpay.sdk包,包下创建MyConfig类 ,继承自抽象类WXPayConfig
这个包名结构不能改变
com.github.wxpay.sdk
public class MyConfig extends WXPayConfig {
String getAppID() {
return "wx8397f8696b538317";
}
String getMchID() {
return "1473426802";
}
String getKey() {
return "T6m9iK73b0kn9g5v426MKfHQH7X8rKwb";
}
InputStream getCertStream() {
return null;
}
IWXPayDomain getWXPayDomain() {
return new IWXPayDomain() {
public void report(String domain, long elapsedTimeMillis, Exception ex) {
}
public DomainInfo getDomain(WXPayConfig config) {
return new DomainInfo("api.mch.weixin.qq.com",true);
}
};
}
}
appid:微信公众账号或开放平台APP的唯一标识 wx8397f8696b538317
mch_id:商户号 1473426802
key:商户密钥 T6m9iK73b0kn9g5v426MKfHQH7X8rKwb
这个是对应支付下单配置类的3个方法的值,测试的时候可以用一下,开发的时候是需要公司去微信官网申请的
3.创建测试类,编写代码
MyConfig config=new MyConfig();
WXPay wxPay=new WXPay( config );
Map<String,String> map=new HashMap();
map.put("body","亲亲商城");//商品描述
map.put("out_trade_no","55555211");//订单号
map.put("total_fee","1");//金额
map.put("spbill_create_ip","127.0.0.1");//终端IP
map.put("notify_url","http://www.baidu.com");//回调地址,这个回调地址到时候要写自己公司注册的地址
map.put("trade_type","NATIVE");//交易类型
Map<String, String> result = wxPay.unifiedOrder( map );
System.out.println(result);
map中需要提供的参数 key值要对应起来


必填的都是需要添加到map中的数据 (公众账号ID,商户号在config配置类中已经填写了,另外随机字符串和签名会默认生成这个两个也不需要填写)
执行后返回结果 就是一个JSON字符串
{nonce_str=fvMGIlLauUPNCtws,
code_url=weixin://wxpay/bizpayurl?pr=I5sd2rc,
appid=wx8397f8696b538317,
sign=48B2938F70EDADC9CC235249BC085FD1D83456F67C46601FFD23B5AFBDA502D0,
trade_type=NATIVE, return_msg=OK, result_code=SUCCESS,
mch_id=1473426802, return_code=SUCCESS, prepay_id=wx17193859685440d561c4cef01259098400}
到这里下单的功能就实现了,下面是怎么样生成二维码了:
其中的code_url就是我们的支付URl ,我们可以根据这个URl 生成支付二维码
QRCode.js 是一个用于生成二维码的 JavaScript 库。主要是通过获取 DOM 的标签,再通过 HTML5 Canvas 绘制而成,不依赖任何库。支持该库的浏览器有:IE6~10, Chrome, Firefox, Safari, Opera, Mobile Safari, Android, Windows Mobile, 等
我们看一下静态原型wxpay.html中的代码,显示二维码的地方放置<div id='qrcode'></div> ,然后编写脚本
把下面的Javas'c'rpit脚本导入到HTML页面就行了
<script src="js/plugins/qrcode.min.js" ></script>
<script type="text/javascript">
let qrcode = new QRCode(document.getElementById("qrcode"), {
width : 200,
height : 200
});
qrcode.makeCode("weixin://wxpay/bizpayurl?pr=Y3hDTZy");//这里的值是动态生成的,测试时候可以直接把获取到的code_url值复制到这里一样的看到效果
</script>
注意要有这个qrcode.js这个文件库哦
开发中我们通常是把 code_url 的值通过thymeleaf来传递到HTML页面去的,来动态的生成要支付的二维码
实用!!!!springBoot加入微信扫码支付功能,有一说一还是挺有意思的的更多相关文章
- 微信扫码支付功能详细教程————Java
前言 首先声明 我并非原创 原创是 http://blog.csdn.net/wangqiuyun/article/details/51241064 我只是在前辈的基础 加以解释说明 还有自己的一些 ...
- 微信扫码支付springboot版本
发布时间:2018-11-06 技术:springboot+freemarker 概述 该项目是一个采用springboot构建的web项目,主要实现了微信扫码支付功能.包含最基本的创建订单, ...
- 【移动支付】.NET微信扫码支付接入(模式二-NATIVE)
一.前言 经过两三天的琢磨总算完成了微信扫码支付功能,不得不感叹几句: 微信提供的DEMO不错,直接复制粘贴就可以跑起来了: 微信的配置平台我真是服了.公众平台.商户平台.开放平台,一个平 ...
- ASP.NET Core Web 支付功能接入 微信-扫码支付篇
这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入微信-扫码支付及异步通知功能. 开发环境:Win 10 x64.VS2017 15.6.4..NET Core SDK ...
- 【转载】ASP.NET Core Web 支付功能接入 微信-扫码支付篇
转自:http://www.cnblogs.com/essenroc/p/8630730.html 这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入微信-扫码支付及异步 ...
- JAVA微信扫码支付模式二功能实现完整例子
概述 本例子实现微信扫码支付模式二的支付功能,应用场景是,web网站微信扫码支付.实现从点击付费按钮.到弹出二维码.到用户用手机微信扫码支付.到手机上用户付费成功.web网页再自动调整到支付成功后的页 ...
- ASP.NET Core Web 支付功能接入 微信-扫码支付篇(转)
原文 https://www.cnblogs.com/essenroc/p/8630730.html // 随着版本更迭,新版本可能无法完全适用,请参考仓库内的示例. 这篇文章将介绍ASP.NET C ...
- Net MVC微信扫码支付
微信扫码支付+Asp.Net MVC 这里的扫码支付指的是PC网站上面使用微信支付,也就是官方的模式二,网站是Asp.net MVC,整理如下. 一.准备工作 使用的微信API中的统一下单方法,关键的 ...
- 微信公众号支付|微信H5支付|微信扫码支付|小程序支付|APP微信支付解决方案总结
最近负责的一些项目开发,都用到了微信支付(微信公众号支付.微信H5支付.微信扫码支付.APP微信支付).在开发的过程中,在调试支付的过程中,或多或少都遇到了一些问题,今天总结下,分享,留存. 先说注意 ...
- C#版微信公众号支付|微信H5支付|微信扫码支付问题汇总及解决方案总结
最近负责的一些项目开发,都用到了微信支付(微信公众号支付.微信H5支付.微信扫码支付).在开发的过程中,在调试支付的过程中,或多或少都遇到了一些问题,今天总结下,分享,留存.代码在文章结尾处,有需要的 ...
随机推荐
- java 校验同一张表某个字段值不能重复
例如 一个实体 user 校验name名字不能重复 思路 1.新增:时比较容易做 直接根据传来的参数 查询实体如果不为空 则查询到了重复值 2.修改:修改需要考虑较多 2.1.既然是不重复 必然是必 ...
- 论文解读:Cellpose在细胞分割领域的应用
细胞分割与Cellpose 基于显微镜图像的单细胞分析是目前生命科学领域的前沿和热点问题.细胞分割能对成像图片进行批量处理,将其形态.位置.RNA 表达和蛋白质表达等信息赋予识别出的每个细胞.比如: ...
- spark-shell 启动设置动态分区,snappy压缩、parquet存储以及备份
1.spark-shell 启动设置动态分区 --executor-memory 16G \ --total-executor-cores 10 \ --executor-cores 10 \ --c ...
- UML 哲学之道——概况篇[二]
前言 简单介绍一下uml的概况篇. 正文 UML 概述: url 包括: 事物 关系 图 扩展机制 事物: 结构: 类.接口.构件.节点等等 行为:交互.状态等等 分组:包.子系统等等 注释:注释 关 ...
- 重新整理数据结构与算法(c#)—— 算法套路二分法[二十四]
前言 前面写过二分法使用的是递归手法,然后该节才有不递归的方式执行. 二分法的时间复杂度为log(2)n.空间复杂度为:1. 正文 代码: static void Main(string[] args ...
- 美团二面:如何保证Redis与Mysql双写一致性?连续两个面试问到了!
引言 Redis作为一款高效的内存数据存储系统,凭借其优异的读写性能和丰富的数据结构支持,被广泛应用于缓存层以提升整个系统的响应速度和吞吐量.尤其是在与关系型数据库(如MySQL.PostgreSQL ...
- c#程序员必学清单
必读书目:1. "Effective C#: 50 Specific Ways to Improve Your C#" by Bill Wagner2. "CLR via ...
- kubelet 原理分析
Reference https://atbug.com/kubelet-source-code-analysis/ kubelet 简介 kubernetes 分为控制面和数据面,kubelet 就是 ...
- 如何可视化编写和编排你的 K8s 任务
简介: 通过任务调度 SchedulerX 来调度你的 K8s 任务,能够降低学习成本,加快开发效率,让你的任务失败可报警,出问题可排查,打造云原生可观测体系下的可视化 K8s 任务. 作者:学仁 ...
- GtkSharp 设置窗口背景透明
本文告诉大家如何在 GTK Sharp 里面设置窗口背景透明 在 GTK 里面设置窗口背景透明十分简单,只需使用如下代码即可 this.AppPaintable = true; var screen ...
