Commit d8cab34d by xiaoer.li@freemud.com

Merge remote-tracking branch 'origin/feature/fix-混合支付优化券核销'

parents 6c40a8aa b50bc507
...@@ -68,4 +68,9 @@ public class PaysuccessNoticeMessage { ...@@ -68,4 +68,9 @@ public class PaysuccessNoticeMessage {
* 会员规则ID * 会员规则ID
*/ */
private String ruleId; 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 { ...@@ -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); redisCache.save(RedisKeyConstant.KGD_PAYMENT_CALLBACK_FMID + message.getOut_trade_no(), message.getOut_trade_no(), 10L, TimeUnit.MINUTES);
if (message.getSource().equals(PaySuccessSource.OUTSIDE.getSource())) {
log.info("调用券码核销==" + message.getTrans_id()); log.info("调用券码核销==" + message.getTrans_id());
verificationCoupon(message.getTrans_id()); verificationCoupon(message.getTrans_id());
log.info("调用券码结束=="+ message.getTrans_id()); log.info("调用券码结束=="+ message.getTrans_id());
}
return sendPaySuccessNoticeMessage(); return sendPaySuccessNoticeMessage();
} }
...@@ -602,6 +604,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -602,6 +604,7 @@ public class OrderServiceImpl implements Orderservice {
message.setPlatformMchId(newMessage.getPlatformMchId()); message.setPlatformMchId(newMessage.getPlatformMchId());
message.setTerminalId(newMessage.getAppId()); message.setTerminalId(newMessage.getAppId());
message.setRuleId(newMessage.getRuleId()); message.setRuleId(newMessage.getRuleId());
message.setSource(PaySuccessSource.OUTSIDE.getSource());
String res = orderAdapterService.paySuccessCallback(message); String res = orderAdapterService.paySuccessCallback(message);
JSONObject jsonObject = JSONObject.parseObject(res); JSONObject jsonObject = JSONObject.parseObject(res);
if (jsonObject.containsKey("code")) { if (jsonObject.containsKey("code")) {
...@@ -2300,6 +2303,10 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2300,6 +2303,10 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.success(createOrderResponse); return ResponseUtil.success(createOrderResponse);
} else { } else {
//如果是商品券支付0元,调用回调接口 //如果是商品券支付0元,调用回调接口
/**
* - 老的svc卡或是0元订单下单成功直接核销 这里不处理
* - 混合支付纯svc支付 需要直接内部核销 其他支付方式需依靠外部回调
*/
PaysuccessNoticeMessage message = new PaysuccessNoticeMessage(); PaysuccessNoticeMessage message = new PaysuccessNoticeMessage();
message.setResult_code(100); message.setResult_code(100);
message.setOut_trade_no(createOrderResponse.getFmId()); message.setOut_trade_no(createOrderResponse.getFmId());
...@@ -2308,6 +2315,10 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2308,6 +2315,10 @@ public class OrderServiceImpl implements Orderservice {
message.setOpenid(createPrepayRequestDto.getOpenId()); message.setOpenid(createPrepayRequestDto.getOpenId());
message.setPlatform_coupon(0); message.setPlatform_coupon(0);
message.setMerchant_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); orderAdapterService.paySuccessCallback(message);
return ResponseUtil.success(createOrderResponse); return ResponseUtil.success(createOrderResponse);
} }
...@@ -3198,7 +3209,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3198,7 +3209,7 @@ public class OrderServiceImpl implements Orderservice {
String ebCode = this.getPayCodeByChanel(paymentRequest.getWxAppId(), channel, storeId); String ebCode = this.getPayCodeByChanel(paymentRequest.getWxAppId(), channel, storeId);
OrderPayResponse orderPayResponse = new OrderPayResponse();; OrderPayResponse orderPayResponse = new OrderPayResponse();;
if (StringUtils.isBlank(ebCode)) { if (StringUtils.isBlank(ebCode)) {
orderPayResponse.setMsg("渠道码没有配置"); orderPayResponse.setMsg("请先联系相关人员配置商户对应的支付渠道");
return orderPayResponse; return orderPayResponse;
} }
...@@ -3235,7 +3246,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3235,7 +3246,7 @@ public class OrderServiceImpl implements Orderservice {
.orElse(null); .orElse(null);
//现金+svc 现金 //现金+svc 现金
if (payPlatforms.size()==2 || payPlatforms.size()==1 && cashPay!=null) { if (payPlatforms.size()==2 || (payPlatforms.size()==1 && cashPay!=null)) {
orderPayResponse = orderAdapter.convent2OrderCombPayResponse(combPayResponse.getData().getPayPlatformResponseList(),orderBean.getCompanyId(),storeId); orderPayResponse = orderAdapter.convent2OrderCombPayResponse(combPayResponse.getData().getPayPlatformResponseList(),orderBean.getCompanyId(),storeId);
orderPayResponse.setOpenId(paymentRequest.getOpenId()); orderPayResponse.setOpenId(paymentRequest.getOpenId());
orderPayResponse.setWxAppid(paymentRequest.getWxAppId()); orderPayResponse.setWxAppid(paymentRequest.getWxAppId());
......
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