spring boot接入微信小程序支付流程

前言

正好最近项目中有需要做微信支付,跟着官方文档写下来坑还是踩了不少,于是写了这篇流程给自己长长记性,代码比较粗糙大家图一乐就好。

官方文档

官方接入指引--微信支付开发者文档


所用依赖

<dependency>
        <groupId>com.github.wechatpay-apiv3</groupId>
        <artifactId>wechatpay-apache-httpclient</artifactId>
        <version>0.2.3</version>
</dependency>
//用来生成随机字符串的工具类
<dependency>
        <groupId>cn.hutool</groupId>
        <artifactId>hutool-all</artifactId>
        <version>5.7.15</version>
</dependency>

常量解释

以下常量需要通过注册商户号获得

  • APPID: 小程序ID,在微信开发平台里可以获得,格式为wx************
  • API_V3_KEY:在微信商户中心的账号中心里获得,用来解密微信回调的报文
  • MCH_SERIAL_NO:商户证书序列号,在微信商户中心的账号中心里获得。
  • MCH_ID:商户号,开通商户后那一串数字就是商户号了。
  • PRIVATE_KEY: 商户秘钥,商户在注册证书后从apiClient_key.pem文件中可以获得,商户秘钥是用来给交易签名的重要数据,请不要暴露给外部。

以下常量需要后端自行设置

  • PACKAGE:签名固定字符串,小程序支付固定值为"RSA"
  • NOTIFY_URL:回调地址,支付成功后微信回调报文的地址,请设置为外网可见。

流程说明

创建订单

平台用户购买平台商品,前端将动态生成的商品详情,商品价格以及订单号传入创单接口,后端接收参数,请求微信支付系统接口,获取接口返回的预支付ID。
以下是后端代码
注意,代码中WeXinPayConstant里存放的是常量值,rootNode中应填写自己项目对应的值

		//创建HttpClient
        PrivateKey merchantPrivateKey = PemUtil.loadPrivateKey(
                new ByteArrayInputStream(WeXinPayConstant.PRIVATE_KEY.getBytes("utf-8")));

        //使用自动更新的签名验证器,不需要传入证书
        AutoUpdateCertificatesVerifier verifier = new AutoUpdateCertificatesVerifier(
                new WechatPay2Credentials(WeXinPayConstant.MCH_ID, new PrivateKeySigner(WeXinPayConstant.MCH_SERIAL_NO, merchantPrivateKey)),
                WeXinPayConstant.API_V3_KEY.getBytes(StandardCharsets.UTF_8));

        CloseableHttpClient httpClient = Wech
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值