Browse Source

新账通接入

multiwx
dy-hu 3 months ago
parent
commit
47774470f1
  1. 84
      cereshop-admin/src/main/java/com/shop/cereshop/admin/pay/hnapay/HnaPayService.java
  2. 265
      cereshop-admin/src/main/java/com/shop/cereshop/admin/pay/hnapay/impl/HnaPayServiceImpl.java
  3. 7
      cereshop-app/pom.xml
  4. 28
      cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/service/impl/HnaPayServiceImpl.java
  5. 77
      cereshop-business/src/main/java/com/shop/cereshop/business/controller/HnaPayController.java
  6. 96
      cereshop-business/src/main/java/com/shop/cereshop/business/pay/hnapay/HnaPayService.java
  7. 298
      cereshop-business/src/main/java/com/shop/cereshop/business/pay/hnapay/impl/HnaPayServiceImpl.java
  8. 6
      cereshop-commons/pom.xml
  9. 7
      cereshop-commons/src/main/java/com/shop/cereshop/commons/config/HnaPayConfig.java
  10. 4
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/BaseTransForm.java
  11. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/F001TransForm.java
  12. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/Q001TransForm.java
  13. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/Q002TransForm.java
  14. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/Q003TransForm.java
  15. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/Q004TransForm.java
  16. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/Q006TransForm.java
  17. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/Q007TransForm.java
  18. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/Q008TransForm.java
  19. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/Q009TransForm.java
  20. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/R001TransForm.java
  21. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/R002TransForm.java
  22. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/R003TransForm.java
  23. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/R004TransForm.java
  24. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/R007TransForm.java
  25. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/R008TransForm.java
  26. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/R009TransForm.java
  27. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/R010TransForm.java
  28. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/R011TransForm.java
  29. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/R012TransForm.java
  30. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/R013TransForm.java
  31. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/R014TransForm.java
  32. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/R015TransForm.java
  33. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T002TransForm.java
  34. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T003TransForm.java
  35. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T004TransForm.java
  36. 3
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T005TransForm.java
  37. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T006TransForm.java
  38. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T007TransForm.java
  39. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T008TransForm.java
  40. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T009TransForm.java
  41. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T010TransForm.java
  42. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T011TransForm.java
  43. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T012TransForm.java
  44. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T013TransForm.java
  45. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T019TransForm.java
  46. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T020TransForm.java
  47. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T021TransForm.java
  48. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T022TransForm.java
  49. 4
      cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/init/InitForm.java
  50. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/utils/hnapay/Base64Util.java
  51. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/utils/hnapay/HexStringByte.java
  52. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/utils/hnapay/HnaPayDateUtils.java
  53. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/utils/hnapay/HnapaySign.java
  54. 6
      cereshop-commons/src/main/java/com/shop/cereshop/commons/utils/hnapay/HttpClientUtils.java
  55. 6
      cereshop-commons/src/main/java/com/shop/cereshop/commons/utils/hnapay/HttpUtils.java
  56. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/utils/hnapay/HttpsTransport.java
  57. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/utils/hnapay/JsonUtils.java
  58. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/utils/hnapay/KeyUtils.java
  59. 2
      cereshop-commons/src/main/java/com/shop/cereshop/commons/utils/hnapay/RSAAlgorithms.java

84
cereshop-admin/src/main/java/com/shop/cereshop/admin/pay/hnapay/HnaPayService.java

@ -0,0 +1,84 @@
package com.shop.cereshop.admin.pay.hnapay;
import com.shop.cereshop.admin.pay.PayService;
import com.shop.cereshop.commons.exception.CoBusinessException;
import java.math.BigDecimal;
import java.util.Map;
/**
* 描述
*
* @author stevenhu
* @version 2025/02/18 9:27
*/
public interface HnaPayService extends PayService {
/**
* 企业开户
* @param entId 企业id
* @param userName 企业名称
* @param mobile 企业联系人手机号
* @param certNo 营业执照号(统一社会信用代码)
* @param certValidate 证件有效期 格式YYYYMMDD 永久则输入21990101
* @param cardNo 银行卡号
* @param bankCode 银行简码
* @param province 开户行所属省份
* @param city 开户行所属城市
* @param branch 开户支行
* @return
*/
Map<String,Object> createEntAccount(Long entId, String userName, String mobile, String certNo, String certValidate, String cardNo,
String bankCode, String province, String city, String branch);
/**
* 企业开户上传资料
* @param userId 开户返回的userId
* @param certFileType
* 1-身份证正面企业必传
* 2-身份证反面企业必传
* 3-法人身份证手持非必传
* 4-营业执照企业必传
* 5-其他非必传
* 6-其他非必传
* 7-开户许可证企业必传
* @param base64 上传图片base64为
* @return
*/
Map<String,Object> uploadEntFile(String userId,String certFileType, String base64);
/**
* 企业开户修改
* @param userId 开户返回的userId
* @param certNo 营业执照号(统一社会信用代码)
* @param userName 企业名称
* @param mobile 企业联系人手机号
* @param certValidate 证件有效期 格式YYYYMMDD 永久则输入21990101
* @return
*/
Map<String,Object> modifyEntAccount(String userId, String certNo, String userName, String mobile, String certValidate);
/**
* 企业换卡
* @param userId 开户返回的用户编号
* @param bindCardAgrNo 原绑卡协议号 开户接口返回
* @param mobile 银行预留手机号
* @param cardNo 银行卡号
* @param bankCode 银行简码
* @param province 开户行所属省份
* @param city 开户行所属城市
* @param branch 开户支行
* @return
*/
Map<String,Object> changeEntCard(String userId, String bindCardAgrNo, String mobile, String cardNo, String bankCode, String province, String city, String branch);
/**
* 提现
* @return
* @throws CoBusinessException
*/
String getMoney(Long businessId, String orderFormid,
String tradeType, BigDecimal money) throws CoBusinessException;
}

265
cereshop-admin/src/main/java/com/shop/cereshop/admin/pay/hnapay/impl/HnaPayServiceImpl.java

