获取并解析平台证书以及平台证书验签以及微信支付插入信息添加用户id

This commit is contained in:
2024-12-27 15:48:18 +08:00
parent 641d59467c
commit 3197e29b87
7 changed files with 224 additions and 18 deletions

View File

@ -46,7 +46,8 @@ import com.fastbee.common.utils.pay.wxPayConfig;
import static cn.hutool.core.util.XmlUtil.xmlToMap;
import static com.fastbee.common.constant.Constants.LANGUAGE;
import static com.fastbee.common.utils.pay.RSAUtil.verifySignature;
import static com.fastbee.rechargecard.service.impl.UserWechatPayServiceImpl.apiV3Key;
import static com.fastbee.common.utils.pay.RSAUtil.verifySignatureByCertificate;
import static com.fastbee.rechargecard.service.impl.UserWechatPayServiceImpl.*;
/**
* @author mijiupro
@ -67,7 +68,14 @@ public class WeChatPayController extends BaseController {
@Autowired
private IUserWechatPayService userWechatPayService;
/**
* 获取平台证书
* @return
*/
public AjaxResult getPlatformCertificat()
{
return success(userWechatPayService.getPlatformCertificat());
}
/**
* 获取openId
@ -158,6 +166,10 @@ public class WeChatPayController extends BaseController {
String wechatpaySerial = request.getHeader("Wechatpay-Serial");//序列号
String wechatpayTimestamp = request.getHeader("Wechatpay-Timestamp");//时间戳
String wechatpayNonce = request.getHeader("Wechatpay-Nonce");//随机字符串
System.err.println("wechatpaySignature"+wechatpaySignature);
System.err.println("wechatpaySerial"+wechatpaySerial);
System.err.println("wechatpayTimestamp"+wechatpayTimestamp);
System.err.println("wechatpayNonce"+wechatpayNonce);
String json=jsonObject.toString();
System.out.println("微信回调报文:{"+json+"}");
// 构建应答报文
@ -184,10 +196,15 @@ public class WeChatPayController extends BaseController {
* responseBody 应答报文主体
* publicKey 微信支付公钥PEM 格式,去掉头尾并解码为二进制)
*/
//微信支付公钥验签
//String publicKey= wxPayConfig.getPublicKey(publicKeyPath);//读取并预处理后的微信支付公钥
/*String Authorization=
String publicKey=userWechatPayService.getPublicKeyByCertificat();
boolean isVerified = verifySignature(wechatpaySignature, wechatpayTimestamp, wechatpayNonce, json, publicKey);
//boolean isVerified = verifySignature(wechatpaySignature, wechatpayTimestamp, wechatpayNonce, json, publicKey);//微信支付公钥验签方式
//平台证书验签
/*String publicKey=wxPayConfig.getPublicKeyByCertificat(platformCertificatePath);//读取预处理后的平台证书
System.err.println("publickey:"+publicKey);
boolean isVerified = verifySignatureByCertificate(wechatpaySignature, wechatpayTimestamp, wechatpayNonce, json, publicKey);
if (isVerified) {
System.out.println("签名验证成功");
} else {