Spring Boot项目中集成微信支付v3

1. 前言

最近忙的一批,难得今天有喘气的机会就赶紧把最近在开发中的一些成果分享出来。前几日分享了自己写的一个微信支付V3的开发包payment-spring-boot-starter,就忙里偷闲完善了一波。期间给微信支付提交了6个BUG,跟微信支付的产品沟通了好几天。

项目地址: https://github.com/NotFound403/payment-spring-boot

别忘记给个Star啊。

那么都完善了哪些内容呢?胖哥来一一介绍。

2. Maven 中央仓库

是的,不用再自行编译打包部署了,我已经提交到Maven中央仓库了。最新的坐标是:

<dependency>
  <groupId>cn.felord</groupId>
  <artifactId>payment-spring-boot-starter</artifactId>
  <version>1.0.1.RELEASE</version>
</dependency>

这才算有了点正经开源项目的样子。

3. 功能更加完善

在上次分享中仅仅实现了微信支付的代金券能力,这次加入了更多的微信支付能力:

微信支付V3的基础支付-直连模式优化。
实现微信支付V3的合单支付。
同时自行实现了多商户、多APPID的多租户模式。后续微信支付分等功能也将接入进来。

4. 完善样例

大部分还是喜欢拿来就用,那么我编写了一个DEMO项目,比如微信支付回调的控制器代码:

/**
 * 微信支付成功回调.
 * <p>
 * 无需开发者判断,只有扣款成功微信才会回调此接口
 *
 * @param wechatpaySerial  the wechatpay serial
 * @param wechatpaySignature the wechatpay signature
 * @param wechatpayTimestamp the wechatpay timestamp
 * @param wechatpayNonce   the wechatpay nonce
 * @param request      the request
 * @return the map
 */
@SneakyThrows
@PostMapping("/transaction")
public Map<String, ?> transactionCallback(
    @RequestHeader("Wechatpay-Serial") String wechatpaySerial,
    @RequestHeader("Wechatpay-Signature") String wechatpaySignature,
    @RequestHeader("Wechatpay-Timestamp") String wechatpayTimestamp,
    @RequestHeader("Wechatpay-Nonce") String wechatpayNonce,
    HttpServletRequest request) {
  String body = request.getReader().lines().collect(Collectors.joining());
  // 对请求头进行验签 以确保是微信服务器的调用
  ResponseSignVerifyParams params = new ResponseSignVerifyParams();
  params.setWechatpaySerial(wechatpaySerial);
  params.setWechatpaySignature(wechatpaySignature);
  params.setWechatpayTimestamp(wechatpayTimestamp);
  params.setWechatpayNonce(wechatpayNonce);
  params.setBody(body);
  return wechatApiProvider.callback(TENANT_ID).transactionCallback(params, data -> {
    //TODO 对回调解析的结果进行消费
  });
}

基本就是抄来就能用的。还有更多请参阅 payment-spring-boot-samples项目:

地址:https://github.com/NotFound403/payment-spring-boot-samples

5. 文档

写文档确实是一个枯燥的事情,参考了其它一些开源项目的样子弄了个像模像样的文档:

地址是:https://notfound403.github.io/payment-spring-boot

快速接入指南、JavaDoc、踩坑分享都在文档里面了。如果有什么需要完善的地方可以提交ISSUE。

今天的分享就到这里,如果你在微信支付中遇到了什么问题可以留言提问,分享使我快乐。

以上就是Spring Boot项目中集成微信支付v3的详细内容,更多关于Spring Boot项目微信支付的资料请关注我们其它相关文章!

(0)

