分账 fix bug

This commit is contained in:
Jack 2025-06-12 11:32:04 +08:00
parent 24e26480f9
commit c665492023
3 changed files with 38 additions and 23 deletions

View File

@ -516,21 +516,30 @@ public class PayUserPayServiceImpl extends BaseServiceImpl<PayUserPayMapper, Pay
*
* @param request
* @param response
* @param trade_row
* @param payConsumeTrade
*/
public void wxJSAPIPay(HttpServletRequest request, HttpServletResponse response, PayConsumeTrade trade_row, String openId, String appid) {
public void wxJSAPIPay(HttpServletRequest request, HttpServletResponse response, PayConsumeTrade payConsumeTrade, String openId, String appid) {
// 商户订单号
String out_trade_no = trade_row.getOrder_id();
String subject = trade_row.getTrade_title();
String detail = ObjectUtil.defaultIfNull(trade_row.getTrade_desc(), "");
String trade_remark = ObjectUtil.defaultIfNull(trade_row.getTrade_remark(), "");
String out_trade_no = payConsumeTrade.getOrder_id();
String subject = payConsumeTrade.getTrade_title();
String detail = ObjectUtil.defaultIfNull(payConsumeTrade.getTrade_desc(), "");
String trade_remark = ObjectUtil.defaultIfNull(payConsumeTrade.getTrade_remark(), "");
// 付款金额
BigDecimal trade_payment_amount = trade_row.getTrade_payment_amount();
BigDecimal trade_payment_amount = payConsumeTrade.getTrade_payment_amount();
String total_fee = StrUtil.toString(NumberUtil.mul(NumberUtil.round(trade_payment_amount, 2), 100).intValue());
String ip = IpKit.getRealIp(request);
WxPayApiConfig wxPayApiConfig = WxPayApiConfigKit.getWxPayApiConfig();
String domain = wxPayApiConfig.getDomain();
// 更新消费支付交易记录 关键字段 appid mchid openid
payConsumeTrade.setApp_id(appid);
payConsumeTrade.setMch_id(wxPayApiConfig.getMchId());
payConsumeTrade.setOpen_id(openId);
payConsumeTradeService.updateTradeByStoreAndOrderId(payConsumeTrade);
Map<String, String> params = UnifiedOrderModel.builder()
.appid(appid)
.mch_id(wxPayApiConfig.getMchId())
@ -559,11 +568,13 @@ public class PayUserPayServiceImpl extends BaseServiceImpl<PayUserPayMapper, Pay
setResponseBody(response, data);
return;
}
String resultCode = resultMap.get("result_code");
if (!WxPayKit.codeIsOk(resultCode)) {
setResponseBody(response, data);
return;
}
String prepayId = resultMap.get("prepay_id");
Map<String, Object> packageParams = Convert.toMap(String.class, Object.class, WxPayKit.prepayIdCreateSign(prepayId, appid, wxPayApiConfig.getPartnerKey(), SignType.HMACSHA256));
data.put("status", 200);
@ -572,7 +583,7 @@ public class PayUserPayServiceImpl extends BaseServiceImpl<PayUserPayMapper, Pay
result.put("statusCode", 200);
data.put("data", result);
logger.info("老流程调起支付的参数:{}", JSONUtil.toJsonStr(data));
logger.info("原生微信调起支付的参数:{}", JSONUtil.toJsonStr(data));
setResponseBody(response, data);
}
@ -602,7 +613,7 @@ public class PayUserPayServiceImpl extends BaseServiceImpl<PayUserPayMapper, Pay
Integer storeId = payConsumeTrade.getStore_id();
// 更新消费支付交易记录
// 更新消费支付交易记录 关键字段 appid mchid openid
payConsumeTrade.setApp_id(appId);
payConsumeTrade.setMch_id(wxPayApiConfig.getMchId());
payConsumeTrade.setOpen_id(openId);
@ -628,7 +639,7 @@ public class PayUserPayServiceImpl extends BaseServiceImpl<PayUserPayMapper, Pay
notifyUrl,
requestIP, trade_remark);
// logger.info("拉卡拉预支付返回参数:{}", JSONUtil.toJsonStr(field));
// logger.debug("拉卡拉预支付返回参数:{}", JSONUtil.toJsonStr(field));
if (lakalaRespJSON == null || !lakalaRespJSON.getStr("code").equals("BBS00000")) {
data.put("message", lakalaRespJSON.getStr("msg"));
@ -653,7 +664,7 @@ public class PayUserPayServiceImpl extends BaseServiceImpl<PayUserPayMapper, Pay
data.put("data", result);
data.put("message", "OK");
logger.info("拉卡拉调起支付的参数:{}", JSONUtil.toJsonStr(data));
logger.debug("拉卡拉调起支付的参数:{}", JSONUtil.toJsonStr(data));
setResponseBody(response, data);
}

View File

@ -4854,7 +4854,7 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
}
// 重要拉卡拉给平台和代理商分账
Pair<Boolean, String> retOrderSeparateRet = lakalaApiService.innerDoOrderSeparate(order_row.getOrder_id(), Convert.toStr(order_row.getOrder_state_id()));
Pair<Boolean, String> retOrderSeparateRet = lakalaApiService.innerDoOrderSeparate(order_row.getOrder_id(), Convert.toStr(order_row.getStore_id()));
if (!retOrderSeparateRet.getFirst()) {
throw new ApiException(I18nUtil._("平台或代理商分账失败: " + retOrderSeparateRet.getSecond()));
}

View File

@ -253,20 +253,24 @@ public class ShopOrderLklServiceImpl extends BaseServiceImpl<ShopOrderLklMapper,
@Override
public List<ShopOrderLkl> selectByOrderId(String orderId, String lklLogNo, String storeId) {
if (StringUtils.isBlank(orderId)) {
return null;
return CollectionUtil.newArrayList();
}
try {
QueryWrapper<ShopOrderLkl> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("order_id", orderId).orderByAsc("id");
if (StrUtil.isNotBlank(lklLogNo)) {
queryWrapper.eq("lkl_log_no", lklLogNo);
}
if (StrUtil.isNotBlank(storeId)) {
queryWrapper.eq("store_id", storeId);
}
return list(queryWrapper);
List<ShopOrderLkl> result = list(queryWrapper);
return CollectionUtil.isEmpty(result) ? CollectionUtil.newArrayList() : result;
} catch (Exception e) {
log.error("selectByOrderId 查询异常, orderId: {}, lklLogNo: {}, storeId: {}", orderId, lklLogNo, storeId, e);
return CollectionUtil.newArrayList();
}
}
}