基于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加入微信扫码支付功能,有一说一还是挺有意思的的更多相关文章

  1. 微信扫码支付功能详细教程————Java

    前言  首先声明 我并非原创 原创是 http://blog.csdn.net/wangqiuyun/article/details/51241064 我只是在前辈的基础 加以解释说明 还有自己的一些 ...

  2. 微信扫码支付springboot版本

    发布时间:2018-11-06   技术:springboot+freemarker   概述 该项目是一个采用springboot构建的web项目,主要实现了微信扫码支付功能.包含最基本的创建订单, ...

  3. 【移动支付】.NET微信扫码支付接入(模式二-NATIVE)

    一.前言       经过两三天的琢磨总算完成了微信扫码支付功能,不得不感叹几句: 微信提供的DEMO不错,直接复制粘贴就可以跑起来了: 微信的配置平台我真是服了.公众平台.商户平台.开放平台,一个平 ...

  4. ASP.NET Core Web 支付功能接入 微信-扫码支付篇

    这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入微信-扫码支付及异步通知功能. 开发环境:Win 10 x64.VS2017 15.6.4..NET Core SDK ...

  5. 【转载】ASP.NET Core Web 支付功能接入 微信-扫码支付篇

    转自:http://www.cnblogs.com/essenroc/p/8630730.html 这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入微信-扫码支付及异步 ...

  6. JAVA微信扫码支付模式二功能实现完整例子

    概述 本例子实现微信扫码支付模式二的支付功能,应用场景是,web网站微信扫码支付.实现从点击付费按钮.到弹出二维码.到用户用手机微信扫码支付.到手机上用户付费成功.web网页再自动调整到支付成功后的页 ...

  7. ASP.NET Core Web 支付功能接入 微信-扫码支付篇(转)

    原文 https://www.cnblogs.com/essenroc/p/8630730.html // 随着版本更迭,新版本可能无法完全适用,请参考仓库内的示例. 这篇文章将介绍ASP.NET C ...

  8. Net MVC微信扫码支付

    微信扫码支付+Asp.Net MVC 这里的扫码支付指的是PC网站上面使用微信支付,也就是官方的模式二,网站是Asp.net MVC,整理如下. 一.准备工作 使用的微信API中的统一下单方法,关键的 ...

  9. 微信公众号支付|微信H5支付|微信扫码支付|小程序支付|APP微信支付解决方案总结

    最近负责的一些项目开发,都用到了微信支付(微信公众号支付.微信H5支付.微信扫码支付.APP微信支付).在开发的过程中,在调试支付的过程中,或多或少都遇到了一些问题,今天总结下,分享,留存. 先说注意 ...

  10. C#版微信公众号支付|微信H5支付|微信扫码支付问题汇总及解决方案总结

    最近负责的一些项目开发,都用到了微信支付(微信公众号支付.微信H5支付.微信扫码支付).在开发的过程中,在调试支付的过程中,或多或少都遇到了一些问题,今天总结下,分享,留存.代码在文章结尾处,有需要的 ...

随机推荐

  1. 医疗BI系统如何使医疗行业完成精细化管理转型?

    不久前在北京召开的全国医疗管理工作会议,确定了今年的医疗管理工作重点.会议强调,推动医疗管理改革工作的过程中要对形势.规律准确把握,积极应对可能面临的挑战,以"三个转变.三个提高" ...

  2. 阿里开源的32B大模型到底强在哪里?

    阿里巴巴最近开源了一个320亿参数的大语言模型Qwen1.5-32B,网上都说很强很强,那么它到底强在哪里呢? 更高的性价比 Qwen1.5-32B中的B是billion的意思,也就是10亿,32B就 ...

  3. redis 简单整理——慢查询[八]

    前言 简单整理一下redis的慢查询. 正文 什么是慢查询呢? 一般存储系统就是系统在命令执行前后计算每条命令的执行时间,当超出预设阀值,就将这条命令的相关信息记录下来. 但是有人可能没有看到慢查询日 ...

  4. 简单介绍 Vue 3.0 项目创建

    一.前期转杯 确保电脑上已安装 node.js. 可通过命令 npm --version进行查询,如果展示了版本号,则说明已安装,若提示 npm 不是有内部或外部命令,也不是可运行的程序,则说明未安装 ...

  5. 手写一个Mybatis框架

    第一:Mybatis框架介绍 最近看了一篇关于Mybatis的文章,发现MyBatis框架的核心功能其实不难,无非就是动态代理和jdbc的操作,难的是写出可扩展,高聚合,低耦合的规范的代码. 本文手写 ...

  6. 6980. 【2021.02.03冬令营模拟】你的世界(world) Another Solution

    Problem Description Input 从文件 world.in 中读入数据. Output 输出到文件 world.out 中. 输出共 T 行,第 i 行表示第 i 组测试数据的答案, ...

  7. Kubernetes 部署集群1.28.2版本(无坑)

    初步搭建一个一个主节点和两个从节点Kubernetes 1.28.2 集群.先准备好机器 | host | hostname | os | role | hardware | | --- | --- ...

  8. 力扣627(MySQL)-变更性别(简单)

    题目: Salary 表: 请你编写一个 SQL 查询来交换所有的 'f' 和 'm' (即,将所有 'f' 变为 'm' ,反之亦然),仅使用 单个 update 语句 ,且不产生中间临时表. 注意 ...

  9. HarmonyOS NEXT应用开发之多层嵌套类对象监听

    介绍 本示例介绍使用@Observed装饰器和@ObjectLink装饰器来实现多层嵌套类对象属性变化的监听. 效果图预览 使用说明 加载完成后显示商品列表,点击刷新按钮可以刷新商品图片和价格. 实现 ...

  10. 深度解析|基于 eBPF 的 Kubernetes 一站式可观测性系统

    ​简介:阿里云 Kubernetes 可观测性是一套针对 Kubernetes 集群开发的一站式可观测性产品.基于 Kubernetes 集群下的指标.应用链路.日志和事件,阿里云 Kubernete ...