微信支付API代码详解

// 使用定时更新的签名验证器,不需要传入证书

  verifier=new ScheduledUpdateCertificatesVerifier(new WechatPay2Credentials(merchanId,new PrivateKeySigner(merchantSerialNumber,merchantPrivateKey)), apiV3Key.getBytes(StandardCharsets.UTF_8));

  WechatPayHttpClientBuilder builder = WechatPayHttpClientBuilder.create()
                .withMerchant(merchantId, merchantSerialNumber, merchantPrivateKey)
                .withValidator(new WechatPay2Validator(verifier))
// ... 接下来,你仍然可以通过builder设置各种参数,来配置你的HttpClient

// 通过WechatPayHttpClientBuilder构造的HttpClient,会自动的处理签名和验签,并进行证书自动更新
CloseableHttpClient httpClient = builder.build();

// 后面跟使用Apache HttpClient一样
CloseableHttpResponse response = httpClient.execute(...);
1. ScheduledUpdateCertificatesVerifier

ScheduledUpdateCertificatesVerifier 是一个微信支付 API 中的类,它用于定期更新和验证微信支付的证书。它需要一个凭证对象(WechatPay2Credentials)和 API 密钥来初始化。

  • 功能:这个类主要用于定期拉取微信支付的证书,并对请求进行签名验证。它确保在密钥过期或被撤销时自动更新密钥。
2. WechatPay2Credentials

WechatPay2Credentials 是一个包含微信支付相关凭证的对象。它主要包含两个参数:

  • merchantId(商户号)
  • signer(签名者)

这个对象的作用是提供给 ScheduledUpdateCertificatesVerifier 一个凭证,帮助它在请求时进行身份认证。

  • merchanId:这个变量代表商户号(merchantId),即在微信支付商户平台上注册的唯一标识。每个商户都有一个唯一的商户号。

  • PrivateKeySigner:是一个用于签名的类,它通过商户的私钥来生成签名,从而确保请求的安全性。

  • merchantSerialNumber:商户证书的序列号(merchantSerialNumber),在微信支付商户平台上可以找到。
  • merchantPrivateKey:商户的私钥,用于生成签名。这个私钥与商户证书的公钥匹配。它用于对 API 请求进行签名,确保请求的完整性和身份验证。
  • apiV3Key:这是你微信支付商户账户的 API V3 密钥,用于加密签名 API 请求。
  • .getBytes(StandardCharsets.UTF_8):这段代码将 apiV3Key 字符串转换成字节数组,以便后续的加密操作。使用 UTF-8 字符集确保字符的正确编码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值