记得上下班打卡 | git大法好,push需谨慎

Commit fd338d8d authored by zhoujianping's avatar zhoujianping

1.支付宝小程序退款接口增加回调地址修改

parent a35c62ab
......@@ -101,7 +101,12 @@ public class PayChannelStrategyAlipayImpl extends AbstractPayChannelStrategyImpl
//退款
if(notifyMap.containsKey("refund_fee") || notifyMap.containsKey("gmt_refund") || notifyMap.containsKey("out_biz_no")) {
returnStr = dragonOrderRefundsService.aliPayRefundCallBack(JSON.toJSONString(notifyMap),payType,deviceFrom);
//小程序退款不需要退款回调,手动修改退款状态
if(!(payType.equals(DragonConstant.PayChannelEnum.ALIPAY.getCode()) && deviceFrom.equals(DragonConstant.DeviceFromEnum.APPLET.getCode()))){
returnStr = dragonOrderRefundsService.aliPayRefundCallBack(JSON.toJSONString(notifyMap),null);
}else {
returnStr="success";
}
return returnStr;
}
......
......@@ -44,6 +44,7 @@ import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.Map;
......@@ -71,6 +72,8 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
private String unionMerchantId;
@Autowired
private UnionpayBiz unionpayBiz;
@Autowired
private DragonOrderRefundsServiceImpl dragonOrderRefundsService;
@Override
public ResponseDto<DragonRefundAppDto> dragonRefund(String orderCode, String code, String orderRefundCode, String reason, String notifyUrl, BigDecimal price, String paymentType, String paymentId, BigDecimal priceTotal) {
......@@ -576,7 +579,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
// 修改退款订单
mqHandleUtil.sendMySqlRedis(
SqlMapping.get("dragon_order_refund_error.update"),
new Object[]{nowTime, refundError, refundStatus, code},
new Object[]{nowTime, refundError, refundStatus, refundCode},
DragonConstant.MysqlRedisQueueEnum.DRAGON_REFUND_KEY.getCode()
);
} catch (Exception e) {
......@@ -613,12 +616,23 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
} else {
refundStatus = DragonConstant.RefundStatusEnum.STATUS_REFUNDING.getCode();
}
log.info("支付宝退款成功code={},refundStatus={}",code,refundStatus);
mqHandleUtil.sendMySqlRedis(
SqlMapping.get("dragon_order_refund_success.update"),
new Object[]{nowTime, refundAt, refundStatus, code},
DragonConstant.MysqlRedisQueueEnum.DRAGON_REFUND_KEY.getCode()
);
log.info("支付宝退款成功refundCode{},refundStatus={}",refundCode,refundStatus);
//支付宝小程序全额退款不会异步通知
if(paymentType.equals(DragonConstant.REFUND_TYPE_APPLET_ALIPAY)){
AliPayRefundReturnCallBackDto aliPayRefundReturnCallBackDto = new AliPayRefundReturnCallBackDto();
aliPayRefundReturnCallBackDto.setOutTradeNo(code);
aliPayRefundReturnCallBackDto.setTradeNo(response.getTradeNo());
aliPayRefundReturnCallBackDto.setOutBizNo(refundCode);
//手动触发通知
dragonOrderRefundsService.aliPayRefundCallBack(JSON.toJSONString(aliPayRefundReturnCallBackDto),paymentType);
}else {
mqHandleUtil.sendMySqlRedis(
SqlMapping.get("dragon_order_refund_success.update"),
new Object[]{nowTime, refundAt, refundStatus, refundCode},
DragonConstant.MysqlRedisQueueEnum.DRAGON_REFUND_KEY.getCode()
);
}
} catch (Exception e) {
e.printStackTrace();
channelDto.setResult("exception");
......@@ -917,7 +931,6 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
dto.setRefundCode(response.getOutTradeNo());
dto.setRefundPrice(response.getRefundAmount());
dto.setRefundAt(DateUtil.Formatter.yyyyMMddHHmmss.format(LocalDateTime.now()));
dto.setRefundPrice(response.getRefundAmount());
dto.setRefundError("");
sendNotifyUrl(dto, callBackUrl);
......@@ -951,7 +964,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
return null;
}
public String aliPayRefundCallBack(String jsonStr,String payType,String deviceFrom) {
public String aliPayRefundCallBack(String jsonStr,String paymentType) {
LocalDateTime nowTime = LocalDateTime.now();
try {
AliPayRefundReturnCallBackDto callBackDto = JsonUtils.fromJson(jsonStr, AliPayRefundReturnCallBackDto.class);
......@@ -961,12 +974,11 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
"\"trade_no\":\"" + callBackDto.getTradeNo() + "\"," +
"\"out_request_no\":\"" + callBackDto.getOutBizNo() + "\"}"); //设置业务参数
AlipayClient httpClient=null;
if(payType.equals(DragonConstant.PayChannelEnum.ALIPAY.getCode()) && deviceFrom.equals(DragonConstant.DeviceFromEnum.APPLET.getCode())){
//支付小程序
httpClient=PayAlipayUtils.getInstance().getHttpClientApplet();
}else {
httpClient=PayAlipayUtils.getInstance().getHttpClient();
}
if(null!=paymentType && paymentType.equals(DragonConstant.REFUND_TYPE_APPLET_ALIPAY)){
httpClient=PayAlipayUtils.getInstance().getHttpClientApplet();
}else {
httpClient=PayAlipayUtils.getInstance().getHttpClient();
}
AlipayTradeFastpayRefundQueryResponse response = httpClient.execute(request);
log.info("AlipayTradeFastpayRefundQueryRequest -> data = " + JSON.toJSONString(response));
......@@ -982,7 +994,6 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
dto.setRefundCode(response.getOutTradeNo());
dto.setRefundPrice(response.getRefundAmount());
dto.setRefundAt(callBackDto.getGmtRefund());
dto.setRefundPrice(response.getRefundAmount());
dto.setRefundError("");
sendNotifyUrl(dto, null);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment