记录:SpringBoot 开发之集成微信公众号支付

SpringBoot 集成微信(微信支付) SpringBoot 集成微信微信支付(APP支付)1.登录微信开发平台创建移动应用1.创建移动应用2.查看APP是否开通了支付功能并能获取到APPID2.登录微信商户平台1.设置或获取到API密钥3.导入依赖4.创建自己的微信配置类5.这下可以开始自己的业务模块了1. 创建服务接口2.创建接口实现类3.创建自己的控制类这里是我的接口请求类可以根据自己的业务随意定制 微信支付(APP支付) 1.登录微信开发平台创建移动应用 微信开发平台 1.创建移动应用 2.查看APP是否开通了支付功能并能获取到APPI 阅读详情

使用场景:用于停车场收费系统,当车辆还在场内时,车主可以通过公众号里面的预缴费功能给车辆先缴停车费用,出场时可直接出场

用户使用流程:

  1. 车主打开微信公众号,进入预缴费功能界面
  2. 输入车牌号获取车辆停车信息
  3. 点击预交费生成停车缴费订单
  4. 点击支付跳转至微信支付界面
  5. 输入密码完成支付后点击完成界面关闭

业务实现流程:

  1. 根据车牌号获取车辆停车信息
  2. 根据车辆停车信息生成车辆缴费订单信息
  3. 根据车辆缴费订单信息拼接微信统一支付参数,并调用微信统一支付接口
  4. 支付完成后同步回调跳转至支付完成界面,异步回调跳转至支付成功接口
  5. 签名校验
  6. 保存支付成功账单信息并修改缴费订单支付状态
  7. 发送接收到回调应答
    .

微信公众号支付开发者文档:https://pay.weixin.qq.com/wiki/doc/api/external/jsapi.php?chapter=7_1

一、统一下单:

接口地址:https://api.mch.weixin.qq.com/pay/unifiedorder
注:参数值用XML转义即可,CDATA标签用于说明数据不被XML解析器解析。

举例如下:

<xml>
   <appid>wx2421b1c4370ec43b</appid>
   <mch_id>10000100</mch_id>
   <nonce_str>1add1a30ac87aa2db72f57a2375d8fec</nonce_str>
   <body>JSAPI支付测试</body>
   <out_trade_no>1415659990</out_trade_no>
   <fee_type>GBP</fee_type>
   <total_fee>1</total_fee>
   <spbill_create_ip>14.23.150.211</spbill_create_ip>
   <notify_url>http://wxpay.wxutil.com/pub_v2/pay/notify.v2.php</notify_url>
   <trade_type>JSAPI</trade_type>
   <openid>oUpF8uMuAJO_M2pxb1Q9zNjWeS6o</openid>
   <attach>支付测试</attach>
   <sign>0CB01533B8C1EF103065174F50BCA001</sign>
</xml>

返回示列:

<xml>
   <return_code><![CDATA[SUCCESS]]></return_code>
   <return_msg><![CDATA[OK]]></return_msg>
   <appid><![CDATA[wx2421b1c4370ec43b]]></appid>
   <mch_id><![CDATA[10000100]]></mch_id>
   <nonce_str><![CDATA[IITRi8Iabbblz1Jc]]></nonce_str>
   <sign><![CDATA[7921E432F65EB8ED0CE9755F0E86D72F]]></sign>
   <result_code><![CDATA[SUCCESS]]></result_code>
   <prepay_id><![CDATA[wx201411101639507cbf6ffd8b0779950874]]></prepay_id>
   <trade_type><![CDATA[JSAPI]]></trade_type>
</xml>

具体字段描述请查看官方文档

微信签名生成规则:

  1. 将所有参数保存至集合M
  2. 将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序)
  3. 使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA
  4. 在stringA最后拼接上key得到stringSignTemp字符串
  5. 对stringSignTemp进行MD5运算
  6. 将得到的字符串所有字符转换为大写,得到sign值signValue

Java 中 TreeMap 的默认排序规则就是按照 key 的字典顺序来排序,正好与第二步想对应,所有可以直接将数据保存至 TreeMap 中

/**
   * XML字符串转MAP
   * @param xml
   * @return
   * @throws Exception
   */
  public static Map<String, Object> xml2Map(String xml){
    if (StringUtils.isEmpty(xml)) {
      return null;
    }
    Map<String, Object> map = new HashMap<String, Object>();
    try {
      // 将xml格式的字符串转换成Document对象
      Document doc = DocumentHelper.parseText(xml);
      // 获取根节点
      Element root = doc.getRootElement();
      // 获取根节点下的所有元素
      List children = root.elements();
      // 循环所有子元素
      if (children != null && children.size() > 0) {
        for (int i = 0; i < children.size(); i++) {
          Element child = (Element) children.get(i);
          map.put(child.getName(), child.getTextTrim());
        }
      }
    }catch (DocumentException e){
      throw new RuntimeException(e);
    }
    return map;
  }
