|
@@ -258,6 +258,7 @@ public class OrderServiceImpl implements OrderService {
|
|
// 订单号
|
|
// 订单号
|
|
while (true) {
|
|
while (true) {
|
|
String lockKey = "WX_ORDER_LOCK_KEY_" + tradeNo ;
|
|
String lockKey = "WX_ORDER_LOCK_KEY_" + tradeNo ;
|
|
|
|
+ log.info("微信支付成功回调tradeNo:{}", tradeNo);
|
|
Orders order = checkOrders(tradeNo, lockKey);
|
|
Orders order = checkOrders(tradeNo, lockKey);
|
|
if (ObjectUtils.isEmpty(order)) {
|
|
if (ObjectUtils.isEmpty(order)) {
|
|
break;
|
|
break;
|
|
@@ -292,6 +293,7 @@ public class OrderServiceImpl implements OrderService {
|
|
*/
|
|
*/
|
|
private void handlePayResult(Orders order){
|
|
private void handlePayResult(Orders order){
|
|
WXPayOrderQueryResult wxPayOrderQueryResult = wxPayService.orderQuery(order.getTradeNo());
|
|
WXPayOrderQueryResult wxPayOrderQueryResult = wxPayService.orderQuery(order.getTradeNo());
|
|
|
|
+ log.info("微信订单回调结果:{}",wxPayOrderQueryResult.getTradeState());
|
|
switch(WxOrderStatusEnum.getByCode(wxPayOrderQueryResult.getTradeState())) {
|
|
switch(WxOrderStatusEnum.getByCode(wxPayOrderQueryResult.getTradeState())) {
|
|
case NOT_PAY:
|
|
case NOT_PAY:
|
|
//如果是未支付,记录result
|
|
//如果是未支付,记录result
|
|
@@ -407,6 +409,7 @@ public class OrderServiceImpl implements OrderService {
|
|
try {
|
|
try {
|
|
notifyMap = WXPayUtil.xmlToMap(xmlData);
|
|
notifyMap = WXPayUtil.xmlToMap(xmlData);
|
|
WXPayOrderNotifyResult result = JSON.parseObject(JSON.toJSONString(notifyMap), WXPayOrderNotifyResult.class);
|
|
WXPayOrderNotifyResult result = JSON.parseObject(JSON.toJSONString(notifyMap), WXPayOrderNotifyResult.class);
|
|
|
|
+ log.info("微信支付回调xmlData: {}",xmlData);
|
|
if (wxpay.isPayResultNotifySignatureValid(notifyMap)) {
|
|
if (wxpay.isPayResultNotifySignatureValid(notifyMap)) {
|
|
// 签名正确,进行处理。
|
|
// 签名正确,进行处理。
|
|
// 注意特殊情况:订单已经退款,但收到了支付结果成功的通知,不应把商户侧订单状态从退款改成支付成功
|
|
// 注意特殊情况:订单已经退款,但收到了支付结果成功的通知,不应把商户侧订单状态从退款改成支付成功
|