Commit 272e4d50 by xiaoer.li@freemud.com

优化:混合支付 svc卡全额支付 直接核销优惠券

parent 5d6d1c9a
......@@ -68,4 +68,9 @@ public class PaysuccessNoticeMessage {
* 会员规则ID
*/
private String ruleId;
/**
* 消息来源
*/
private Integer source;
}
package cn.freemud.enums;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: cn.freemud.service.thirdparty SvcClient
* @Description: TDO 描述....
* @author: 铁牌灵魂工程师
* @date: 2020/12/01
* @Copyright: www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
public enum PaySuccessSource {
INSIDE(1,"内部直接调用"),
OUTSIDE(2,"外部回调");
private Integer source;
private String desc;
PaySuccessSource(Integer source,String desc) {
this.source = source;
this.desc = desc;
}
public Integer getSource() {
return source;
}
public String getDesc() {
return desc;
}
}
......@@ -528,9 +528,11 @@ public class OrderServiceImpl implements Orderservice {
}
//支付回掉成功标记
redisCache.save(RedisKeyConstant.KGD_PAYMENT_CALLBACK_FMID + message.getOut_trade_no(), message.getOut_trade_no(), 10L, TimeUnit.MINUTES);
log.info("调用券码核销==" + message.getTrans_id());
verificationCoupon(message.getTrans_id());
log.info("调用券码结束=="+ message.getTrans_id());
if (message.getSource().equals(PaySuccessSource.OUTSIDE.getSource())) {
log.info("调用券码核销==" + message.getTrans_id());
verificationCoupon(message.getTrans_id());
log.info("调用券码结束=="+ message.getTrans_id());
}
return sendPaySuccessNoticeMessage();
}
......@@ -602,6 +604,7 @@ public class OrderServiceImpl implements Orderservice {
message.setPlatformMchId(newMessage.getPlatformMchId());
message.setTerminalId(newMessage.getAppId());
message.setRuleId(newMessage.getRuleId());
message.setSource(PaySuccessSource.OUTSIDE.getSource());
String res = orderAdapterService.paySuccessCallback(message);
JSONObject jsonObject = JSONObject.parseObject(res);
if (jsonObject.containsKey("code")) {
......@@ -2300,6 +2303,10 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.success(createOrderResponse);
} else {
//如果是商品券支付0元,调用回调接口
/**
* - 老的svc卡或是0元订单下单成功直接核销 这里不处理
* - 混合支付纯svc支付 需要直接内部核销 其他支付方式需依靠外部回调
*/
PaysuccessNoticeMessage message = new PaysuccessNoticeMessage();
message.setResult_code(100);
message.setOut_trade_no(createOrderResponse.getFmId());
......@@ -2308,6 +2315,10 @@ public class OrderServiceImpl implements Orderservice {
message.setOpenid(createPrepayRequestDto.getOpenId());
message.setPlatform_coupon(0);
message.setMerchant_coupon(0);
message.setSource(PaySuccessSource.INSIDE.getSource());
if (StringUtils.isNotBlank(orderPayResponse.getPayMode()) && PayChannelType.SVC.getEbcode().equals(orderPayResponse.getPayMode())) {
message.setSource(PaySuccessSource.OUTSIDE.getSource());
}
orderAdapterService.paySuccessCallback(message);
return ResponseUtil.success(createOrderResponse);
}
......
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