@ -0,0 +1,265 @@
package com.shop.cereshop.admin.pay.hnapay.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.google.gson.Gson;
import com.shop.cereshop.admin.dao.order.CereOrderProductDAO;
import com.shop.cereshop.admin.dao.order.CereShopOrderDAO;
import com.shop.cereshop.admin.dao.shop.CereShopBankDAO;
import com.shop.cereshop.admin.page.business.Business;
import com.shop.cereshop.admin.page.business.BusinessGetAll;
import com.shop.cereshop.admin.pay.hnapay.HnaPayService;
import com.shop.cereshop.admin.service.business.CerePlatformBusinessService;
import com.shop.cereshop.admin.service.shop.CerePlatformShopService;
import com.shop.cereshop.commons.config.HnaPayConfig;
import com.shop.cereshop.commons.constant.WxPayEnum;
import com.shop.cereshop.commons.domain.business.CerePlatformBusiness;
import com.shop.cereshop.commons.domain.order.CereOrderParent;
import com.shop.cereshop.commons.domain.order.CereOrderProduct;
import com.shop.cereshop.commons.domain.order.CereShopOrder;
import com.shop.cereshop.commons.domain.shop.CerePlatformShop;
import com.shop.cereshop.commons.domain.shop.CereShopBank;
import com.shop.cereshop.commons.exception.CoBusinessException;
import com.shop.cereshop.commons.request.hnapay.form.*;
import com.shop.cereshop.commons.request.hnapay.init.InitForm;
import com.shop.cereshop.commons.utils.EmptyUtils;
import com.shop.cereshop.commons.utils.hnapay.HttpUtils;
import com.shop.cereshop.commons.utils.hnapay.JsonUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 描述
*
* @author stevenhu
* @version 2025/02/18 9:29
*/
@Service(value = "HnaPayService")
@Slf4j
public class HnaPayServiceImpl implements HnaPayService {
@Autowired
private CereShopOrderDAO cereShopOrderDAO;
@Autowired
private CereOrderProductDAO cereOrderProductDAO;
@Autowired
private CerePlatformBusinessService cerePlatformBusinessService;
@Autowired
private CerePlatformShopService cerePlatformShopService;
@Autowired
private CereShopBankDAO cereShopBankDAO;
@Override
public Map<String, Object> createEntAccount(Long entId, String userName, String mobile, String certNo, String certValidate, String cardNo, String bankCode, String province, String city, String branch) {
String result = "";
R001TransForm transForm = new R001TransForm();
transForm.setTranCode("R001");
transForm.initCommonParams("R001");
transForm.setSubmitUrl(InitForm.R001_SUBMIT_URL);
transForm.setMerUserId("ent_" + entId);
transForm.setUserName(userName);
transForm.setMobile(mobile);
transForm.setCertType("2");
transForm.setCertNo(certNo);
transForm.setCertValidate(certValidate);
transForm.setCardNo(cardNo);
transForm.setBankCode(bankCode);
transForm.setProvince(province);
transForm.setCity(city);
transForm.setBranch(branch);
transForm.setNotifyServerUrl(HnaPayConfig.EXAMINE_NOTICE_URL);
try {
result = HttpUtils.commonReq(transForm, false);
} catch (Exception e) {
e.printStackTrace();
}
Map<String,Object> responseMap = JsonUtils.jsonToMap(result);
return responseMap;
}
@Override
public Map<String, Object> uploadEntFile(String userId, String certFileType, String base64) {
String result = "";
R003TransForm transForm = new R003TransForm();
transForm.setTranCode("R003");
transForm.initCommonParams("R003");
transForm.setSubmitUrl(InitForm.R003_SUBMIT_URL);
transForm.setUserId(userId);
transForm.setCertFileType(certFileType);
transForm.setCertInfo(base64);
try {
result = HttpUtils.commonReq(transForm, true);
} catch (Exception e) {
e.printStackTrace();
}
Map<String,Object> responseMap = JsonUtils.jsonToMap(result);
return responseMap;
}
@Override
public Map<String, Object> modifyEntAccount(String userId, String certNo, String userName, String mobile, String certValidate) {
String result = "";
R011TransForm transForm = new R011TransForm();
transForm.setTranCode("R011");
transForm.initCommonParams("R011");
transForm.setSubmitUrl(InitForm.R011_SUBMIT_URL);
transForm.setUserId(userId);
transForm.setCertNo(certNo);
transForm.setUserName(userName);
transForm.setMobile(mobile);
transForm.setCertValidate(certValidate);
try {
result = HttpUtils.commonReq(transForm, false);
} catch (Exception e) {
e.printStackTrace();
}
Map<String,Object> responseMap = JsonUtils.jsonToMap(result);
return responseMap;
}
@Override
public Map<String, Object> changeEntCard(String userId, String bindCardAgrNo, String mobile, String cardNo, String bankCode, String province, String city, String branch) {
String result = "";
R002TransForm transForm = new R002TransForm();
transForm.setTranCode("R002");
transForm.initCommonParams("R002");
transForm.setSubmitUrl(InitForm.R002_SUBMIT_URL);
transForm.setUserId(userId);
transForm.setBindCardAgrNo(bindCardAgrNo);
transForm.setMobile(mobile);
transForm.setCardNo(cardNo);
transForm.setBankCode(bankCode);
transForm.setProvince(province);
transForm.setCity(city);
transForm.setBranch(branch);
try {
result = HttpUtils.commonReq(transForm, false);
} catch (Exception e) {
e.printStackTrace();
}
Map<String,Object> responseMap = JsonUtils.jsonToMap(result);
return responseMap;
}
@Override
public Map<String, String> refund(String orderFormId, String outTradeNo, String transactionId, String outRefundNo, BigDecimal total, BigDecimal refund) throws CoBusinessException, Exception {
List<CereShopOrder> orderList = null;
String cereOrderFormId = orderFormId;
String[] split = orderFormId.split("-");
if(!EmptyUtils.isEmpty(split)) {
cereOrderFormId = split[0];
}
//查询是否为父订单编号
CereOrderParent parent = cereShopOrderDAO.findByParentFormid(cereOrderFormId);
if (parent != null) {
//查询所有子订单数据
orderList = cereShopOrderDAO.findByParentId(parent.getParentId());
} else {
//子订单支付回调
orderList = cereShopOrderDAO.findByFormid(cereOrderFormId);
}
//这里理论上只会有一个子订单如果出现多个说明出错了
if(orderList.size() != 1){
throw new CoBusinessException("10000","订单查找出错", "");
}
List<CereOrderProduct> cereOrderProductList = cereOrderProductDAO.findByOrderIds(orderList.stream().map(CereShopOrder::getOrderId).collect(Collectors.toList()));
log.info("cereOrderProductList:" + new Gson().toJson(cereOrderProductList));
List<Long> shopIdList = orderList.stream().map(CereShopOrder::getShopId).distinct().collect(Collectors.toList());
List<CerePlatformShop> cerePlatformShopList = cerePlatformShopService.getByIdList(shopIdList);
List<Long> businessIdList = cerePlatformShopList.stream().map(CerePlatformShop::getBusinessId).distinct().collect(Collectors.toList());
List<CerePlatformBusiness> cerePlatformBusinessList = cerePlatformBusinessService.getByIdList(businessIdList);
String resultStr = "";
T005TransForm transForm = new T005TransForm();
transForm.setTranCode("T005");
transForm.initCommonParams("T005");
transForm.setMerOrderId(outRefundNo);
transForm.setSubmitUrl(InitForm.T005_SUBMIT_URL);
transForm.setSerialId("thee" + System.currentTimeMillis());
transForm.setOrgMerOrderId(outTradeNo);
//transForm.setOrgSubmitTime(orderInfo.getPaySubmitTime());
transForm.setOrderAmount(String.valueOf(total));
transForm.setRefundSource("1");
transForm.setDestType("1");
//退款类型 1:全额退款 2部分退款
transForm.setRefundType("1");
transForm.setRefundAmount(String.valueOf(refund));
transForm.setNotifyUrl(HnaPayConfig.REFUND_NOTICE_URL);
transForm.setRemark("退款备注信息");
//transForm.setDivideRefundDtl("");
try {
resultStr = HttpUtils.commonReq(transForm, false);
} catch (Exception e) {
e.printStackTrace();
}
Map<String,Object> responseMap = JsonUtils.jsonToMap(resultStr);
String resultCode = String.valueOf(responseMap.get("resultCode"));
if (resultCode.equals("0000")){
//成功
Map<String, String> result = new HashMap<>();
result.put("return_msg", WxPayEnum.REFUND_SUCCESS.getCode());
result.put("return_code", WxPayEnum.REFUND_OK.getCode());
return result;
}else {
//失败
String errorMsg = String.valueOf(responseMap.get("errorMsg"));
throw new CoBusinessException(errorMsg);
}
}
@Override
public Map<String, String> refundBond(String transactionId, String outRefundNo, BigDecimal total, BigDecimal refund) throws CoBusinessException, Exception {
throw new CoBusinessException("10000","新生通道保证金退款功能待开发", "");
}
@Override
public String getMoney(Long businessId, String orderFormid, String tradeType, BigDecimal money) throws CoBusinessException {
BusinessGetAll business = cerePlatformBusinessService.getById(businessId);
CereShopBank shopBank = cereShopBankDAO.selectOne(
Wrappers.<CereShopBank>lambdaQuery()
.eq(CereShopBank::getShopId, businessId));
if(shopBank == null){
throw new CoBusinessException("10000","查找不到绑定的银行卡信息", "");
}
String resultStr = "";
T002TransForm transForm = new T002TransForm();
transForm.setTranCode("T002");
transForm.initCommonParams("T002");
transForm.setSubmitUrl(InitForm.T002_SUBMIT_URL);
transForm.setTranAmount(String.valueOf(money));
transForm.setUserId(business.getXsPayId());
transForm.setBindCardAgrNo(shopBank.getCardNumber());
transForm.setNotifyUrl(HnaPayConfig.GETMONEY_NOTICE_URL);
transForm.setPaymentTerminalInfo(HnaPayConfig.IP);
transForm.setDeviceInfo(HnaPayConfig.IP);
try {
resultStr = HttpUtils.commonReq(transForm, false);
} catch (Exception e) {
e.printStackTrace();
}
Map<String,Object> responseMap = JsonUtils.jsonToMap(resultStr);
String resultCode = String.valueOf(responseMap.get("resultCode"));
if (resultCode.equals("0000")){
//成功
return "success";
}else {
//失败
String errorMsg = String.valueOf(responseMap.get("errorMsg"));
throw new CoBusinessException(errorMsg);
}
}
}