相关推荐

  • activemq整合springboot使用方法(个人微信小程序用)

    主题 ActiveMQ Spring Boot 小程序开发 1.引入依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.3.RELEASE</version> <relativePath /> <!-- lookup

  • Springboot单体架构http请求转换https请求来支持微信小程序调用接口

    http请求转换https请求 1.话不多说,直接上代码! application.properties配置文件 #(密钥文件路径,也可以配置绝对路径) server.ssl.key-store= classpath:证书文件名.pfx #(密钥生成时输入的密钥库口令) server.ssl.key-store-password:123456 #(密钥类型,与密钥生成命令一致) server.ssl.key-store-type:PKCS12 证书一般最好放在resources目录下 接下来配置

  • 基于springboot微信公众号开发(微信自动回复)

    效果图 1.准备工作 申请微信订阅号(个人只能申请订阅号,而且没什么功能,也无法认证),申请完毕,点击 开发=>基本配置,如下图: 服务器配置需要有 域名 80端口,我猜你没有,这里推荐个实用工具,pagekite,下载链接, 这个工具需要 python2.7以上环境,还有邮箱一个,一个邮箱一个月,邮箱这东西大家懂得, 用pagekite申请完域名,就可以用自己的电脑做订阅号服务器了. 2.服务器代码 创建个springboot工程 pom.xml <properties> <pr

  • 微信小程序 springboot后台如何获取用户的openid

    openid可以标识一个用户,session_key会变,所以来获取一下openid. openid不能在微信小程序中直接获取,需要后台发送请求到微信的接口,然后微信返回一个json格式的字符串到后台,后台处理之后,再返回到微信小程序. 发布的小程序需要https的域名,而测试的时候可以使用http. 小程序在app.js中,修改login()中的内容: // 登录 wx.login({ success: res => { // 发送 res.code 到后台换取 openId, session

  • SpringBoot微信消息接口配置详解

    1.申请测试号,并记录appID和appsecret 2.关注测试号 3.添加消息模板 {{topic.DATA}} 用户名: {{user.DATA}} 单车编号:{{car.DATA}} 锁定时间:{{date.DATA}} {{remark.DATA}} 微信接口配置和代码 1.添加微信配置文件 import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframe

  • SpringBoot 微信退款功能的示例代码

    一:微信支付证书配置 二:证书读取以及读取后的使用 package com.zhx.guides.assistant.config.wechatpay; import org.apache.commons.io.IOUtils; import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.H

  • springboot 微信授权网页登录操作流程

    操作流程 假设你已经有自己的域名,因为微信公众号和微信回调都需要域名 先看看官方给的文档 根据官方文档,主要流程如下: (1)引导用户进入授权页面同意授权,获取code (2)通过code换取网页授权access_token(与基础支持中的access_token不同) (3)刷新access_token(如果有需要) (3)通过网页授权access_token和openid获取用户基本信息 提示:以下是本篇文章正文内容,下面案例可供参考 编写微信授权方法和获取用户信息方法 二.使用步骤 获取微

  • Spring Boot获取微信用户信息的超简单方法

    前言 不知道你是否参加过拼多多上邀请微信好友砍价功能,这个功能实现首先需要考虑的就是获取微信用户的信息.获取用户信息就是获取公众号下微信用户的信息,今天我就来讲讲如何从公众号下获取微信用户信息. 需要声明一点的是获取微信公众号下的用户信息的权限是服务号才有,个人订阅号是没有该权限的. 获取公众号用户信息实战 第一步需要先申请接口测试号并进行网页授权设置 访问如下链接进行接口测试号申请. https://developers.weixin.qq.com/doc/offiaccount/Basic_

  • SpringBoot中获取微信用户信息的方法

    前言 不知道你是否参加过拼多多上邀请微信好友砍价功能,这个功能实现首先需要考虑的就是获取微信用户的信息.获取用户信息就是获取公众号下微信用户的信息,今天我就来讲讲如何从公众号下获取微信用户信息. 需要声明一点的是获取微信公众号下的用户信息的权限是服务号才有,个人订阅号是没有该权限的. 获取公众号用户信息实战 第一步需要先申请接口测试号并进行网页授权设置 访问如下链接进行接口测试号申请. https://developers.weixin.qq.com/doc/offiaccount/Basic_

  • Springboot网站第三方登录 微信登录

    微信开放平台接入,官网:https://open.weixin.qq.com,在官网注册并添加应用后即可获得APP_ID和APP_SECRET. 步骤一:创建一个继承AuthService的接口,WeChatAuthService,如下 public interface WeChatAuthService extends AuthService { public JSONObject getUserInfo(String accessToken, String openId); } 步骤二:We

  • springboot整合微信支付sdk过程解析

    前言 之前做的几个微信小程序项目,大部分客户都有要在微信小程序前端提现的需求.提现功能的实现,自然使用企业付款接口,不过这个功能开通比较麻烦,要满足3个条件; 之前实现过几个微信支付的接口,不过都是自己码的代码,从网上找找拼凑,觉得看起来不舒服~_~ 于是乎找到了微信官方提供的支付sdk.这里用的是java版本,springboot整合java 下载sdk,引入项目 这里可以直接下载官方提供的sdk,然后将几个java类拷贝到你的项目,也可以直接引入maven依赖,这里是直接将Java类拷贝到我

  • SpringBoot JS-SDK自定义微信分享的实现

    前言 在介绍使用微信自定义分享前,我们来先了解一下什么是自定义分享? 访问自定义微信外链地址页面,点击红色框位置进行分享给朋友或者朋友圈,具体操作如下图所示: 分享后图文消息如下图所示: 我们要做的就是自定义下图所示中红框中的信息. 闲话少说,接下来就正式开始自定义分享实战环节! 自定义分享实战 第一步需要先申请接口测试号并进行JS接口安全域名设置 访问如下链接进行接口测试号申请.点击访问选择接口测试号申请,如下图所示: 或者直接访问 :申请测试账号页面 如下图所示: 点击登录进行扫码登录,如下

随机推荐