修改获取平台证书

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

@ -75,7 +75,9 @@ public class WeChatPayController extends BaseController {
* 获取平台证书 * 获取平台证书
* @return * @return
*/ */
public AjaxResult getPlatformCertificat() @ApiOperation("获取平台证书")
@GetMapping("/getPlatformCertificate")
public AjaxResult getPlatformCertificate()
{ {
return success(userWechatPayService.getPlatformCertificat()); return success(userWechatPayService.getPlatformCertificat());
} }
@ -87,7 +89,7 @@ public class WeChatPayController extends BaseController {
*/ */
@ApiOperation("获取openId") @ApiOperation("获取openId")
@PostMapping("/getOpenId") @PostMapping("/getOpenId")
public Map<String,Object> BuildOrder(@RequestBody String code) public Map<String,Object> getOpenId(@RequestBody String code)
{ {
if(StringUtils.isBlank(code)){ if(StringUtils.isBlank(code)){
return AjaxResult.error("code不能为空"); return AjaxResult.error("code不能为空");
@ -128,7 +130,7 @@ public class WeChatPayController extends BaseController {
String out_trade_no=UUID.randomUUID().toString().replace("-", ""); String out_trade_no=UUID.randomUUID().toString().replace("-", "");
while(ngUserRechargeRecordsService.SelectRechargeRecodeByRechargeCode(out_trade_no) !=null) while(ngUserRechargeRecordsService.SelectRechargeRecodeByRechargeCode(out_trade_no) !=null)
{ {
out_trade_no=UUID.randomUUID().toString().replace("-", "");; out_trade_no=UUID.randomUUID().toString().replace("-", "");
} }
System.err.println("随机字符串"+out_trade_no); System.err.println("随机字符串"+out_trade_no);
recharge.setRechargeCode(out_trade_no); recharge.setRechargeCode(out_trade_no);
@ -159,11 +161,12 @@ public class WeChatPayController extends BaseController {
return error("系统内部订单生成失败"); return error("系统内部订单生成失败");
} }
@PostMapping("/getresult") @PostMapping("/getresult/{merchantId}")
@ApiOperation("支付通知结果回溯") @ApiOperation("支付通知结果回溯")
@ResponseBody @ResponseBody
public ResponseEntity<?> getResult(@RequestBody JSONObject jsonObject, HttpServletRequest request) throws Exception {//WeChatRechargeBacktracking backtracking public ResponseEntity<?> getResult(@RequestParam String merchantId,@RequestBody JSONObject jsonObject, HttpServletRequest request) throws Exception {//WeChatRechargeBacktracking backtracking
// 从HTTP请求头中获取微信签名和时间戳等值 // 从HTTP请求头中获取微信签名和时间戳等值
System.out.println("merchantId"+merchantId);
System.out.println("微信回调开始---------"); System.out.println("微信回调开始---------");
String wechatpaySignature = request.getHeader("Wechatpay-Signature");//验签的签名值 String wechatpaySignature = request.getHeader("Wechatpay-Signature");//验签的签名值
String wechatpaySerial = request.getHeader("Wechatpay-Serial");//序列号 String wechatpaySerial = request.getHeader("Wechatpay-Serial");//序列号

View File

@ -27,8 +27,6 @@ public class UserRechargeController extends BaseController {
@Autowired @Autowired
private IUserRechargeCardsService userRechargeCardsService; private IUserRechargeCardsService userRechargeCardsService;
/** /**
* 修改用户充值卡金额 * 修改用户充值卡金额
*/ */

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 //微信小程序appSecret
public static String appSecret="7f591f559929a3bf2dbea4e156b08ae9"; 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 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"; 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("mchid",mchId);
reqdata.put("description",recharge.getCardnumber()+recharge.getAmount().toString()); reqdata.put("description",recharge.getCardnumber()+recharge.getAmount().toString());
reqdata.put("out_trade_no",recharge.getRechargeCode()); 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); reqdata.put("payer",payer);
//String Signature=getSign(reqdata); //String Signature=getSign(reqdata);
Map<String,String> info=getSign(reqdata,"POST","/v3/pay/transactions/jsapi"); Map<String,String> info=getSign(reqdata,"POST","/v3/pay/transactions/jsapi");
@ -261,7 +261,7 @@ public class UserWechatPayServiceImpl implements IUserWechatPayService {
* @return * @return
*/ */
/*@Override*/ /*@Override*/
public String getPlatformCertificat() public Map<String,Object> getPlatformCertificat()
{ {
String url="https://api.mch.weixin.qq.com/v3/certificates"; String url="https://api.mch.weixin.qq.com/v3/certificates";
try (CloseableHttpClient httpClient = HttpClients.createDefault()) { 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"); Map<String,Object> encrypt_certificate= (Map<String, Object>) map.get("encrypt_certificate");
System.err.println("111"); System.err.println("111");
System.err.println(encrypt_certificate); 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 associated_data=encrypt_certificate.get("associated_data").toString();//加密证书的附加数据固定为certificate"
String ciphertext=encrypt_certificate.get("ciphertext").toString();//加密证书的随机串 String ciphertext=encrypt_certificate.get("ciphertext").toString();//加密证书的随机串
String nonce=encrypt_certificate.get("nonce").toString();//加密后的证书内容 String nonce=encrypt_certificate.get("nonce").toString();//加密后的证书内容
@ -318,9 +320,16 @@ public class UserWechatPayServiceImpl implements IUserWechatPayService {
{ {
System.out.println("解密失败"); 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 // 解析responseString以获取openid
return responseMap.toString(); // 这里返回的是整个响应字符串需要自行解析出openid return result; // 这里返回的是整个响应字符串需要自行解析出openid
} }
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
@ -330,4 +339,6 @@ public class UserWechatPayServiceImpl implements IUserWechatPayService {
} }
} }