7
cereshop-app/pom.xml

@ -79,13 +79,6 @@
<version>0.2.1</version> <version>0.2.1</version>
</dependency> </dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
</dependency>
</dependencies> </dependencies>
<profiles> <profiles>

28
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/service/impl/HnaPayServiceImpl.java

@ -1,9 +1,7 @@
package com.shop.cereshop.app.pay.hnapay.service.impl; package com.shop.cereshop.app.pay.hnapay.service.impl;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.fastjson.serializer.SerializerFeature;
import com.google.gson.Gson; import com.google.gson.Gson;
@ -11,13 +9,7 @@ import com.shop.cereshop.app.dao.business.CerePlatformBusinessDAO;
import com.shop.cereshop.app.dao.order.CereOrderProductDAO; import com.shop.cereshop.app.dao.order.CereOrderProductDAO;
import com.shop.cereshop.app.dao.order.CereShopOrderDAO; import com.shop.cereshop.app.dao.order.CereShopOrderDAO;
import com.shop.cereshop.app.pay.hnapay.domain.DivideAcctDtlVo; import com.shop.cereshop.app.pay.hnapay.domain.DivideAcctDtlVo;
import com.shop.cereshop.app.pay.hnapay.request.form.T005TransForm;
import com.shop.cereshop.app.pay.hnapay.request.form.T006TransForm;
import com.shop.cereshop.app.pay.hnapay.request.form.T009TransForm;
import com.shop.cereshop.app.pay.hnapay.request.init.InitForm;
import com.shop.cereshop.app.pay.hnapay.service.HnaPayService; import com.shop.cereshop.app.pay.hnapay.service.HnaPayService;
import com.shop.cereshop.app.pay.hnapay.utils.HttpUtils;
import com.shop.cereshop.app.pay.hnapay.utils.JsonUtils;
import com.shop.cereshop.app.pay.xs.domain.XsCallBackRequestVo; import com.shop.cereshop.app.pay.xs.domain.XsCallBackRequestVo;
import com.shop.cereshop.app.pay.xs.utils.CommonUtils; import com.shop.cereshop.app.pay.xs.utils.CommonUtils;
import com.shop.cereshop.app.service.business.CerePlatformBusinessService; import com.shop.cereshop.app.service.business.CerePlatformBusinessService;
@ -33,8 +25,14 @@ import com.shop.cereshop.commons.domain.order.CereOrderProduct;
import com.shop.cereshop.commons.domain.order.CereShopOrder; import com.shop.cereshop.commons.domain.order.CereShopOrder;
import com.shop.cereshop.commons.domain.shop.CerePlatformShop; import com.shop.cereshop.commons.domain.shop.CerePlatformShop;
import com.shop.cereshop.commons.exception.CoBusinessException; import com.shop.cereshop.commons.exception.CoBusinessException;
import com.shop.cereshop.commons.request.hnapay.form.T005TransForm;
import com.shop.cereshop.commons.request.hnapay.form.T006TransForm;
import com.shop.cereshop.commons.request.hnapay.form.T009TransForm;
import com.shop.cereshop.commons.request.hnapay.init.InitForm;
import com.shop.cereshop.commons.utils.EmptyUtils; import com.shop.cereshop.commons.utils.EmptyUtils;
import com.shop.cereshop.commons.utils.StringUtils; import com.shop.cereshop.commons.utils.StringUtils;
import com.shop.cereshop.commons.utils.hnapay.HttpUtils;
import com.shop.cereshop.commons.utils.hnapay.JsonUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -303,7 +301,7 @@ public class HnaPayServiceImpl implements HnaPayService {
} }
} }
String result = "";
String resultStr = "";
T009TransForm transForm = new T009TransForm(); T009TransForm transForm = new T009TransForm();
transForm.setTranCode("T009"); transForm.setTranCode("T009");
transForm.initCommonParams("T009"); transForm.initCommonParams("T009");
@ -332,11 +330,19 @@ public class HnaPayServiceImpl implements HnaPayService {
transForm.setDivideAcctDtl(this.buildSubMerchantOrderDetails(orderList, cereOrderProductList, cerePlatformShopList, cerePlatformBusinessList)); transForm.setDivideAcctDtl(this.buildSubMerchantOrderDetails(orderList, cereOrderProductList, cerePlatformShopList, cerePlatformBusinessList));
transForm.setFeeAmountUser(""); transForm.setFeeAmountUser("");
try { try {
result = HttpUtils.commonReq(transForm, false);
resultStr = HttpUtils.commonReq(transForm, false);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
return null;
Map<String,Object> responseMap = JsonUtils.jsonToMap(resultStr);
String resultCode = String.valueOf(responseMap.get("resultCode"));
if (resultCode.equals("0000")){
String qrCodeUrl = String.valueOf(responseMap.get("qrCodeUrl"));
return qrCodeUrl;
}else {
String errorMsg = String.valueOf(responseMap.get("errorMsg"));
throw new CoBusinessException(errorMsg);
}
} }
/** /**

77
cereshop-business/src/main/java/com/shop/cereshop/business/controller/HnaPayController.java

@ -0,0 +1,77 @@
package com.shop.cereshop.business.controller;
import com.alibaba.fastjson.JSONObject;
import com.google.gson.Gson;
import com.shop.cereshop.business.pay.hnapay.HnaPayService;
import com.shop.cereshop.business.pay.xs.domain.XsCallBackRequestVo;
import com.shop.cereshop.business.service.after.CereOrderAfterService;
import com.shop.cereshop.commons.constant.IntegerEnum;
import com.shop.cereshop.commons.utils.SpringUtil;
import com.shop.cereshop.commons.utils.StringUtils;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* 描述新生支付新账通回调处理
*
* @author stevenhu
* @version 2025/02/14 9:24
*/
@RestController
@RequestMapping("extend/hnaPay")
@Slf4j(topic = "hnaPayController")
@Api(value = "新账通模块", tags = "新账通模块")
public class HnaPayController {
@Autowired
private HnaPayService hnaPayService;
/**
* 退款通知回调
* @throws Exception
*/
@PostMapping("refund/notify")
public String refundNotify(@RequestParam(name = "msg") String msg) throws Exception {
log.info("refundNotify:" + msg);
try {
XsCallBackRequestVo xsCallBackRequestVo = hnaPayService.parseCallBackRequestVo(msg);
log.info(new Gson().toJson(xsCallBackRequestVo));
String status = xsCallBackRequestVo.getContent().getString("status");
//2成功 3失败
if(StringUtils.equals(status, "1")){
log.info("退款回调成功");
//截取订单编号
JSONObject content = xsCallBackRequestVo.getContent();
String merOrderId = content.getString("merOrderId");
String oldMerOrderId = content.getString("orgMerOrderId");
String oldDealId = content.getString("oldDealId");
CereOrderAfterService afterService = SpringUtil.getBean(CereOrderAfterService.class);
afterService.handleRefundSuc(merOrderId, oldDealId, oldMerOrderId, IntegerEnum.ORDER_PAY_XS.getCode());
// //处理支付成功后的其他逻辑
// cereShopOrderService.handleRefundWxLog(orderFormId, dealId, merOrderId);
}
} catch (Exception e) {
e.printStackTrace();
}
return "success";
}
/**
* 企业上送资料审核结果通知
* @param msg
* @return
* @throws Exception
*/
@PostMapping("/hnaPay/examine/notify")
public String onExamineNotify(@RequestParam(name = "msg") String msg) {
return "200";
}
}

96
cereshop-business/src/main/java/com/shop/cereshop/business/pay/hnapay/HnaPayService.java

@ -0,0 +1,96 @@
package com.shop.cereshop.business.pay.hnapay;
import com.shop.cereshop.business.pay.PayService;
import com.shop.cereshop.business.pay.xs.domain.XsCallBackRequestVo;
import com.shop.cereshop.commons.exception.CoBusinessException;
import java.math.BigDecimal;
import java.util.Map;
/**
* 描述
*
* @author stevenhu
* @version 2025/02/18 9:27
*/
public interface HnaPayService extends PayService {
/**
* 解析新生支付的回调接口
* @param msg
* @return
* @throws Exception
*/
XsCallBackRequestVo parseCallBackRequestVo(String msg) throws Exception;
/**
* 企业开户
* @param entId 企业id
* @param userName 企业名称
* @param mobile 企业联系人手机号
* @param certNo 营业执照号(统一社会信用代码)
* @param certValidate 证件有效期 格式YYYYMMDD 永久则输入21990101
* @param cardNo 银行卡号
* @param bankCode 银行简码
* @param province 开户行所属省份
* @param city 开户行所属城市
* @param branch 开户支行
* @return
*/
Map<String,Object> createEntAccount(Long entId, String userName, String mobile, String certNo, String certValidate, String cardNo,
String bankCode, String province, String city, String branch);
/**
* 企业开户上传资料
* @param userId 开户返回的userId
* @param certFileType
* 1-身份证正面企业必传
* 2-身份证反面企业必传
* 3-法人身份证手持非必传
* 4-营业执照企业必传
* 5-其他非必传
* 6-其他非必传
* 7-开户许可证企业必传
* @param base64 上传图片base64为
* @return
*/
Map<String,Object> uploadEntFile(String userId,String certFileType, String base64);
/**
* 企业开户修改
* @param userId 开户返回的userId
* @param certNo 营业执照号(统一社会信用代码)
* @param userName 企业名称
* @param mobile 企业联系人手机号
* @param certValidate 证件有效期 格式YYYYMMDD 永久则输入21990101
* @return
*/
Map<String,Object> modifyEntAccount(String userId, String certNo, String userName, String mobile, String certValidate);
/**
* 企业换卡
* @param userId 开户返回的用户编号
* @param bindCardAgrNo 原绑卡协议号 开户接口返回
* @param mobile 银行预留手机号
* @param cardNo 银行卡号
* @param bankCode 银行简码
* @param province 开户行所属省份
* @param city 开户行所属城市
* @param branch 开户支行
* @return
*/
Map<String,Object> changeEntCard(String userId, String bindCardAgrNo, String mobile, String cardNo, String bankCode, String province, String city, String branch);
/**
* 提现
* @return
* @throws CoBusinessException
*/
String getMoney(Long businessId, String orderFormid,
String tradeType, BigDecimal money) throws CoBusinessException;
}

298
cereshop-business/src/main/java/com/shop/cereshop/business/pay/hnapay/impl/HnaPayServiceImpl.java

@ -0,0 +1,298 @@
package com.shop.cereshop.business.pay.hnapay.impl;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.google.gson.Gson;
import com.shop.cereshop.business.dao.order.CereOrderProductDAO;
import com.shop.cereshop.business.dao.order.CereShopOrderDAO;
import com.shop.cereshop.business.dao.shop.CereShopBankDAO;
import com.shop.cereshop.business.page.business.Business;
import com.shop.cereshop.business.page.shop.ShopBankDetail;
import com.shop.cereshop.business.pay.hnapay.HnaPayService;
import com.shop.cereshop.business.pay.xs.domain.XsCallBackRequestVo;
import com.shop.cereshop.business.pay.xs.utils.CommonUtils;
import com.shop.cereshop.business.service.business.CerePlatformBusinessService;
import com.shop.cereshop.business.service.shop.CerePlatformShopService;
import com.shop.cereshop.commons.config.HnaPayConfig;
import com.shop.cereshop.commons.constant.WxPayEnum;
import com.shop.cereshop.commons.domain.business.CerePlatformBusiness;
import com.shop.cereshop.commons.domain.order.CereOrderParent;
import com.shop.cereshop.commons.domain.order.CereOrderProduct;
import com.shop.cereshop.commons.domain.order.CereShopOrder;
import com.shop.cereshop.commons.domain.shop.CerePlatformShop;
import com.shop.cereshop.commons.exception.CoBusinessException;
import com.shop.cereshop.commons.request.hnapay.form.T002TransForm;
import com.shop.cereshop.commons.request.hnapay.form.T005TransForm;
import com.shop.cereshop.commons.request.hnapay.init.InitForm;
import com.shop.cereshop.commons.utils.EmptyUtils;
import com.shop.cereshop.commons.utils.hnapay.HttpUtils;
import com.shop.cereshop.commons.utils.hnapay.JsonUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Base64;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 描述
*
* @author stevenhu
* @version 2025/02/18 9:29
*/
@Service(value = "HnaPayService")
@Slf4j
public class HnaPayServiceImpl implements HnaPayService {
@Autowired
private CereShopOrderDAO cereShopOrderDAO;
@Autowired
private CereOrderProductDAO cereOrderProductDAO;
@Autowired
private CerePlatformBusinessService cerePlatformBusinessService;
@Autowired
private CerePlatformShopService cerePlatformShopService;
@Autowired
private CereShopBankDAO cereShopBankDAO;
@Override
public XsCallBackRequestVo parseCallBackRequestVo(String msg) throws Exception {
//base64 decode
String msgStr = new String(Base64.getDecoder().decode(msg));
//LinkedHashMap json字符串转map时保持字段顺序不变
JSONObject headContentMap = JSONObject.parseObject(msgStr);
String resSign = headContentMap.getString("sign");
headContentMap.remove("sign");
//headContentMap 转为json字符串时保留字段值为null的字段
SerializerFeature[] serializerFeatures = new SerializerFeature[]{SerializerFeature.WriteMapNullValue};
String headContentJson = JSONObject.toJSONString(headContentMap,serializerFeatures);
CommonUtils.verifySignature(headContentJson, resSign);
JSONObject head = headContentMap.getJSONObject("head");
JSONObject content = headContentMap.getJSONObject("content");
String responseCode = content.getString("responseCode");
if(StrUtil.isNotBlank(responseCode) && StrUtil.isNotBlank(responseCode) && !StrUtil.equals(responseCode, "0")
&& !StrUtil.equals(responseCode, "0000") && !StrUtil.equals(responseCode, "0001")){
String errorMsg = content.getString("responseDesc");
throw new CoBusinessException(responseCode, errorMsg);
}
XsCallBackRequestVo xsCallBackRequestVo = new XsCallBackRequestVo();
xsCallBackRequestVo.setHead(head);
xsCallBackRequestVo.setContent(content);
return xsCallBackRequestVo;
}
@Override
public Map<String, Object> createEntAccount(Long entId, String userName, String mobile, String certNo, String certValidate, String cardNo, String bankCode, String province, String city, String branch) {
return null;
}
@Override
public Map<String, Object> uploadEntFile(String userId, String certFileType, String base64) {
return null;
}
@Override
public Map<String, Object> modifyEntAccount(String userId, String certNo, String userName, String mobile, String certValidate) {
return null;
}
@Override
public Map<String, Object> changeEntCard(String userId, String bindCardAgrNo, String mobile, String cardNo, String bankCode, String province, String city, String branch) {
return null;
}
@Override
public Map<String, String> refund(String orderFormId, String outTradeNo, String transactionId, String outRefundNo, BigDecimal total, BigDecimal refund, Long afterId) throws CoBusinessException, Exception {
List<CereShopOrder> orderList = null;
String cereOrderFormId = orderFormId;
String[] split = orderFormId.split("-");
if(!EmptyUtils.isEmpty(split)) {
cereOrderFormId = split[0];
}
//查询是否为父订单编号
CereOrderParent parent = cereShopOrderDAO.findByParentFormid(cereOrderFormId);
if (parent != null) {
//查询所有子订单数据
orderList = cereShopOrderDAO.findByParentId(parent.getParentId());
} else {
//子订单支付回调
orderList = cereShopOrderDAO.findByFormid(cereOrderFormId);
}
//这里理论上只会有一个子订单如果出现多个说明出错了
if(orderList.size() != 1){
throw new CoBusinessException("10000","订单查找出错", "");
}
List<CereOrderProduct> cereOrderProductList = cereOrderProductDAO.findByOrderIds(orderList.stream().map(CereShopOrder::getOrderId).collect(Collectors.toList()));
log.info("cereOrderProductList:" + new Gson().toJson(cereOrderProductList));
List<Long> shopIdList = orderList.stream().map(CereShopOrder::getShopId).distinct().collect(Collectors.toList());
List<CerePlatformShop> cerePlatformShopList = cerePlatformShopService.getByIdList(shopIdList);
List<Long> businessIdList = cerePlatformShopList.stream().map(CerePlatformShop::getBusinessId).distinct().collect(Collectors.toList());
List<CerePlatformBusiness> cerePlatformBusinessList = cerePlatformBusinessService.getByIdList(businessIdList);
String resultStr = "";
T005TransForm transForm = new T005TransForm();
transForm.setTranCode("T005");
transForm.initCommonParams("T005");
transForm.setMerOrderId(outRefundNo);
transForm.setSubmitUrl(InitForm.T005_SUBMIT_URL);
transForm.setSerialId("thee" + System.currentTimeMillis());
transForm.setOrgMerOrderId(outTradeNo);
//transForm.setOrgSubmitTime(orderInfo.getPaySubmitTime());
transForm.setOrderAmount(String.valueOf(total));
transForm.setRefundSource("1");
transForm.setDestType("1");
//退款类型 1:全额退款 2部分退款
transForm.setRefundType("1");
transForm.setRefundAmount(String.valueOf(refund));
transForm.setNotifyUrl(HnaPayConfig.REFUND_NOTICE_URL);
transForm.setRemark("退款备注信息");
//transForm.setDivideRefundDtl("");
try {
resultStr = HttpUtils.commonReq(transForm, false);
} catch (Exception e) {
e.printStackTrace();
}
Map<String,Object> responseMap = JsonUtils.jsonToMap(resultStr);
String resultCode = String.valueOf(responseMap.get("resultCode"));
if (resultCode.equals("0000")){
//成功
Map<String, String> result = new HashMap<>();
result.put("return_msg", WxPayEnum.REFUND_SUCCESS.getCode());
result.put("return_code", WxPayEnum.REFUND_OK.getCode());
return result;
}else {
//失败
String errorMsg = String.valueOf(responseMap.get("errorMsg"));
throw new CoBusinessException(errorMsg);
}
}
//获取保证金
@Override
public String getCollectionCode(String orderFormid, BigDecimal money, String ip, String tradeType) throws CoBusinessException, Exception {
return null;
}
@Override
public Map<String, String> orderRefund(String orderFormId, String outTradeNo, String transactionId, String outRefundNo, BigDecimal total, BigDecimal refund) throws CoBusinessException, Exception {
List<CereShopOrder> orderList = null;
String cereOrderFormId = orderFormId;
String[] split = orderFormId.split("-");
if(!EmptyUtils.isEmpty(split)) {
cereOrderFormId = split[0];
}
//查询是否为父订单编号
CereOrderParent parent = cereShopOrderDAO.findByParentFormid(cereOrderFormId);
if (parent != null) {
//查询所有子订单数据
orderList = cereShopOrderDAO.findByParentId(parent.getParentId());
} else {
//子订单支付回调
orderList = cereShopOrderDAO.findByFormid(cereOrderFormId);
}
//这里理论上只会有一个子订单如果出现多个说明出错了
if(orderList.size() != 1){
throw new CoBusinessException("10000","订单查找出错", "");
}
List<CereOrderProduct> cereOrderProductList = cereOrderProductDAO.findByOrderIds(orderList.stream().map(CereShopOrder::getOrderId).collect(Collectors.toList()));
log.info("cereOrderProductList:" + new Gson().toJson(cereOrderProductList));
List<Long> shopIdList = orderList.stream().map(CereShopOrder::getShopId).distinct().collect(Collectors.toList());
List<CerePlatformShop> cerePlatformShopList = cerePlatformShopService.getByIdList(shopIdList);
List<Long> businessIdList = cerePlatformShopList.stream().map(CerePlatformShop::getBusinessId).distinct().collect(Collectors.toList());
List<CerePlatformBusiness> cerePlatformBusinessList = cerePlatformBusinessService.getByIdList(businessIdList);
String resultStr = "";
T005TransForm transForm = new T005TransForm();
transForm.setTranCode("T005");
transForm.initCommonParams("T005");
transForm.setMerOrderId(outRefundNo);
transForm.setSubmitUrl(InitForm.T005_SUBMIT_URL);
transForm.setSerialId("thee" + System.currentTimeMillis());
transForm.setOrgMerOrderId(outTradeNo);
//transForm.setOrgSubmitTime(orderInfo.getPaySubmitTime());
transForm.setOrderAmount(String.valueOf(total));
transForm.setRefundSource("1");
transForm.setDestType("1");
//退款类型 1:全额退款 2部分退款
transForm.setRefundType("1");
transForm.setRefundAmount(String.valueOf(refund));
transForm.setNotifyUrl(HnaPayConfig.REFUND_NOTICE_URL);
transForm.setRemark("退款备注信息");
//transForm.setDivideRefundDtl("");
try {
resultStr = HttpUtils.commonReq(transForm, false);
} catch (Exception e) {
e.printStackTrace();
}
Map<String,Object> responseMap = JsonUtils.jsonToMap(resultStr);
String resultCode = String.valueOf(responseMap.get("resultCode"));
if (resultCode.equals("0000")){
//成功
Map<String, String> result = new HashMap<>();
result.put("return_msg", WxPayEnum.REFUND_SUCCESS.getCode());
result.put("return_code", WxPayEnum.REFUND_OK.getCode());
return result;
}else {
//失败
String errorMsg = String.valueOf(responseMap.get("errorMsg"));
throw new CoBusinessException(errorMsg);
}
}
@Override
public String getMoney(Long businessId, String orderFormid, String tradeType, BigDecimal money) throws CoBusinessException {
Business business = cerePlatformBusinessService.getById(businessId);
ShopBankDetail shopBankDetail = cereShopBankDAO.getByShopId(businessId);
if(shopBankDetail == null){
throw new CoBusinessException("10000","查找不到绑定的银行卡信息", "");
}
String resultStr = "";
T002TransForm transForm = new T002TransForm();
transForm.setTranCode("T002");
transForm.initCommonParams("T002");
transForm.setSubmitUrl(InitForm.T002_SUBMIT_URL);
transForm.setTranAmount(String.valueOf(money));
transForm.setUserId(business.getXsPayId());
transForm.setBindCardAgrNo(shopBankDetail.getCardNumber());
transForm.setNotifyUrl(HnaPayConfig.GETMONEY_NOTICE_URL);
transForm.setPaymentTerminalInfo(HnaPayConfig.IP);
transForm.setDeviceInfo(HnaPayConfig.IP);
try {
resultStr = HttpUtils.commonReq(transForm, false);
} catch (Exception e) {
e.printStackTrace();
}
Map<String,Object> responseMap = JsonUtils.jsonToMap(resultStr);
String resultCode = String.valueOf(responseMap.get("resultCode"));
if (resultCode.equals("0000")){
//成功
return "success";
}else {
//失败
String errorMsg = String.valueOf(responseMap.get("errorMsg"));
throw new CoBusinessException(errorMsg);
}
}
}

6
cereshop-commons/pom.xml

@ -28,6 +28,12 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId> <groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId> <artifactId>mybatis-plus-extension</artifactId>
</dependency> </dependency>

7
cereshop-commons/src/main/java/com/shop/cereshop/commons/config/HnaPayConfig.java

@ -57,6 +57,11 @@ public class HnaPayConfig {
public static String APP_NOTICE_URL = "http://36.138.125.206/ceres-app-api/extend/hnaPay/pay/notify"; public static String APP_NOTICE_URL = "http://36.138.125.206/ceres-app-api/extend/hnaPay/pay/notify";
// 退款回调地址 // 退款回调地址
public static String REFUND_NOTICE_URL = "http://36.138.125.206/ceres-app-api/extend/hnaPay/refund/notify";
public static String REFUND_NOTICE_URL = "http://36.138.125.206/ceres-business-api/extend/hnaPay/refund/notify";
//企业上送资料审核结果通知
public static String EXAMINE_NOTICE_URL = "http://36.138.125.206/ceres-business-api/extend/hnaPay/examine/notify";
public static String GETMONEY_NOTICE_URL = "http://36.138.125.206/ceres-business-api/extend/hnaPay/getmoney/notify";
} }

