WxJava Spring Boot 微信支付商户直连分账

简介

微信支付是一种非常流行的移动支付方式,而商户直连分账则是一项针对多方分账场景的解决方案。本文将介绍如何使用 WxJava 和 Spring Boot 来实现微信支付商户直连分账功能。

准备工作

在开始之前,我们需要准备以下内容:

  1. 微信开放平台账号和应用
  2. WxJava 和 Spring Boot 的项目环境
  3. 商户平台配置好的分账接收方信息

导入 WxJava 依赖

首先,在你的 Spring Boot 项目中,需要导入 WxJava 的相关依赖。在 pom.xml 文件中,添加以下代码:

<dependency>
    <groupId>cn.binarywang</groupId>
    <artifactId>weixin-java-pay</artifactId>
    <version>3.6.0</version>
</dependency>

配置微信支付信息

在 Spring Boot 项目的配置文件 application.propertiesapplication.yml 中,配置微信支付的相关信息,包括 appidmchIdkey 等等。

wechat:
  pay:
    app-id: your_app_id
    mch-id: your_mch_id
    key: your_key

创建分账接收方

在商户平台上,创建好分账接收方,并获取到其对应的 accountname

创建分账订单

使用 WxJava 的 API,创建分账订单。首先,我们需要创建一个 WxPayService 的实例。

WxPayService wxPayService = new WxPayServiceImpl();
wxPayService.setConfig(wxPayConfig);

然后,使用 WxPayService 实例创建一个 WxPayOrder 对象,并设置相关参数。

WxPayOrder wxPayOrder = new WxPayOrder();
// 设置订单金额
wxPayOrder.setTotalFee(100);
// 设置订单描述
wxPayOrder.setBody("商品描述");
// 设置商户订单号
wxPayOrder.setOutTradeNo("your_out_trade_no");
// 设置分账接收方
wxPayOrder.setProfitSharingReceivers(Collections.singletonList(new WxPayProfitSharingReceiver("receiver_account", "receiver_name", "MERCHANT_ID")));

发起微信支付

使用 WxPayServicecreateOrder 方法,发起微信支付。该方法会返回一个 WxPayCreateOrderResult 对象,其中包含了支付所需的参数。

WxPayCreateOrderResult createOrderResult = wxPayService.createOrder(wxPayOrder);

将返回的 createOrderResult 对象中的 prepayId 参数提取出来,并将其作为支付请求的参数。

支付回调处理

当用户支付成功后,微信服务器会向你的回调地址发送一个 POST 请求,通知支付结果。你需要在你的 Spring Boot 项目中,配置一个接收支付回调的请求处理方法。

@RestController
public class PayCallbackController {

    @PostMapping("/pay/callback")
    public String payCallback(HttpServletRequest request) {
        // 处理支付回调逻辑
        // ...
        return "success";
    }
}

分账回调处理

当分账完成后,微信服务器也会向你的回调地址发送一个 POST 请求,通知分账结果。你同样需要在你的 Spring Boot 项目中,配置一个接收分账回调的请求处理方法。

@RestController
public class ProfitSharingCallbackController {

    @PostMapping("/profitSharing/callback")
    public String profitSharingCallback(HttpServletRequest request) {
        // 处理分账回调逻辑
        // ...
        return "success";
    }
}

总结

通过使用 WxJava 和 Spring Boot,我们可以轻松实现微信支付商户直连分账功能。在本文中,我们介绍了如何创建分账订单、发起微信支付、处理支付回调和分账回调。希望本文对你理解和使用微信支付商户直连分账有所帮助!

参考资料

  • [WxJava GitHub 仓库](
  • [微信支付开发文档](