Просмотр исходного кода

[支付][修改]:调试修复一些分账接口的问题

release_toaliyun_real
hupeng 7 лет назад
Родитель
Сommit
6441324c96
5 измененных файлов: 84 добавлений и 14 удалений
  1. +13
    -2
      mallinkAdmin/src/main/java/com/simple/controller/WxPayOrderController.java
  2. +37
    -0
      mallinkService/src/main/java/com/simple/enums/EnumProfitSharingReceiverType.java
  3. +1
    -1
      mallinkService/src/main/java/com/simple/pay/WxProfitSharing.java
  4. +5
    -0
      mallinkService/src/main/java/com/simple/service/WxProfitSharingOrderService.java
  5. +28
    -11
      mallinkService/src/main/java/com/simple/service/impl/WxProfitSharingOrderServiceImpl.java

+ 13
- 2
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();
}
}

+ 37
- 0
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;
}
}

+ 1
- 1
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";
// 添加分账账户


+ 5
- 0
mallinkService/src/main/java/com/simple/service/WxProfitSharingOrderService.java Просмотреть файл

@@ -42,6 +42,11 @@ public interface WxProfitSharingOrderService {
void deleteById(Long id);


/**
* 临时测试
*/
public void test();

/**
* 创建分账订单
*/


+ 28
- 11
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 <WxProfitSharingResult> resultList = new ArrayList<WxProfitSharingResult>();
for (int i=0;i<=wxProfitSharingReceiverList.size();i++){
for (int i=0;i<wxProfitSharingReceiverList.size();i++){
WxProfitSharingReceiver receiver = wxProfitSharingReceiverList.get(i);
Date currentDate = new Date();
receivers.put("type",receiver.getReceiverType());
receivers.put("acount",receiver.getReceiverAccount());
receivers.put("amount",record.getPayAmount()); //temp: sharing all money with only owner
receivers.put("description",receiver.getReceiverComments());
JSONObject jo = new JSONObject();
jo.put("type",EnumProfitSharingReceiverType.getEnum(receiver.getReceiverType()).getMessage());
jo.put("acount",receiver.getReceiverAccount());
jo.put("amount",record.getPayAmount()); //temp: sharing all money with only owner
jo.put("description",receiver.getReceiverComments());
receivers.add(jo);

WxProfitSharingResult result = new WxProfitSharingResult();

result.setId(idworker.nextId());


Загрузка…
Отмена
Сохранить