修改获取平台证书

This commit is contained in:
2024-12-27 17:43:20 +08:00
parent 92a1794046
commit ea1d053ba7
4 changed files with 25 additions and 13 deletions

View File

@ -25,7 +25,7 @@ public interface IUserWechatPayService {
/**
* 获取平台证书
*/
public String getPlatformCertificat();
public Map<String,Object> getPlatformCertificat();
}

View File

@ -54,8 +54,8 @@ public class UserWechatPayServiceImpl implements IUserWechatPayService {
//微信小程序appSecret
public static String appSecret="7f591f559929a3bf2dbea4e156b08ae9";
//微信支付公钥地址
//public static String publicKeyPath="fastbee-common/src/main/java/com/fastbee/common/utils/pay/wechat_public_key.pem";
public static String publicKeyPath="fastbee-common/src/main/java/com/fastbee/common/utils/pay/wechat_public_key.pem";
//public static String publicKeyPath="fastbee-common/src/main/java/com/fastbee/common/utils/pay/wechat_public_key.pem";
//平台证书地址
public static String platformCertificatePath="fastbee-common/src/main/java/com/fastbee/common/utils/pay/damogang_platformCertificate.pem";
//支付结果回调地址
@ -89,7 +89,7 @@ public class UserWechatPayServiceImpl implements IUserWechatPayService {
reqdata.put("mchid",mchId);
reqdata.put("description",recharge.getCardnumber()+recharge.getAmount().toString());
reqdata.put("out_trade_no",recharge.getRechargeCode());
reqdata.put("notify_url",notify_url);//"\t\n" +
reqdata.put("notify_url",notify_url+"/"+mchId);//"\t\n" +
reqdata.put("payer",payer);
//String Signature=getSign(reqdata);
Map<String,String> info=getSign(reqdata,"POST","/v3/pay/transactions/jsapi");
@ -261,7 +261,7 @@ public class UserWechatPayServiceImpl implements IUserWechatPayService {
* @return
*/
/*@Override*/
public String getPlatformCertificat()
public Map<String,Object> getPlatformCertificat()
{
String url="https://api.mch.weixin.qq.com/v3/certificates";
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
@ -300,6 +300,8 @@ public class UserWechatPayServiceImpl implements IUserWechatPayService {
Map<String,Object> encrypt_certificate= (Map<String, Object>) map.get("encrypt_certificate");
System.err.println("111");
System.err.println(encrypt_certificate);
String serial=map.get("serial_no").toString();
System.err.println("平台证书序列号:"+serial);
String associated_data=encrypt_certificate.get("associated_data").toString();//加密证书的附加数据固定为“certificate"
String ciphertext=encrypt_certificate.get("ciphertext").toString();//加密证书的随机串
String nonce=encrypt_certificate.get("nonce").toString();//加密后的证书内容
@ -318,9 +320,16 @@ public class UserWechatPayServiceImpl implements IUserWechatPayService {
{
System.out.println("解密失败");
}
Map<String,Object> result=new HashMap<>();
result.put("platformCertificate",responseMap.toString());
result.put("serial",serial);
Set<String> keys=result.keySet();
for(String key : keys)
{
System.out.println(key+":"+result.get(key));
}
// 解析responseString以获取openid
return responseMap.toString(); // 这里返回的是整个响应字符串需要自行解析出openid
return result; // 这里返回的是整个响应字符串需要自行解析出openid
}
} catch (IOException e) {
throw new RuntimeException(e);
@ -330,4 +339,6 @@ public class UserWechatPayServiceImpl implements IUserWechatPayService {
}
}