java 微信支付 NATIVE + 生成二维码
先去maven 搜索wxpay 依赖
网址:https://mvnrepository.com/search?q=mybatis-plus
(因为是国外网址,有时候进入很慢甚至进不去)
进去的话 搜索wxpay 第一个 就是 选择最新的0 0 3 就是下面这个 添加到pom文件
<dependency><groupId>com.github.wxpay</groupId><artifactId>wxpay-sdk</artifactId><version>0.0.3</version>
</dependency>
这样微信支付的依赖 就导入进来了。
正文(最下面全部代码)
(解释都在代码块里)
第一步 new WXPay
WXPay wxPay = new WXPay();
第二步 调用WXPay里的unifiedOrder 需要往unifiedOrder方法里参数
//向微信平台发送数据
wxPay.unifiedOrder();
第三步 new 个 hashMap 为了给unifiedOrder 制造参数
HashMap<String, String> date = new HashMap<>();date.put("body","薯片" );date.put("out_trade_no",noid );date.put("fee_type","CNY" );date.put("total_fee","9999" );date.put("trade_type","NATIVE" );date.put("notify_url","/wxpay/success" );
调用方法 穿参返回值也是hashmap
Map<String, String> resp = wxPay.unifiedOrder(date);
接着 需要实现wxpay的接口 WXPayConfig
实现后 只改前三个return 改成你的appid 账户号 秘钥
public class MyPayConfig implements WXPayConfig {@Overridepublic String getAppID() {//输入你申请的appidreturn "appid";}@Overridepublic String getMchID() {return "MchID";}@Overridepublic String getKey() {return "秘钥";}@Overridepublic InputStream getCertStream() {return null;}@Overridepublic int getHttpConnectTimeoutMs() {return 0;}@Overridepublic int getHttpReadTimeoutMs() {return 0;}}
第四步 直接在wxpay 里 new 你刚实现的类
WXPay wxPay = new WXPay(new MyPayConfig());
```这样把微信支付所需要的参数 全部用unifiedOrder方法传了过去
@PostMapping("/add")public void add(@Param("noid")String noid) {
// String noid = "1231234561";//微信支付提供对象 //看第三步WXPay wxPay = new WXPay(new MyPayConfig());try {HashMap<String, String> date = new HashMap<>();date.put("body","薯片" );date.put("out_trade_no",noid );date.put("fee_type","CNY" );date.put("total_fee","9999" );date.put("trade_type","NATIVE" );date.put("notify_url","/wxpay/success" );//接受数据 //向微信凭条发送数据Map<String, String> resp = wxPay.unifiedOrder(date);System.out.println(resp);//二维码网址System.out.println(resp.get("code_url"));} catch (Exception e) {e.printStackTrace();}}
接收 resp 里面会有一个code_url 是一个网址
访问接口就出现了 code_url=weixin://wxpay/bizpayurl?pr=RJfmwo4zz
放到二维码生成器
就可以扫码了 二维码违规 就不放了
有了url 接着就是生成二维码
1.导入依赖
<!-- 导入zxing的依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.2.1</version></dependency><dependency><groupId>com.google.zxing</groupId><artifactId>javase</artifactId><version>3.2.1</version></dependency>
2.新建类,封装方法
package com.ruoyi.ydwz.domain.wx;import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Hashtable;public class zxing {public void ewm(String trl) {//二维码宽度int width=300;//二维码高度int height=300;//定义二维码图片格式String format="png";//定义二维码属性Hashtable<EncodeHintType,String> his=new Hashtable<EncodeHintType,String>();//二维码内容的编码格式his.put(EncodeHintType.CHARACTER_SET,"utf-8");//定义二维码边距his.put(EncodeHintType.MARGIN,"1");//创建位矩阵对象并且生成二维码对应的位矩阵对象//BarcodeFormat.QR_CODE 生成图片类型为QRCodeBitMatrix bitMatrix= null;try {bitMatrix = new MultiFormatWriter().encode(trl, BarcodeFormat.QR_CODE,width,height);} catch (WriterException e) {e.printStackTrace();}//二维码生成路径String path="D:\\";//二维码生成名字String name="myBlog.png";Path path2= Paths.get(path,name);//生成二维码try {MatrixToImageWriter.writeToPath(bitMatrix, format, path2);} catch (IOException e) {e.printStackTrace();}System.out.println("二维码生成成功");}}
3.去wx支付调用
支付+二维码 全部代码
package com.ruoyi.ydwz.domain.wx;import com.github.wxpay.sdk.WXPay;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Map;@RequestMapping("/wxpay")
@RestController
public class wxc {@PostMapping("/success")public void success() {}@PostMapping("/add")public void add(@Param("noid")String noid) {
// String noid = "1231234561";WXPay wxPay = new WXPay(new MyPayConfig());try {HashMap<String, String> date = new HashMap<>();date.put("body","薯片" );date.put("out_trade_no",noid );date.put("fee_type","CNY" );date.put("total_fee","9999" );date.put("trade_type","NATIVE" );date.put("notify_url","/wxpay/success" );Map<String, String> resp = wxPay.unifiedOrder(date);System.out.println(resp);System.out.println(resp.get("code_url"));//新建类zxing zxing = new zxing();//掉方法 传入地址 自动生成二维码zxing.ewm(resp.get("code_url"));} catch (Exception e) {e.printStackTrace();}}}
java 微信支付 NATIVE + 生成二维码相关推荐
- 微信支付返回支付链接生成二维码问题
微信支付返回的二维码格式为: weixin://wxpay/bizpayurl?pr= <img id="qrcodestr" src="{wechatUrl}&q ...
- 微信扫码登录,微信公众号生成二维码,关注登录nodejs+vue
微信公众号生成二维码,关注后扫码登录 技术栈为nodejs+vue 有不懂的可以加我微信yizheng369 1.效果 初始: 关注后: 2.源码 此项目为前后端分离项目,前后端代码都在这个仓库里, ...
- java实现后台直接生成二维码图片并直接上传到七牛云上面
java实现后台直接生成二维码图片并直接上传到七牛云上面 需求:后台是直接根据唯一核销码生成图片,然后的话直接上传到七牛云,数据库只是保存地址,一开始也想错了,想成了创建临时文件存储生成的图片再上传到 ...
- java在底图上生成二维码以及文字
java在底图上生成二维码以及文字 1.添加依赖 <dependency><groupId>cn.hutool</groupId><artifactId> ...
- 微信扫码支付与生成二维码
二维码 (1) 容错级别 L级(低) 7%的码字可以被恢复. M级(中) 的码字的15%可以被恢复. Q级(四分)的码字的25%可以被恢复. H级(高) 的码字的30%可以被恢复. (2) 二维码生成 ...
- Java(Spring boot)实现生成二维码
文章目录 一.引入spring boot依赖: 二.工具类代码: 三.调用工具类生成二维码 1.将链接生成二维码图片并保存到指定路径 2.将链接生成二维码直接显示在页面 3.将以get请求传参链接生成 ...
- java 根据指定链接生成二维码
需求: 就是需要把一个报告网址链接生成二维码,然后渲染在报告中,扫描二维码的时候能访问到这个报告,效果就达到了 1.首先提前需要添加的maven依赖 <!-- https://mvnreposi ...
- 微信公众平台生成二维码海报是如何做到的?
实现微信公众号里面点击子菜单生成带有粉丝二维码的海报 关注微信服务号自动生成二维码海报 发送关键词到公众号生成带有粉丝头像昵称的海报二维码 1.从微号帮平台我的公众号 功能管理 2.生成海报二维码 海 ...
- java 简单快速的生成二维码(带图片)
**使用java+zxing 简单快速的生成二维码.** 效果图: 首先需要引入两个jar文件: <dependency><groupId>commons-codec</ ...
- JAVA使用ZPL命令生成二维码
1.将生成二维码的命令放在一个txt文件中 命令如下: ^XA^PMY #开启镜像 ^JMB #设置打印机每毫秒打印点数 ^FO250,175 #设置显示字母位置 ^CF0,60 #设置字体大小 ^F ...
最新文章
- 深入了解volatile
- 一次完整的HTTP事务是怎样一个过程
- c语言冒泡法加逗号,Ubuntu 10.04 LTS 无法添加计算机的问题
- 《C++ Primer Plus》读书笔记之七—内存模型和名称空间
- SQL Server中的MTVF和CE模型变化
- Selenium与Cypress的比较
- 23. 变量、作用域和内存问题
- grub2 引导光盘
- Atitit 命令行执行springboot程序 目录 1.1. 执行spel表达式,调用app main,获取context	1 1.2. 直接在Application main函数内执行	1
- Android开发--MVP demo+Jsoup在线小说阅读器(一)
- 自然辩证法与计算机科学的关系,自然辩证法和科学技术有什么关系
- 力扣随机数randX——透过现象看本质之二元独立随机分布
- 一体化3团队项目记录
- MySQL增删改查及备份恢复
- vue 移动端拨打电话
- 机器学习十大算法之贝叶斯算法
- 运维实操——日志分析系统ELK(中)之logstash采集数据、伪装rsyslog、多行过滤、grok切片
- c++ 取整之ceil、floor、round、fix用法
- 手工清除AUTO病毒
- 图谱实战 | 10 个前沿落地应用案例分享(附下载)
热门文章
- 图形桌面与命令行模式相关切换快捷键
- 【多元统计分析及R语言建模】【详解】因子分析法综合应用(教材P271页表9-4): 1. 计算样本相关系数矩阵R、特征根、特征向量。2. 确定因子的个数,并解释这些因子的含义。计算各因子得分并解释
- 三级等保成标配,互联网医院安全架构报告发布
- spoj COT COT2
- python语音聊天_语音聊天实现
- ORACLE-检查约束(check)
- MySQL基础查询语句练习题
- php随机经纬度,PHP轻松实现附近的人功能,根据IP确定经纬度,根据经纬度计算距离...
- html怎么做左侧广告,网站横幅怎么制作,html横幅广告代码
- 1 遥感图像处理之存储格式BSQ/BIL/BIP