|
@@ -94,6 +94,8 @@ public class CsOrderCardController extends BaseController {
|
|
|
String nonce = request.getHeader("Wechatpay-Nonce");
|
|
String nonce = request.getHeader("Wechatpay-Nonce");
|
|
|
String signature = request.getHeader("Wechatpay-Signature");
|
|
String signature = request.getHeader("Wechatpay-Signature");
|
|
|
|
|
|
|
|
|
|
+ log.info("收到微信支付回调 - Timestamp: {}, Nonce: {}, Signature: {}", timestamp, nonce, signature);
|
|
|
|
|
+
|
|
|
// 读取请求体
|
|
// 读取请求体
|
|
|
StringBuilder body = new StringBuilder();
|
|
StringBuilder body = new StringBuilder();
|
|
|
try (BufferedReader reader = new BufferedReader(
|
|
try (BufferedReader reader = new BufferedReader(
|
|
@@ -105,25 +107,28 @@ public class CsOrderCardController extends BaseController {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
String requestBody = body.toString();
|
|
String requestBody = body.toString();
|
|
|
- log.info("微信支付回调:{}", requestBody);
|
|
|
|
|
|
|
+ log.info("微信支付回调请求体: {}", requestBody);
|
|
|
|
|
|
|
|
- // 解析支付结果(这里需要实现解密,可以参考photo项目)
|
|
|
|
|
|
|
+ // 解析支付结果
|
|
|
JSONObject data = JSON.parseObject(requestBody);
|
|
JSONObject data = JSON.parseObject(requestBody);
|
|
|
JSONObject resource = data.getJSONObject("resource");
|
|
JSONObject resource = data.getJSONObject("resource");
|
|
|
String ciphertext = resource.getString("ciphertext");
|
|
String ciphertext = resource.getString("ciphertext");
|
|
|
String associatedData = resource.getString("associated_data");
|
|
String associatedData = resource.getString("associated_data");
|
|
|
String nonceStr = resource.getString("nonce");
|
|
String nonceStr = resource.getString("nonce");
|
|
|
|
|
|
|
|
-// 解密数据(需要实现AES-GCM解密)
|
|
|
|
|
|
|
+ // 解密数据
|
|
|
String decryptedData = decryptFromWechat(ciphertext, associatedData, nonceStr);
|
|
String decryptedData = decryptFromWechat(ciphertext, associatedData, nonceStr);
|
|
|
|
|
+ log.info("微信支付回调解密结果: {}", decryptedData);
|
|
|
JSONObject paymentResult = JSON.parseObject(decryptedData);
|
|
JSONObject paymentResult = JSON.parseObject(decryptedData);
|
|
|
|
|
|
|
|
String orderNo = paymentResult.getString("out_trade_no");
|
|
String orderNo = paymentResult.getString("out_trade_no");
|
|
|
String tradeState = paymentResult.getString("trade_state");
|
|
String tradeState = paymentResult.getString("trade_state");
|
|
|
|
|
+ log.info("支付回调解析内容 - 订单号: {}, 交易状态: {}", orderNo, tradeState);
|
|
|
|
|
|
|
|
if ("SUCCESS".equals(tradeState)) {
|
|
if ("SUCCESS".equals(tradeState)) {
|
|
|
- // 调用你的业务处理方法
|
|
|
|
|
orderCardService.handlePaySuccess(orderNo);
|
|
orderCardService.handlePaySuccess(orderNo);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ log.warn("支付状态不为SUCCESS: {}", tradeState);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 响应微信
|
|
// 响应微信
|