使用 Java SDK

更新时间:2025.05.29

在本教程中,你将简要了解微信支付的 Java SDK。在学习过程中,你将

  • 掌握如何安装 Java SDK

  • 了解请求微信支付需要哪些密钥和证书

  • 了解如何使用 Java SDK 请求微信支付

环境要求

  • Java 1.8+

安装

使用包管理系统,例如 Maven、Gradle,快速添加微信支付官方 SDK。

如果你使用的 Gradle,请在 build.gradle 中加入:

1implementation 'com.github.wechatpay-apiv3:wechatpay-java:${VERSION}'

如果你使用的 Maven,请在 pom.xml 中加入:

1<dependency>
2  <groupId>com.github.wechatpay-apiv3</groupId>
3  <artifactId>wechatpay-java</artifactId>
4  <version>${VERSION}</version>
5</dependency>

你可以在 GitHub 找到 Java SDK 的源代码、使用说明和最新版本信息。

必需的证书和密钥

运行 SDK 必需以下的商户身份信息,用于构造请求的签名和验证应答的签名:

发起请求

以 Native 支付为例,向微信支付发起你的第一个请求:

1package com.wechat.pay.java.service;
2
3import com.wechat.pay.java.core.Config;
4import com.wechat.pay.java.core.RSAAutoCertificateConfig;
5import com.wechat.pay.java.service.partnerpayments.nativepay.NativePayService;
6import com.wechat.pay.java.service.partnerpayments.nativepay.model.*;
7
8/** Native 支付下单为例 */
9public class PartnerQuickStart {
10   /** 商户号 */
11    public static String merchantId = "190000****";
12    /** 商户API私钥路径 */
13    public static String privateKeyPath = "/Users/yourname/your/path/apiclient_key.pem";
14    /** 商户证书序列号 */
15    public static String merchantSerialNumber = "5157F09EFDC096DE15EBE81A47057A72********";
16    /** 商户APIV3密钥 */
17    public static String apiV3Key = "...";
18    public static void main(String[] args) {
19        // 使用自动更新平台证书的RSA配置
20        // 建议将 config 作为单例或全局静态对象,避免重复的下载浪费系统资源
21        Config config =
22                new RSAAutoCertificateConfig.Builder()
23                        .merchantId(merchantId)
24                        // 使用 com.wechat.pay.java.core.util 中的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名
25                        .privateKeyFromPath(privateKeyPath)
26                        .merchantSerialNumber(merchantSerialNumber)
27                        .apiV3Key(apiV3Key)
28                        .build();
29        // 构建service
30        NativePayService service= new NativePayService.Builder().config(config).build();
31        // request.setXxx(val)设置所需参数,具体参数可见Request定义
32        PrepayRequest request = new PrepayRequest();
33        Amount amount = new Amount();
34        amount.setTotal(1);
35        request.setAmount(amount);
36        request.setSpAppid("wxa9d9651ae******");
37        request.setSpMchid("190000****");
38        request.setSubMchid("190001****");
39        request.setOutTradeNo("partner_out_trade_no_001");
40        request.setDescription("测试商品标题");
41        request.setNotifyUrl("https://notify_url");
42        // 调用下单方法,得到应答
43        PrepayResponse response = service.prepay(request);
44        // 使用微信扫描 code_url 对应的二维码,即可体验Native支付
45        System.out.println(response.getCodeUrl());
46      }
47}

联系 SDK 团队获取帮助

接下来阅读

通过这个快速介绍,你已经安装了 Java SDK 并学习了一些基础知识。接下来,你可以:

  • 阅读 SDK 配置详解,详细了解如何配置商户信息和超时等网络设置。

  • 阅读具体的产品文档,学习如何接入微信支付。

 

 

反馈
咨询
目录
置顶