找回密码
 立即注册
首页 业界区 安全 微信支付经验总结

微信支付经验总结

裴竹悦 2025-10-31 16:55:03
官方文档:https://github.com/wechatpay-apiv3/wechatpay-java
一开始想给用的ijpay版本升级,因为很多方法用不了,但是又不兼容老的代码了,然后尝试用了微信自带的sdk包
 
首先微信下载的几个证书需要区分好:apiclient_cert.p12( 证书 + 私钥 的 PKCS12 容器,win可以直接执行)、apiclient_cert.pem(商户API证书-公钥)、apiclient_key.pem(商户API证书-私钥)
 
 
 
之前遇到前端那调微信支付一直报“验签失败”,主要是我这边第一次拿到参数后需要再转化一下,代码如下
  1. String prepayId = JSONUtil.parseObj(response.getBody()).getStr("prepay_id");
  2. Map<String, String> packageParams = WxPayKit.jsApiCreateSign(wxPayV3Bean.getAppId(), prepayId, wxPayV3Bean.getKeyPath());
复制代码
 
之前的商户老版本会结合下载的CertificateDownloader.jar下载个如WECHATPAY_62641FA817168C27.pem平台证书,使用这个可以用来验签微信的回调。现在呢,平台证书都下载不了了会报404,一开始检查了半天有的,然后看了别人说的,现在支付都要走“公钥模式”,还有设置.serialNumber()这个参数要使用请求的header里面的
  1. String serialNo = request.getHeader("Wechatpay-Serial");
  2. com.wechat.pay.java.core.notification.RequestParam requestParam = new com.wechat.pay.java.core.notification.RequestParam.Builder()
  3.         .serialNumber(serialNo)
  4.         .nonce(nonce)
  5.         .signature(signature)
  6.         .timestamp(timestamp)
  7.         .body(requestBody)
  8.         .build();
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

2025-11-21 07:47:58

举报

您需要登录后才可以回帖 登录 | 立即注册