springboot 微信小程序支付回调
首先我们需要到微信后台配置回调的域名信息 必须是备案通过了的然后在springboot里面放行回调地址
/*** 支付回调通知** @param request 请求参数*/ @RequestMapping("/notify") public void wxNotify(HttpServletRequest request) {orderService.wxNotify(request); }
@Override public void wxNotify(HttpServletRequest request) {log.info("支付回调");// 使用requestBody 错误,顺序不一致String data = wxPayManager.readData(request);JSONObject jsonObject = JSONObject.parseObject(data);// 获取微信签名String sign = request.getHeader("Wechatpay-Signature");// 获取时间戳String timestamp = request.getHeader("Wechatpay-Timestamp");// 获取证书序列号String serial = request.getHeader("Wechatpay-Serial");// 获取加密数据JSONObject resource = jsonObject.getJSONObject("resource");// 获取密文String ciphertext = resource.getString("ciphertext");// 附加数据String associatedData = resource.getString("associated_data");// 随机字符串String nonce = request.getHeader("Wechatpay-Nonce");// 验证微信签名Boolean valid = wxPayManager.validSign(timestamp, nonce, data, sign, serial);if (valid) {String nonce2 = resource.getString("nonce");String decrypt = wxPayManager.decryptToString(associatedData, nonce2, ciphertext);if (StringUtils.hasLength(decrypt)) {JSONObject object = JSONObject.parseObject(decrypt);String outTradeNo = object.getString("out_trade_no");// 查询订单OrderEntity order = super.getOne(Wrappers.lambdaQuery(OrderEntity.class).eq(OrderEntity::getOrderNo, outTradeNo));if (order != null) {// 未支付的if (order.getStatus() == 1) {String tradeState = object.getString("trade_state");// 支付成功,更改状态if ("SUCCESS".equals(tradeState)) {// 更改订单状态this.updateTradeStatus(outTradeNo, PayTypeEnum.WECHAT_PAY);}}} else {throw new ServiceException("订单信息有误");}}} else {throw new ServiceException("验证签名有误");} }
具体项目地址:code-miniprogram: 源码字节 流量主资源变现小程序 有流量就能躺着赚钱,如今疫情严峻的情况下,很多实体企业都收到影响,所有萌生了创业的想法,靠工资只能解决温饱问题,只有足够的外快才能让我们富足。来源码字节,手把手搭建平台流量主项目,让每个人都可以自己创业。
springboot 微信小程序支付回调相关推荐
- 基于springboot微信小程序支付功能实现
基于springboot微信小程序支付功能实现 简单的封装微信小程序支付功能,支付工具类所依赖的fastjson.lombok.wagegger, 1.添加maven依赖: 版本号可根据自己项目的实际 ...
- java微信小程序支付-回调(Jsapi-APIv3)
一.接入前准备,按照这个文档准备 准备: 接入前准备-小程序支付 | 微信支付商户平台文档中心 准备好了就可以获得(第二点里需要的参数): 参数1 商户号 merchantId:xxx ...
- SpringBoot微信小程序支付
本地模拟微信支付回调 因微信支付回调是由拉起支付时的notify_url属性设置,notify_url 是由微信服务器请求自己项目暴露出的指定的接口地址(公网IP):在生产环境中项目接口地址微信服务器 ...
- 微信小程序 支付回调不成功排查步骤
1.回调地址必须是80端,也就是http地址 2.复制网址到浏览器上能访问即可
- springboot 微信小程序 对接微信支付功能(完整版)
微信小程序对接微信支付功能 业务流程时序图 JAVA版 1. 项目架构 2. pom.xml配置文件 3. 小程序账号参数配置类 4.JAVA 通用代码 4.1 工具类 4.1.1 IdGen (id ...
- 微信小程序支付后无法回调
首先确定开发小程序支付要域名,要https请求,之后才能继续,也正是这两个前置要求引发了支付后无法回调的问题. 分享下排查思路 由于项目采用的是微服务,所以所有请求都要先经过网关,由网关做统一分发,此 ...
- SpringBoot对接微信小程序支付功能开发(二,支付回调功能)
接着上一篇: SpringBoot对接微信小程序支付功能开发(一,下单功能) 在上一篇下单功能中我们有传支付结果回调地址. 下面是回调接口实现 package com.office.miniapp.c ...
- SpringBoot对接微信小程序支付功能开发(一,下单功能)
1,接入前准备: 接入模式选择直连模式: 申请小程序,得到APPID,并开通微信支付: 申请微信商户号,得到mchid,并绑定APPID: 配置商户API key,下载并配置商户证书,根据微信官方文档 ...
- 微信小程序支付最容易犯的坑notify_url(支付回调)
最近做了微信小程序支付,支付成功之后发现notify_url回调地址竟然没有访问. 检查了无数次代码,下单结果里面的回调地址看了又看,都没有错啊. 把回调地址复制出来到浏览器上面,外网也是可以访问的啊 ...
最新文章
- ​IBM人工智能芯片的新进展
- 洛谷 P2163 [SHOI2007]Tree 园丁的烦恼
- oracle12c 新特性,12c Oracle数据库新特性汇总
- 排序算法复习之一趟快速排序算法:为什么说关键字所占的位置是多余的
- Boost:bind绑定的回归测试
- 在线机器学习FTRL(Follow-the-regularized-Leader)算法介绍
- C#中的异步编程--探索await与async关键字的奥妙之处,原来理解和使用异步编程可以这么简单
- 链表C++ | 从尾部打印头部(使用栈、递归实现)_3
- au插件vst_Propellerhead改名Reason Studios,并推出插件版Reason 11
- EF Code First建库 增删改查
- 使用 sublime数组转换成逗号分割文本
- idea中设置字体大小
- 小心哟!你很可能被“杏仁体”劫持了
- Python进阶之路(2):批量下载豆瓣FM红心音乐MP3到本地
- 年终固定资产大盘点的具体步骤
- linux airplay 客户端,iOS/MAC OSX airplay 使用教程 (更新macosx下的正确使用方式)
- Task02 python与excel
- 6.stm32 低功耗设计--总结
- linux minicon usb配置,USB、Mini-USB、Micro-USB接口的引脚定义
- Windows环境下的命令行工具cmder的安装和使用
热门文章
- window.open一个新网页显示,已拦截此网页上的弹出式窗口
- 关于git的常用操作
- markdown 语法小结
- 仿58同城地方门户本地生活小程序源码
- 请永远记住 “网景” 公司,互联网的缔造者!
- 你的 IDE 太重了,试试 Emacs吧!
- hive 执行错误 com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
- 硝烟中的Scrum和XP-我们如何实施Scrum pdf
- 主 题: 本人一年以来,呕心沥血收集“袁峰(MSFT)”大哥精彩回帖的贴子,现在回报社会。有不全的请
- 《柳青计算机导论》课后习题答案