4
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/BaseTransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/BaseTransForm.java

@ -1,9 +1,9 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.shop.cereshop.app.pay.hnapay.utils.HnaPayDateUtils;
import com.shop.cereshop.commons.config.HnaPayConfig; import com.shop.cereshop.commons.config.HnaPayConfig;
import com.shop.cereshop.commons.utils.hnapay.HnaPayDateUtils;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/F001TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/F001TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/Q001TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/Q001TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/Q002TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/Q002TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/Q003TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/Q003TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/Q004TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/Q004TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/Q006TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/Q006TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/Q007TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/Q007TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/Q008TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/Q008TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/Q009TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/Q009TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/R001TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/R001TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/R002TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/R002TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/R003TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/R003TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/R004TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/R004TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/R007TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/R007TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/R008TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/R008TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/R009TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/R009TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/R010TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/R010TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/R011TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/R011TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/R012TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/R012TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/R013TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/R013TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/R014TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/R014TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/R015TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/R015TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/T002TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T002TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/T003TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T003TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/T004TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T004TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

3
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/T005TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T005TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;
@ -27,6 +27,7 @@ public class T005TransForm extends BaseTransForm {
private String refundAmount;//商户退款金额 private String refundAmount;//商户退款金额
private String notifyUrl;//异步通知地址 private String notifyUrl;//异步通知地址
private String remark;//备注 private String remark;//备注
private String divideRefundDtl;//担保下单退款明细,担保下单外扣部分退款时必填
@Override @Override
public String getEncryptJsonStr() { public String getEncryptJsonStr() {

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/T006TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T006TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/T007TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T007TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/T008TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T008TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/T009TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T009TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/T010TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T010TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/T011TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T011TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/T012TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T012TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/T013TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T013TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/T019TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T019TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/T020TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T020TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/T021TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T021TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/form/T022TransForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/form/T022TransForm.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.request.form;
package com.shop.cereshop.commons.request.hnapay.form;
import lombok.Data; import lombok.Data;

4
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/request/init/InitForm.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/request/hnapay/init/InitForm.java

@ -1,7 +1,7 @@
package com.shop.cereshop.app.pay.hnapay.request.init;
package com.shop.cereshop.commons.request.hnapay.init;
import com.shop.cereshop.app.pay.hnapay.request.form.*;
import com.shop.cereshop.commons.request.hnapay.form.*;
import java.util.Map; import java.util.Map;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/utils/Base64Util.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/utils/hnapay/Base64Util.java

@ -3,7 +3,7 @@
* www.hnapay.com * www.hnapay.com
*/ */
package com.shop.cereshop.app.pay.hnapay.utils;
package com.shop.cereshop.commons.utils.hnapay;
import java.util.Base64; import java.util.Base64;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/utils/HexStringByte.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/utils/hnapay/HexStringByte.java

@ -3,7 +3,7 @@
* www.hnapay.com * www.hnapay.com
*/ */
package com.shop.cereshop.app.pay.hnapay.utils;
package com.shop.cereshop.commons.utils.hnapay;
/** /**
* 十六进制转换 * 十六进制转换

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/utils/HnaPayDateUtils.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/utils/hnapay/HnaPayDateUtils.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.utils;
package com.shop.cereshop.commons.utils.hnapay;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/utils/HnapaySign.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/utils/hnapay/HnapaySign.java

@ -3,7 +3,7 @@
* www.hnapay.com * www.hnapay.com
*/ */
package com.shop.cereshop.app.pay.hnapay.utils;
package com.shop.cereshop.commons.utils.hnapay;
import com.shop.cereshop.commons.config.HnaPayConfig; import com.shop.cereshop.commons.config.HnaPayConfig;
import com.shop.cereshop.commons.exception.CoBusinessException; import com.shop.cereshop.commons.exception.CoBusinessException;

6
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/utils/HttpClientUtils.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/utils/hnapay/HttpClientUtils.java

@ -3,10 +3,10 @@
* www.hnapay.com * www.hnapay.com
*/ */
package com.shop.cereshop.app.pay.hnapay.utils;
import com.shop.cereshop.commons.exception.CoBusinessException;
package com.shop.cereshop.commons.utils.hnapay;
import org.apache.commons.httpclient.*; import org.apache.commons.httpclient.*;
import com.shop.cereshop.commons.exception.CoBusinessException;
import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.methods.ByteArrayRequestEntity; import org.apache.commons.httpclient.methods.ByteArrayRequestEntity;
import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.methods.PostMethod;

6
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/utils/HttpUtils.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/utils/hnapay/HttpUtils.java

@ -1,8 +1,8 @@
package com.shop.cereshop.app.pay.hnapay.utils;
package com.shop.cereshop.commons.utils.hnapay;
import com.shop.cereshop.app.pay.hnapay.request.form.BaseTransForm;
import com.shop.cereshop.app.pay.hnapay.request.init.InitForm;
import com.shop.cereshop.commons.config.HnaPayConfig; import com.shop.cereshop.commons.config.HnaPayConfig;
import com.shop.cereshop.commons.request.hnapay.form.BaseTransForm;
import com.shop.cereshop.commons.request.hnapay.init.InitForm;
import com.shop.cereshop.commons.utils.Base64Util; import com.shop.cereshop.commons.utils.Base64Util;
import org.apache.http.HttpEntity; import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair; import org.apache.http.NameValuePair;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/utils/HttpsTransport.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/utils/hnapay/HttpsTransport.java

@ -3,7 +3,7 @@
* www.hnapay.com * www.hnapay.com
*/ */
package com.shop.cereshop.app.pay.hnapay.utils;
package com.shop.cereshop.commons.utils.hnapay;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.http.*; import org.apache.http.*;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/utils/JsonUtils.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/utils/hnapay/JsonUtils.java

@ -3,7 +3,7 @@
* www.hnapay.com * www.hnapay.com
*/ */
package com.shop.cereshop.app.pay.hnapay.utils;
package com.shop.cereshop.commons.utils.hnapay;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.fasterxml.jackson.core.JsonGenerationException; import com.fasterxml.jackson.core.JsonGenerationException;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/utils/KeyUtils.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/utils/hnapay/KeyUtils.java

@ -1,4 +1,4 @@
package com.shop.cereshop.app.pay.hnapay.utils;
package com.shop.cereshop.commons.utils.hnapay;
import com.shop.cereshop.commons.config.HnaPayConfig; import com.shop.cereshop.commons.config.HnaPayConfig;
import com.shop.cereshop.commons.exception.CoBusinessException; import com.shop.cereshop.commons.exception.CoBusinessException;

2
cereshop-app/src/main/java/com/shop/cereshop/app/pay/hnapay/utils/RSAAlgorithms.java → cereshop-commons/src/main/java/com/shop/cereshop/commons/utils/hnapay/RSAAlgorithms.java

@ -3,7 +3,7 @@
* www.hnapay.com * www.hnapay.com
*/ */
package com.shop.cereshop.app.pay.hnapay.utils;
package com.shop.cereshop.commons.utils.hnapay;
import com.shop.cereshop.commons.config.HnaPayConfig; import com.shop.cereshop.commons.config.HnaPayConfig;
import com.shop.cereshop.commons.exception.CoBusinessException; import com.shop.cereshop.commons.exception.CoBusinessException;
Loading…
Cancel
Save