开发笔记 | Springboot整合多平台支付(微信/支付宝) 微信支付 小程序支付 官方文档微信支付-开发者文档https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_5_1.shtml 场景:通过小程序调起支付-》支付完成-》微信支付成功通知 业务流程: 用户创建商户订单-》结合商户订单号,价格等调起微信支付-》完成支付更新商户订单支付1.状态 1.请求参数实体 WxPayUnifiedOrderRequest 重要参数说明 out_trade_no 商户订单号 自己系统生成的订单号,6 阅读详情

相关推荐

springboot整合微信扫码支付(详细)

springboot整合微信扫码支付,V3接口,Native支付

todoitbo的博客 9万+

springboot整合微信支付

springboot整合微信支付

qq_38635569的博客 1284

Java开发微信公众号之整合weixin-java-tools框架开发微信公众号

微信开发者接入文档 :https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319 一、前言 在要做微信项目开发前,大家都会去了解微信公众号的类型和注册流程,以及不同公众号的功能使用权限,这个我前面文章也有过介绍,做微信开发公众号最起码得是一个已认证的服务号,这里我是指企业项目哈,当然如果是自己学习研究的话,直接去...

Thinkingcao的专栏 2万+

SpringBoot整合weixin-java-pay实现微信小程序支付

在做完一个仿美团的应用,我将其中涉及到的一些技术点进行总结和整理,当下次遇到类似的问题就能省下不少时间,避免踩坑。

国家专精特新小巨人、资深消防行业企业、国家高新技术企业、智慧消防技术实验室、准独角兽企业、浙江省电流AI技术研发中心 3758

技术面试官视角:复盘北航/中科院/哈工大保研机试与面试,他们到底在考察什么?(附真题回忆与评分侧重点)

本文从技术面试官视角解析北航、中科院、哈工大等顶尖院校保研机试与面试的考核逻辑,揭示编程语言限制、题目难度设计等隐藏考察维度,并提供真题回忆与评分侧重点。帮助考生理解面试官的真实意图,掌握应对策略,提升通过率。

weixin_42549496的博客 518

Social-Auto-Upload实战:如何用Python+Playwright实现抖音/B站/小红书一键三连发?

本文详细介绍了如何使用Python和Playwright框架构建Social-Auto-Upload自动化上传工具,实现抖音、B站、小红书等平台的一键多发布。通过模拟真实用户操作和Cookie管理技术,该工具能有效解决内容创作者跨平台发布的重复劳动问题,提升工作效率。

day7的博客 1401

微信公众号开发 之 微信支付(Java+SpringBoot)

目录 一、准备工作 二、开始写代码 1、获取用户openID (1)获取code (2)用code换取openid 2、支付主体 (1)业务流程概述 (2)开始写支付部分代码 3、接收支付系统交易结果通知 一、准备工作 经过跌跌撞撞地探索,终于完成了微信支付功能,现将微信支付开发重要步骤及代码记录下来,以备不时之需。相信很多童鞋要开始开发微信支付功能的时候,都是一脸懵...

一不小心吃太撑了 2836

Materials - UE5中的PivotPainter

可以使用3DS Max Script中的脚本(Pivot Painter)对模型进行处理,让每个Element都有自己的Pivot Point,来方便控制和制作一些特殊的顶点动画效果;

GT的虚幻引擎文档 1289

微信公众号支付失败问题-微信支付提示 调用支付JSAPI缺少参数:appId

鉴于去年做过微信app支付,小程序支付,支付宝app支付,云闪付app支付等方面的功能和研究。最近要完成一个在微信公众号支付的场景。其中遇到了一个坑,坑了我足足一上午多的时间。所以我想写下来记录,以后遇到微信相关API调用的时候,就不会花这么久的时间了。 技术场景:微信公众号支付 本文不会详细讲解微信公众号支付的具体流程,因为官网文档已经说得很详细,至少比我写的详细。而且本文的目的是记录我...

oray2013的专栏 1万+

《ESP32单片机基础入门》第2章:开发环境搭建

【代码】《ESP32单片机基础入门》第2章:开发环境搭建。

2301_79143213的博客 582

6、直流微电网中恒功率负载(CPL)的稳定性分析与控制策略

本文探讨了直流微电网中恒功率负载(CPL)带来的稳定性问题,并深入分析了其影响机制及相应的缓解策略。文章首先通过小信号模型和非线性分析揭示了CPL对系统稳定性的影响,接着讨论了被动稳定方法的优缺点,最后重点介绍了基于时间的方法和几何控制器等控制策略。这些方法各有优劣,在实际应用中需结合具体需求选择合适方案,以实现直流微电网的稳定运行。

star的博客 227

微信公众号支付(记录)

