From e73544eeb4a1fb15cc3d293fcbd04a759f957117 Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Sat, 3 Sep 2022 19:25:42 +0800 Subject: [PATCH] fix pay v3 --- .../impl/WxProfitSharingOrderServiceImpl.java | 24 +++++++++++-------- .../share/PayShareBaseAdapterService.java | 1 + 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java index 1ed4739cc..51b3723c7 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java @@ -160,21 +160,25 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ PayShareResult shareResult = null; JSONArray jsonArray = null; JSONArray recordJsonArray = null; - //总分模式,收款账户分账 - if (EnumPayMchType.TOTAL.getCode() == payOrder.getMchType()) { - if(StringUtils.isNotBlank(sharingOrder.getReceivers())){ - jsonArray = JSONArray.parseArray(sharingOrder.getReceivers()); - recordJsonArray = JSONArray.parseArray(sharingOrder.getReceivers()); - } - //直连模式,不用分账,直接完结分账 - }else if (EnumPayMchType.DIRECT.getCode() == payOrder.getMchType()) { + + if(StringUtils.isNotBlank(sharingOrder.getReceivers())){ + jsonArray = JSONArray.parseArray(sharingOrder.getReceivers()); + recordJsonArray = JSONArray.parseArray(sharingOrder.getReceivers()); + } + + //直连模式 + if (EnumPayMchType.DIRECT.getCode() == payOrder.getMchType()) { //当前商户的收款账号,为了加上收款记录 WxProfitSharingReceiver receiver = payShareAdapterService.getReceiver(sharingOrder, sharingOrder.getMerchantId(), payOrder.getTtPayWay(), payOrder.getMchType()); if (null == receiver) { return new ResultData(ErrorCode.PROFIT_SHARING_REQUEST_FAILED.getCode(),"当前商户未配置收款账号"); } - StringBuffer sb = new StringBuffer("[{").append("\"description\":").append(receiver.getId()).append(",\"amount\":").append(sharingOrder.getPayAmount()); - recordJsonArray = JSONArray.parseArray(sb.toString()); + StringBuffer sb = new StringBuffer("{").append("\"description\":").append(receiver.getId()).append(",\"amount\":").append(sharingOrder.getPayAmount()).append("}"); + if (null == recordJsonArray) { + recordJsonArray = JSONArray.parseArray("["+sb.toString()+"]"); + }else { + recordJsonArray.add(JSON.parseObject(sb.toString())); + } } List resultList = new ArrayList(); diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/share/PayShareBaseAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/share/PayShareBaseAdapterService.java index 95454e6df..1f352ef59 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/share/PayShareBaseAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/share/PayShareBaseAdapterService.java @@ -134,6 +134,7 @@ public abstract class PayShareBaseAdapterService implements PayShareAdapterServi return receivers.toJSONString(); } + protected ShareAccountResult _createShareAccount(WxAppinfo appInfo,WxPayAccount payAccount,WxProfitSharingReceiver receiver) { WxProfitSharingReceiverP wxProfitSharingReceiverP = new WxProfitSharingReceiverP(); if (StringUtils.isNotBlank(appInfo.getParentAppId())) {