最近做了一个微信三方开发平台,客户小程序涉及到支付,作为唯一的开发人员特此记录一下整个流程,以加强记忆,互相学习,互相进步
1、注册 微信支付合作伙伴,需要企业的一些资料信息,这里略过哈,按照官方指引注册就行了
2、注册成功登录后页面
上图红框里面的除了最后一个都要设置上
3、设置好了之后填写商户资料(需要给那些客户接入支付,就填哪些客户,如需批量填写,可以用接口)
4、申请成功之后拿到特约商的商户号,以及当前合作伙伴账号的各种信息,就可以愉快的编码了
5、引入微信官方sdk,这里建议各位用微信官方的sdk,毕竟是和钱相关的,还是要严谨一些
<dependency>
<groupId>com.github.wechatpay-apiv3</groupId>
<artifactId>wechatpay-java</artifactId>
<version>0.2.12</version>
</dependency>
6、编写配置
package com.yycm.platform.system.config;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.IdUtil;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import java.util.List;
/**
* @Description 微信公众号,我这里服务商模式的合作伙伴商户号是基于微信公众号的
* @Author ZJF
* @Date 2024/7/16 15:37
*/
@Data
@ConfigurationProperties(prefix = "wx.mp")
public class WxMpProperties {
private List<WxConfig> configs;
public WxConfig getDefaultWxConfig() {
return CollUtil.isNotEmpty(configs) ? configs.get(0) : null;
}
@Data
public static class WxConfig {
/**
* 公众号appid
*/
private String appid;
/**
* 设置微信小程序的Secret
*/
private String secret;
//=============================支付相关参数=========================================//
/**
* 服务商商户号
*/
private String mchId;
/**
* 服务商证书序列号
*/
private String mchSerialNumber;
/**
* 服务商API私钥路径
*/
private String privateKeyPath;
/**
* 服务商apiV3密钥
*/
private String apiV3Key;
/**
* 通知回调地址
*/
private String notifyUrl;
}
}
import cn.hutool.core.lang.Assert;
import cn.hutool.extra.spring.SpringUtil;
import com.wechat.pay.java.core.RSAAutoCertificateConfig;
import com.wechat.pay.java.core.notification.NotificationParser;
import com.wechat.pay.java.service.partnerpayments.jsapi.JsapiServiceExtension;
import com.wechat.pay.java.service.partnerpayments.jsapi.model.*;
import com.yycm.platform.system.dept.service.DeptService;
import com.yycm.platform.system.pojo.dto.DeptDto;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.context.properties.