公众号微信支付开发 1.第一步:设置微信支付目录,这个地址指到支付页面的上一级即可。 例如:支付页面的地址是http://www.baidu.com/wechat/pay/shopping,只需填写http://www.baidu.com/wechat/pay/, 一定要以"/"(左斜杆)符号结尾。 2.第二步:设置授权域名,授权域名是为了获取支付中不可缺少的参数openid。每...

Xbinbin的博客 1043

135、转动惯量辨识方法

<think>我们要求根据内容生成≤150字的文章摘要。内容是关于电机控制中转动惯量辨识的方法和工程经验。摘要需简洁概括核心:转动惯量重要性、三种方法(加减速法、正弦扫频、MRAS)、工程注意点(摩擦补偿、采样同步等)、实用建议(组合使用、滤波限幅、安全保护)。字数严格≤150。需要提炼。</think>转动惯量辨识是电机控制的关键,负载变化会导致速度环失稳。工程常用加减速法(简单可靠)、正弦扫频法(高精度)、MRAS在线辨识。实操需补偿摩擦、同步采样、控制激励幅度。建议混合使用,辨识结果需滤波限幅,并设置

2401_88858637的博客 40

一个项目搞定支付宝,微信支付!

扫码支付电脑支付WAP支付APP支付服务端。

2401_87167707的博客 498

Nvidia Jetson平台 JP4.2.1版本GStreamer视频采集异常问题调试记录

Nvidia Jetson平台GStreamer in JP4.2.1不能采集但是 v4l2-ctl和 ffmpeg能正常采集视频。

jzwjzw19900922的博客 2127

Yolo8行人车辆目标检测实战分享 完整项目代码可直接运行

Yolo8行人车辆目标检测实战分享 完整项目代码可直接运行

1294

springboot 微信公众号支付第一步,获取openid

微信支付,获取openId

huqiankunlol的博客 1037

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

支付宝支付前后端实现(Vue+Spring Boot)

本文主要总结基于Vue/Spring Boot的支付宝支付实现,兼容H5与电脑端。 1. 应用创建与配置 第一步:登录支付宝开放平台创建应用; 并视情况需要添加“手机网站支付”和“电脑网站支付”能力; 手机网站支付可通过浏览器打开支付宝应用程序进行付款,但在微信公众号打开的页面无法通过支付宝进行支付,电脑端的可通过二维码或者登录支付宝账号付款。 第二步:密钥配置 包括应用私钥、应用公钥和支付宝公钥。 可通过支付宝开放平台开发助手生成应用私钥与应用公钥,然后在开放平台中将应用公钥配置到应用中,生成

leehomlian的博客 1万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

02、SpringBoot + 微信支付 -->基础支付API V3 -->网页弹出二维码支付功能 并能 真实支付成功(Native下单API)

SpringBoot + 微信支付 -->基础支付API V3 -->网页弹出二维码支付功能 并能 真实支付成功

Java 领域技术分享 1469

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

springboot项目之小程序企业微信支付

小程序企业微信支付 老样子这块东西和推送其实也差不多,都是小程序的后台接口,为什么会涉及到企业微信支付,是因为有抢红包的功能,虽然说这个抢红包的功能可能不是十全十美。但是我觉得有必要记录一下关于小程序企业支付这一块,还是贴代码吧,大多都是代码有问题的地方会具体解。 1、支付业务代码 SortedMap&lt;Object, Object&gt; packageParams = new Tree...

柚子的博客 1612

【微信开发第四章】SpringBoot实现微信H5支付

在进行微信公众号业务开发的时候,**微信支付**可以说是非常重要的一环。该篇文章每一步都有记录,力争理解的同时各位小伙伴也能够实现功能

weixin_47316183的博客 3191

一个项目解决支付宝 微信支付

项目基于 Spring Boot 搭建,是支付宝,微信,银联支付服务详细代码案例 ,所有支付 Demo 测试通过,真实有效。代码案例包含功能如下,几乎涵盖了常用的支付场景

熊小白的进阶之路 197

Springboot对接微信支付SDK,超简单版:wechatpay-apiv3

Springboot中对接微信支付,jsapi,小程序,app

qq_59409315的博客 2604

SpringBoot + 事务钩子函数,打造高效支付系统!

????这是一个或许对你有用的社群????一对一交流/面试小册/简历优化/求职解惑,欢迎加入「芋道快速开发平台」知识星球。下面是星球提供的部分资料:《项目实战(视频)》:从书中学,往事中“练”《互联网高频面试题》:面朝简历学习,春暖花开《架构 x 系统设计》:摧枯拉朽,掌控面试高频场景题《精进 Java 学习指南》:系统学习,互联网主流技术栈《必读 Java 源码专栏》:知其然,知其所以然????这是一个或许...

weixin_44421461的博客 115
上一篇: 记录:nacos 学习笔记
下一篇: 记录:微信公众号开发
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值