From 6441324c9610c30fbe0b28c7ec9a44c259aa6469 Mon Sep 17 00:00:00 2001 From: hupeng Date: Fri, 17 Aug 2018 20:15:21 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=94=AF=E4=BB=98][=E4=BF=AE=E6=94=B9]:?= =?UTF-8?q?=E8=B0=83=E8=AF=95=E4=BF=AE=E5=A4=8D=E4=B8=80=E4=BA=9B=E5=88=86?= =?UTF-8?q?=E8=B4=A6=E6=8E=A5=E5=8F=A3=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WxPayOrderController.java | 15 ++++++- .../enums/EnumProfitSharingReceiverType.java | 37 ++++++++++++++++++ .../java/com/simple/pay/WxProfitSharing.java | 2 +- .../service/WxProfitSharingOrderService.java | 5 +++ .../impl/WxProfitSharingOrderServiceImpl.java | 39 +++++++++++++------ 5 files changed, 84 insertions(+), 14 deletions(-) create mode 100644 mallinkService/src/main/java/com/simple/enums/EnumProfitSharingReceiverType.java diff --git a/mallinkAdmin/src/main/java/com/simple/controller/WxPayOrderController.java b/mallinkAdmin/src/main/java/com/simple/controller/WxPayOrderController.java index 80ce946a9..6a3ce5167 100644 --- a/mallinkAdmin/src/main/java/com/simple/controller/WxPayOrderController.java +++ b/mallinkAdmin/src/main/java/com/simple/controller/WxPayOrderController.java @@ -1,5 +1,6 @@ package com.simple.controller; +import com.simple.service.WxProfitSharingOrderService; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.Assert; @@ -66,7 +67,17 @@ public class WxPayOrderController extends BaseController public ResultData findById(Long id) { return new ResultData(Result.SUCCESS,"查询成功",wxPayOrderService.getById(id)); } - - + + + + @Autowired + private WxProfitSharingOrderService xProfitSharingOrderService; + + @ApiOperation("测试分账") + @GetMapping("/sharing") + public ResultData test() { + xProfitSharingOrderService.test(); + return new ResultData(); + } } diff --git a/mallinkService/src/main/java/com/simple/enums/EnumProfitSharingReceiverType.java b/mallinkService/src/main/java/com/simple/enums/EnumProfitSharingReceiverType.java new file mode 100644 index 000000000..09fa151da --- /dev/null +++ b/mallinkService/src/main/java/com/simple/enums/EnumProfitSharingReceiverType.java @@ -0,0 +1,37 @@ +package com.simple.enums; + +/** + * Created by Stormeye on 2018/08/09. + */ +public enum EnumProfitSharingReceiverType { + PROFIT_SHARING_RECEIVER_MERCHANT_ID(1, "MERCHANT_ID"), + PROFIT_SHARING_RECEIVER_PERSONAL_WECHATID(2, "PERSONAL_WECHATID"), + PROFIT_SHARING_RECEIVER_PERSONAL_OPENID(3, "PERSONAL_OPENID"), + PROFIT_SHARING_RECEIVER_PERSONAL_SUB_OPENID(4, "PERSONAL_SUB_OPENID"), + ; + + public static EnumProfitSharingReceiverType getEnum(Integer code) { + for (EnumProfitSharingReceiverType value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumProfitSharingReceiverType(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } +} diff --git a/mallinkService/src/main/java/com/simple/pay/WxProfitSharing.java b/mallinkService/src/main/java/com/simple/pay/WxProfitSharing.java index 348761f4f..a308ad0c6 100644 --- a/mallinkService/src/main/java/com/simple/pay/WxProfitSharing.java +++ b/mallinkService/src/main/java/com/simple/pay/WxProfitSharing.java @@ -11,7 +11,7 @@ public class WxProfitSharing { protected static Logger log = LoggerFactory.getLogger(WxProfitSharing.class); // 分账接口 - private static final String PROFIT_SHARING_URL = "https://api.mch.weixin.qq.com/secapi/pay/profitsharing "; + private static final String PROFIT_SHARING_URL = "https://api.mch.weixin.qq.com/secapi/pay/profitsharing"; // 查询接口 private static final String PROFIT_SHARING_QUERY_URL = "https://api.mch.weixin.qq.com/pay/profitsharingquery"; // 添加分账账户 diff --git a/mallinkService/src/main/java/com/simple/service/WxProfitSharingOrderService.java b/mallinkService/src/main/java/com/simple/service/WxProfitSharingOrderService.java index 819e19584..256ef1b31 100644 --- a/mallinkService/src/main/java/com/simple/service/WxProfitSharingOrderService.java +++ b/mallinkService/src/main/java/com/simple/service/WxProfitSharingOrderService.java @@ -42,6 +42,11 @@ public interface WxProfitSharingOrderService { void deleteById(Long id); + /** + * 临时测试 + */ + public void test(); + /** * 创建分账订单 */ diff --git a/mallinkService/src/main/java/com/simple/service/impl/WxProfitSharingOrderServiceImpl.java b/mallinkService/src/main/java/com/simple/service/impl/WxProfitSharingOrderServiceImpl.java index 6449ed5e0..ac475f67f 100644 --- a/mallinkService/src/main/java/com/simple/service/impl/WxProfitSharingOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/simple/service/impl/WxProfitSharingOrderServiceImpl.java @@ -3,6 +3,7 @@ package com.simple.service.impl; import java.util.*; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -10,6 +11,7 @@ import com.simple.common.ErrorCode; import com.simple.common.ResultData; import com.simple.domain.po.*; import com.simple.enums.EnumPayDomain; +import com.simple.enums.EnumProfitSharingReceiverType; import com.simple.enums.EnumProfitSharingStatus; import com.simple.exception.MallinkException; import com.simple.mapper.*; @@ -48,7 +50,7 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ - JSONObject errorMap = JSON.parseObject( + final JSONObject errorMap = JSON.parseObject( "{\"SYSTEMERROR\":{\"detail\":\"接口返回错误\",\"reason\":\"系统超时\",\"resolution\":\"系统异常,请用相同参数重新调用\"}," + "\"AMOUNT_OVERDUE\":{\"detail\":\"分账金额超限\",\"reason\":\"分账金额大于可分金额 或大于分账最大比例 \",\"resolution\":\"请调整分账金额\"}," + "\"RECEIVER_INVALID\":{\"detail\":\"分账接收方非法 \",\"reason\":\"未配置分账接收方\",\"resolution\":\"分账接收方在分账之前需要进行添加\"}," + @@ -88,6 +90,14 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ wxProfitSharingOrderMapper.deleteByPrimaryKey(id); } + @Autowired + WxPayOrderMapper wxPayOrderMapper; + + @Override + public void test() { + createSharingOrder(wxAppinfoMapper.selectByPrimaryKey(new Long(1L)),wxPayOrderMapper.selectByPrimaryKey(new Long(190403470006681600L))); + } + @Override public ResultData createSharingOrder(WxAppinfo subAppInfo, WxPayOrder wxPayOrder) { final IdWorker idworker = IdWorker.get(); @@ -101,8 +111,10 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ if (record == null) { //创建分账订单 Date currentDate = new Date(); + record = new WxProfitSharingOrder(); record.setId(idworker.nextId()); record.setTenantId(wxPayOrder.getTenantId()); + record.setTransactionId(wxPayOrder.getTransactionId()); record.setOrderId(wxPayOrder.getId().toString()); record.setPayAmount(wxPayOrder.getPayAmount()); record.setMerchantId(wxOrder.getMerchantId().toString()); @@ -115,13 +127,15 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ } WxPayAccount payAccount = wxPayAccountMapper.selectByPrimaryKey(subAppInfo.getPayId()); - WxPayAccount mainPayAccount = wxPayAccountMapper.selectByPrimaryKey(EnumPayDomain.PAY_DOMAIN_MASTER_ACCOUNT_ID.getCode()); - WxAppinfo mainAppInfo = wxAppinfoMapper.selectByPrimaryKey(EnumPayDomain.PAY_DOMAIN_MASTER_APPINFO_ID.getCode()); + //WxPayAccount mainPayAccount = wxPayAccountMapper.selectByPrimaryKey(new Long(EnumPayDomain.PAY_DOMAIN_MASTER_ACCOUNT_ID.getCode())); + //WxAppinfo mainAppInfo = wxAppinfoMapper.selectByPrimaryKey(new Long(EnumPayDomain.PAY_DOMAIN_MASTER_APPINFO_ID.getCode())); //分账提交 WxProfitSharingP wxProfitSharingP = new WxProfitSharingP(); - wxProfitSharingP.setAppid(mainAppInfo.getAppId()); - wxProfitSharingP.setMch_id(mainPayAccount.getMchId()); + //wxProfitSharingP.setAppid(mainAppInfo.getAppId()); + //wxProfitSharingP.setMch_id(mainPayAccount.getMchId()); + wxProfitSharingP.setAppid(subAppInfo.getAppId()); + wxProfitSharingP.setMch_id(payAccount.getMchId()); wxProfitSharingP.setSub_appid(subAppInfo.getAppId()); wxProfitSharingP.setSub_mch_id(payAccount.getMchId()); wxProfitSharingP.setNonce_str(Utility.generate32UUID()); @@ -136,15 +150,18 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ if (wxProfitSharingReceiverList.size()<=0 || wxProfitSharingReceiverList.size() > 50) { throw new MallinkException(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID.getCode(), ErrorCode.PROFIT_SHARING_RECEIVER_INVALID.getMessage()); } - JSONObject receivers = new JSONObject(); + JSONArray receivers = new JSONArray(); List resultList = new ArrayList(); - for (int i=0;i<=wxProfitSharingReceiverList.size();i++){ + for (int i=0;i