diff --git a/mallinkAdmin/src/main/resources/db/migration/V20220801000001_cashout.sql b/mallinkAdmin/src/main/resources/db/migration/V20220801000001_cashout.sql index 00b634cf1..974e1438d 100644 --- a/mallinkAdmin/src/main/resources/db/migration/V20220801000001_cashout.sql +++ b/mallinkAdmin/src/main/resources/db/migration/V20220801000001_cashout.sql @@ -99,5 +99,7 @@ alter table wx_cash_out_97 ADD COLUMN `real_name` varchar(32) COMMENT '实 alter table wx_cash_out_98 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; alter table wx_cash_out_99 ADD COLUMN `real_name` varchar(32) COMMENT '实名姓名,超2000需实名'; +alter table wx_pay_account change column private_cert_path private_cert_pem_path varchar(255); alter table wx_pay_account add COLUMN `merchant_key_path` varchar(100) COMMENT '商户key证书路径'; -alter table wx_pay_account add COLUMN `merchant_apiv3_key` varchar(100) COMMENT '商户apiV3Key'; \ No newline at end of file +alter table wx_pay_account add COLUMN `merchant_apiv3_key` varchar(100) COMMENT '商户apiV3Key'; +alter table wx_pay_account add COLUMN `merchant_cert_pem_path` varchar(100) COMMENT '商户证书密钥文件'; \ No newline at end of file diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxBillController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxBillController.java index 11c923e7e..a142c3be8 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxBillController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxBillController.java @@ -123,7 +123,6 @@ public class WxBillController extends BaseController { map.put("businessType", EnumFlowKey.BILL_FINISH.getCode()); //map.put("payMoney", wxBillAll.getNewPrice()); map.put("businessId", wxBillAll.getId()); - map.put("payImg", wxBillAll.getPayImg()); List variablesList = new ArrayList(); Map billTypeMap = new HashMap(); billTypeMap.put("key","billType"); @@ -145,6 +144,11 @@ public class WxBillController extends BaseController { newPriceMap.put("value",wxBillAll.getNewPrice()); variablesList.add(newPriceMap); + Map payImgMap = new HashMap(); + payImgMap.put("key","payImg"); + payImgMap.put("value",wxBillAll.getPayImg()); + variablesList.add(payImgMap); + map.put("variables", variablesList); map.put("phone", buser.getPhone()); wxFlowService.start(map, buser.getId(), buser.getName(), this.getTenantInfo()); diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxCashOutController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxCashOutController.java index 3a7945d89..3da2a8ca8 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxCashOutController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxCashOutController.java @@ -2,10 +2,12 @@ package com.iformall.controller; import com.alibaba.fastjson.JSON; import com.github.pagehelper.PageInfo; +import com.iformall.annotation.AuthIgnore; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.po.*; import com.iformall.domain.po.base.BaseEntity.SortField; +import com.iformall.domain.po.base.TenantEntity; import com.iformall.enums.EnumCashOutStatus; import com.iformall.enums.EnumPayShare; import com.iformall.enums.EnumPayWay; @@ -165,7 +167,6 @@ public class WxCashOutController extends BaseController { @ApiOperation("微信B端提现") @PostMapping("cashout") public ResultData cashout(@RequestBody WxCashOut wxCashOut) { - logger.info(">>>cashout>>>"+JSON.toJSONString(wxCashOut)); WxMerchantBUser buser = getLoginBUser(); CUser user = getCUser(); WxMerchant merchant = wxMerchantService.getById(buser.getMerchantId()); @@ -201,5 +202,13 @@ public class WxCashOutController extends BaseController { // WxMerchantBUser buser = getLoginBUser(); // return wxCashOutService.reCashout(buser, wxCashOut,EnumPayWay.PAY_WAY_WECHAT); // } - + + @AuthIgnore + @GetMapping("test") + public String test() { + TenantEntity te = new TenantEntity(); + te.setTenantId("789"); + wxCashOutService.cashOutToWx(EnumPayWay.PAY_WAY_WECHAT,te, 714465978943332352L); + return "ok"; + } } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxPayAccount.java b/mallinkService/src/main/java/com/iformall/domain/po/WxPayAccount.java index 66b3631e2..91ddf3b81 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxPayAccount.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxPayAccount.java @@ -26,14 +26,18 @@ public class WxPayAccount extends TenantEntity { private String notifyUrl; @io.swagger.annotations.ApiModelProperty(value="tt回调token",name="notifyToken") private String notifyToken; - @io.swagger.annotations.ApiModelProperty(value="证书本地存放位置",name="certPath") + @io.swagger.annotations.ApiModelProperty(value="平台证书本地存放位置",name="certPath") private String certPath; @io.swagger.annotations.ApiModelProperty(value="商户自己的证书",name="merchantCertPath") private String merchantCertPath; + @io.swagger.annotations.ApiModelProperty(value="商户自己的证书密钥文件",name="merchantCertPemPath") + private String merchantCertPemPath; @io.swagger.annotations.ApiModelProperty(value="商户自己的密钥文件",name="merchantKeyPath") private String merchantKeyPath; @io.swagger.annotations.ApiModelProperty(value="商户自己的apiv3密钥",name="merchantApiv3Key") private String merchantApiv3Key; + + @io.swagger.annotations.ApiModelProperty(value="商户模式-0:普通商户模式1:服务商模式",name="type") private Integer type; @io.swagger.annotations.ApiModelProperty(value="是否开启分账(0:未开启分账1:开启分账)",name="type") @@ -66,8 +70,8 @@ public class WxPayAccount extends TenantEntity { private String certSerialNo; @io.swagger.annotations.ApiModelProperty(value="平台私钥文件",name="privateKeyPath") private String privateKeyPath; - @io.swagger.annotations.ApiModelProperty(value="平台证书文件,同certPath",name="privateCertPath") - private String privateCertPath; + @io.swagger.annotations.ApiModelProperty(value="平台证书密钥文件",name="privateCertPemPath") + private String privateCertPemPath; // @io.swagger.annotations.ApiModelProperty(value="app平台 EnumAppPlat ",name="plat") // private Integer plat; diff --git a/mallinkService/src/main/java/com/iformall/pay/WxPay.java b/mallinkService/src/main/java/com/iformall/pay/WxPay.java index dbd3f0149..eeb873e3a 100644 --- a/mallinkService/src/main/java/com/iformall/pay/WxPay.java +++ b/mallinkService/src/main/java/com/iformall/pay/WxPay.java @@ -8,6 +8,7 @@ import java.util.Map; import javax.crypto.IllegalBlockSizeException; import com.alibaba.fastjson.JSON; +import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; import com.github.binarywang.wxpay.config.WxPayConfig; import com.github.binarywang.wxpay.exception.WxPayException; import com.github.binarywang.wxpay.service.WxPayService; @@ -270,7 +271,9 @@ public class WxPay { X509Certificate certificate = payService.getConfig().getVerifier().getValidCertificate(); List items = cashOutV3.getTransfer_detail_list(); for (WxCashOutPV3Item it : items) { - it.setUser_name(RsaCryptoUtil.encryptOAEP(it.getUser_name(), certificate)); + if (!StringUtils.isBlank(it.getUser_name())) { + it.setUser_name(RsaCryptoUtil.encryptOAEP(it.getUser_name(), certificate)); + } } return payService.postV3WithWechatpaySerial(MERCHANT_TRANSFER_CHANGE_URL, JSON.toJSONString(cashOutV3)); } diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/cashout/wx/WxCashOutAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/cashout/wx/WxCashOutAdapterService.java index 57838385f..4dd968577 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/cashout/wx/WxCashOutAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/cashout/wx/WxCashOutAdapterService.java @@ -214,7 +214,7 @@ public class WxCashOutAdapterService implements CashOutAdapterService{ return new CashOutAdapterResult(false, EnumCashOutStatus.FAIL.getCode(), "零钱支付失败。商户密钥ApiV3为空。请联系管理员配置。", null); } - WxPayService payService = maUtil.getWxPayService(appInfo,payAccount); + WxPayService payService = maUtil.getWxPayServiceBySelfModel(appInfo,payAccount); if (null == payService) { return new CashOutAdapterResult(false, EnumCashOutStatus.FAIL.getCode(), "零钱支付失败。当前小程序未查询到payService。", null); } @@ -225,7 +225,7 @@ public class WxCashOutAdapterService implements CashOutAdapterService{ log.error("零钱支付异常: " + e.getMessage(),e); return new CashOutAdapterResult(false, EnumCashOutStatus.FAIL.getCode(), "微信零钱支付接口调用异常."+e.getMessage(), null); } - //log.info("微信零钱支付:" + wxCashOutP.toString() +", response: " + response.toString()); + log.info("微信零钱支付:, response: " + response.toString()); return generateResult(response,cashOut); // if (payAccount.getType() == EnumPayMode.MCH.getCode()) { @@ -290,7 +290,7 @@ public class WxCashOutAdapterService implements CashOutAdapterService{ log.error("零钱支付查询异常: " + e.getMessage(),e); throw new MallinkException(ErrorCode.REFUND_ORDER_ERROR.getCode(), "微信零钱支付查询接口异常:"+e.getMessage()); } - //log.info("微信零钱支付查询:"+ response.toString()); + log.info("微信零钱支付查询:"+ response.toString()); return getReusltFromQuery(response,cashOut); } diff --git a/mallinkService/src/main/java/com/iformall/utils/MaUtil.java b/mallinkService/src/main/java/com/iformall/utils/MaUtil.java index 97d12d7b7..772d2db4f 100644 --- a/mallinkService/src/main/java/com/iformall/utils/MaUtil.java +++ b/mallinkService/src/main/java/com/iformall/utils/MaUtil.java @@ -117,7 +117,7 @@ public class MaUtil { config.setSubMchId(payAccount.getSubMchId()); config.setKeyPath(payAccount.getCertPath()); config.setPrivateKeyPath(payAccount.getPrivateKeyPath()); - config.setPrivateCertPath(payAccount.getPrivateCertPath()); + config.setPrivateCertPath(payAccount.getPrivateCertPemPath()); //config.setCertSerialNo(payAccount.getCertSerialNo()); config.setApiV3Key(payAccount.getApiV3Key()); }else { @@ -128,7 +128,7 @@ public class MaUtil { config.setSubMchId(payAccount.getSubMchId()); config.setKeyPath(payAccount.getMerchantKeyPath()); config.setPrivateKeyPath(payAccount.getMerchantKeyPath()); - config.setPrivateCertPath(payAccount.getMerchantCertPath()); + config.setPrivateCertPath(payAccount.getMerchantCertPemPath()); //config.setCertSerialNo(payAccount.getCertSerialNo()); config.setApiV3Key(payAccount.getMerchantApiv3Key()); } diff --git a/mallinkService/src/main/resources/mapper/WxPayAccountMapper.xml b/mallinkService/src/main/resources/mapper/WxPayAccountMapper.xml index 7a90cde46..3a6ace6ae 100644 --- a/mallinkService/src/main/resources/mapper/WxPayAccountMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxPayAccountMapper.xml @@ -17,6 +17,7 @@ + @@ -27,13 +28,13 @@ - + `id`,`tenant_id`,`parent_tenant_id`,`mch_id`,`sub_mch_id`,`sub_app_id`,`api_key`,`merchant_api_key`,`notify_url`,`notify_token`,`cert_path`, - `merchant_cert_path`,`type`,`share`,`rate`,`real_rate`, - `service_id`,`pay_score_notify_url`,`api_v3_key`,`cert_serial_no`,`private_key_path`,`private_cert_path`,`merchant_key_path`,`merchant_apiv3_key` + `merchant_cert_path`,`type`,`share`,`rate`,`real_rate`,`service_id`,`pay_score_notify_url`,`api_v3_key`,`cert_serial_no`,`private_key_path`, + `private_cert_pem_path`,`merchant_key_path`,`merchant_apiv3_key`,`merchant_cert_pem_path`