未验证 提交 4ce79e12 编写于 作者: D dingzhiwei 提交者: GitHub

Merge pull request #7 from cbwleft/bugfix/channelOrderNo

Bugfix/channel order no
...@@ -81,10 +81,11 @@ public class BaseService { ...@@ -81,10 +81,11 @@ public class BaseService {
return payOrderMapper.updateByExampleSelective(payOrder, example); return payOrderMapper.updateByExampleSelective(payOrder, example);
} }
public int baseUpdateStatus4Success(String payOrderId) { public int baseUpdateStatus4Success(String payOrderId, String channelOrderNo) {
PayOrder payOrder = new PayOrder(); PayOrder payOrder = new PayOrder();
payOrder.setPayOrderId(payOrderId); payOrder.setPayOrderId(payOrderId);
payOrder.setStatus(PayConstant.PAY_STATUS_SUCCESS); payOrder.setStatus(PayConstant.PAY_STATUS_SUCCESS);
if(channelOrderNo != null) payOrder.setChannelOrderNo(channelOrderNo);
payOrder.setPaySuccTime(System.currentTimeMillis()); payOrder.setPaySuccTime(System.currentTimeMillis());
PayOrderExample example = new PayOrderExample(); PayOrderExample example = new PayOrderExample();
PayOrderExample.Criteria criteria = example.createCriteria(); PayOrderExample.Criteria criteria = example.createCriteria();
......
...@@ -57,14 +57,15 @@ public class NotifyPayServiceImpl extends Notify4BasePay implements INotifyPaySe ...@@ -57,14 +57,15 @@ public class NotifyPayServiceImpl extends Notify4BasePay implements INotifyPaySe
_log.warn("处理支付宝支付回调失败, {}. jsonParam={}", RetEnum.RET_PARAM_INVALID.getMessage(), jsonParam); _log.warn("处理支付宝支付回调失败, {}. jsonParam={}", RetEnum.RET_PARAM_INVALID.getMessage(), jsonParam);
return RpcUtil.createFailResult(baseParam, RetEnum.RET_PARAM_INVALID); return RpcUtil.createFailResult(baseParam, RetEnum.RET_PARAM_INVALID);
} }
Map<String, Object> payContext = new HashMap(); Map<String, Object> payContext = new HashMap<>();
PayOrder payOrder; PayOrder payOrder;
payContext.put("parameters", params); payContext.put("parameters", params);
if(!verifyAliPayParams(payContext)) { if(!verifyAliPayParams(payContext)) {
return RpcUtil.createFailResult(baseParam, RetEnum.RET_BIZ_PAY_NOTIFY_VERIFY_FAIL); return RpcUtil.createFailResult(baseParam, RetEnum.RET_BIZ_PAY_NOTIFY_VERIFY_FAIL);
} }
_log.info("{}验证支付通知数据及签名通过", logPrefix); _log.info("{}验证支付通知数据及签名通过", logPrefix);
String trade_status = params.get("trade_status").toString(); // 交易状态 String trade_status = String.valueOf(params.get("trade_status")); // 交易状态
String trade_no = String.valueOf(params.get("trade_no")); // 渠道订单号
// 支付状态成功或者完成 // 支付状态成功或者完成
if (trade_status.equals(PayConstant.AlipayConstant.TRADE_STATUS_SUCCESS) || if (trade_status.equals(PayConstant.AlipayConstant.TRADE_STATUS_SUCCESS) ||
trade_status.equals(PayConstant.AlipayConstant.TRADE_STATUS_FINISHED)) { trade_status.equals(PayConstant.AlipayConstant.TRADE_STATUS_FINISHED)) {
...@@ -72,7 +73,7 @@ public class NotifyPayServiceImpl extends Notify4BasePay implements INotifyPaySe ...@@ -72,7 +73,7 @@ public class NotifyPayServiceImpl extends Notify4BasePay implements INotifyPaySe
payOrder = (PayOrder)payContext.get("payOrder"); payOrder = (PayOrder)payContext.get("payOrder");
byte payStatus = payOrder.getStatus(); // 0:订单生成,1:支付中,-1:支付失败,2:支付成功,3:业务处理完成,-2:订单过期 byte payStatus = payOrder.getStatus(); // 0:订单生成,1:支付中,-1:支付失败,2:支付成功,3:业务处理完成,-2:订单过期
if (payStatus != PayConstant.PAY_STATUS_SUCCESS && payStatus != PayConstant.PAY_STATUS_COMPLETE) { if (payStatus != PayConstant.PAY_STATUS_SUCCESS && payStatus != PayConstant.PAY_STATUS_COMPLETE) {
updatePayOrderRows = super.baseUpdateStatus4Success(payOrder.getPayOrderId()); updatePayOrderRows = super.baseUpdateStatus4Success(payOrder.getPayOrderId(), trade_no);
if (updatePayOrderRows != 1) { if (updatePayOrderRows != 1) {
_log.error("{}更新支付状态失败,将payOrderId={},更新payStatus={}失败", logPrefix, payOrder.getPayOrderId(), PayConstant.PAY_STATUS_SUCCESS); _log.error("{}更新支付状态失败,将payOrderId={},更新payStatus={}失败", logPrefix, payOrder.getPayOrderId(), PayConstant.PAY_STATUS_SUCCESS);
_log.info("{}响应给支付宝结果:{}", logPrefix, PayConstant.RETURN_ALIPAY_VALUE_FAIL); _log.info("{}响应给支付宝结果:{}", logPrefix, PayConstant.RETURN_ALIPAY_VALUE_FAIL);
...@@ -80,6 +81,7 @@ public class NotifyPayServiceImpl extends Notify4BasePay implements INotifyPaySe ...@@ -80,6 +81,7 @@ public class NotifyPayServiceImpl extends Notify4BasePay implements INotifyPaySe
} }
_log.info("{}更新支付状态成功,将payOrderId={},更新payStatus={}成功", logPrefix, payOrder.getPayOrderId(), PayConstant.PAY_STATUS_SUCCESS); _log.info("{}更新支付状态成功,将payOrderId={},更新payStatus={}成功", logPrefix, payOrder.getPayOrderId(), PayConstant.PAY_STATUS_SUCCESS);
payOrder.setStatus(PayConstant.PAY_STATUS_SUCCESS); payOrder.setStatus(PayConstant.PAY_STATUS_SUCCESS);
payOrder.setChannelOrderNo(trade_no);
} }
}else{ }else{
// 其他状态 // 其他状态
...@@ -112,7 +114,7 @@ public class NotifyPayServiceImpl extends Notify4BasePay implements INotifyPaySe ...@@ -112,7 +114,7 @@ public class NotifyPayServiceImpl extends Notify4BasePay implements INotifyPaySe
} }
WxPayService wxPayService = new WxPayServiceImpl(); WxPayService wxPayService = new WxPayServiceImpl();
WxPayOrderNotifyResult result = WxPayOrderNotifyResult.fromXML(xmlResult); WxPayOrderNotifyResult result = WxPayOrderNotifyResult.fromXML(xmlResult);
Map<String, Object> payContext = new HashMap(); Map<String, Object> payContext = new HashMap<>();
payContext.put("parameters", result); payContext.put("parameters", result);
// 验证业务数据是否正确,验证通过后返回PayOrder和WxPayConfig对象 // 验证业务数据是否正确,验证通过后返回PayOrder和WxPayConfig对象
if(!verifyWxPayParams(payContext)) { if(!verifyWxPayParams(payContext)) {
...@@ -126,13 +128,14 @@ public class NotifyPayServiceImpl extends Notify4BasePay implements INotifyPaySe ...@@ -126,13 +128,14 @@ public class NotifyPayServiceImpl extends Notify4BasePay implements INotifyPaySe
// 处理订单 // 处理订单
byte payStatus = payOrder.getStatus(); // 0:订单生成,1:支付中,-1:支付失败,2:支付成功,3:业务处理完成,-2:订单过期 byte payStatus = payOrder.getStatus(); // 0:订单生成,1:支付中,-1:支付失败,2:支付成功,3:业务处理完成,-2:订单过期
if (payStatus != PayConstant.PAY_STATUS_SUCCESS && payStatus != PayConstant.PAY_STATUS_COMPLETE) { if (payStatus != PayConstant.PAY_STATUS_SUCCESS && payStatus != PayConstant.PAY_STATUS_COMPLETE) {
int updatePayOrderRows = super.baseUpdateStatus4Success(payOrder.getPayOrderId()); int updatePayOrderRows = super.baseUpdateStatus4Success(payOrder.getPayOrderId(), result.getTransactionId());
if (updatePayOrderRows != 1) { if (updatePayOrderRows != 1) {
_log.error("{}更新支付状态失败,将payOrderId={},更新payStatus={}失败", logPrefix, payOrder.getPayOrderId(), PayConstant.PAY_STATUS_SUCCESS); _log.error("{}更新支付状态失败,将payOrderId={},更新payStatus={}失败", logPrefix, payOrder.getPayOrderId(), PayConstant.PAY_STATUS_SUCCESS);
return RpcUtil.createBizResult(baseParam, WxPayNotifyResponse.fail("处理订单失败")); return RpcUtil.createBizResult(baseParam, WxPayNotifyResponse.fail("处理订单失败"));
} }
_log.error("{}更新支付状态成功,将payOrderId={},更新payStatus={}成功", logPrefix, payOrder.getPayOrderId(), PayConstant.PAY_STATUS_SUCCESS); _log.error("{}更新支付状态成功,将payOrderId={},更新payStatus={}成功", logPrefix, payOrder.getPayOrderId(), PayConstant.PAY_STATUS_SUCCESS);
payOrder.setStatus(PayConstant.PAY_STATUS_SUCCESS); payOrder.setStatus(PayConstant.PAY_STATUS_SUCCESS);
payOrder.setChannelOrderNo(result.getTransactionId());
} }
// 业务系统后端通知 // 业务系统后端通知
doNotify(payOrder); doNotify(payOrder);
......
...@@ -230,7 +230,7 @@ public class PayOrderServiceImpl extends BaseService implements IPayOrderService ...@@ -230,7 +230,7 @@ public class PayOrderServiceImpl extends BaseService implements IPayOrderService
_log.warn("修改支付订单状态为支付成功失败, {}. jsonParam={}", RetEnum.RET_PARAM_INVALID.getMessage(), jsonParam); _log.warn("修改支付订单状态为支付成功失败, {}. jsonParam={}", RetEnum.RET_PARAM_INVALID.getMessage(), jsonParam);
return RpcUtil.createFailResult(baseParam, RetEnum.RET_PARAM_INVALID); return RpcUtil.createFailResult(baseParam, RetEnum.RET_PARAM_INVALID);
} }
int result = super.baseUpdateStatus4Success(payOrderId); int result = super.baseUpdateStatus4Success(payOrderId, null);
return RpcUtil.createBizResult(baseParam, result); return RpcUtil.createBizResult(baseParam, result);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册