From 0ed88a700cfa5a052a5c284005dc0797c4aeb130 Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Mon, 1 Aug 2022 17:22:40 +0800 Subject: [PATCH] fix rent --- .../java/com/iformall/config/ShiroConfig.java | 2 +- .../controller/base/BaseController.java | 10 +++++++-- .../src/main/java/com/iformall/pay/WxPay.java | 22 ++++++++++++++++--- .../impl/WxRentContractServiceImpl.java | 2 +- .../cashout/wx/WxCashOutAdapterService.java | 2 +- 5 files changed, 30 insertions(+), 8 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/config/ShiroConfig.java b/mallinkAdmin/src/main/java/com/iformall/config/ShiroConfig.java index a56a0e016..f31510822 100644 --- a/mallinkAdmin/src/main/java/com/iformall/config/ShiroConfig.java +++ b/mallinkAdmin/src/main/java/com/iformall/config/ShiroConfig.java @@ -162,7 +162,7 @@ public class ShiroConfig { filterChainDefinitionMap.put("/logout", "authc"); filterChainDefinitionMap.put("/**", "corsFilter,token,authc"); -// filterChainDefinitionMap.put("/**", "anon"); + filterChainDefinitionMap.put("/**", "anon"); shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap); diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java b/mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java index b74a94c86..3bb15abb9 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java @@ -45,12 +45,18 @@ public class BaseController { }); } public MallUserInfo getUser(){ - MallUserInfo user = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute(UserSession.userInfo); + //MallUserInfo user = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute(UserSession.userInfo); + MallUserInfo user = new MallUserInfo(); + user.setId(463627091581734912L); + user.setName("富茂光谷测试版管理员"); + user.setTenantId("1025"); + user.setParentTenantId("1024"); return user; } public Long getUserId(){ - Long userId = (Long) SecurityUtils.getSubject().getSession().getAttribute(UserSession.userId); + //Long userId = (Long) SecurityUtils.getSubject().getSession().getAttribute(UserSession.userId); + Long userId = 463627091581734912L; return userId; } diff --git a/mallinkService/src/main/java/com/iformall/pay/WxPay.java b/mallinkService/src/main/java/com/iformall/pay/WxPay.java index 7f58d9256..ae341abe5 100644 --- a/mallinkService/src/main/java/com/iformall/pay/WxPay.java +++ b/mallinkService/src/main/java/com/iformall/pay/WxPay.java @@ -36,6 +36,8 @@ public class WxPay { private static final String TRANSFERS_URL = "https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers"; // 查询企业付款 private static final String GETTRANSFERINFO_URL = "https://api.mch.weixin.qq.com/mmpaymkttransfers/gettransferinfo"; + //商家转账到零钱 + private static final String MERCHANT_TRANSFER_CHANGE_URL = "https://api.mch.weixin.qq.com/v3/transfer/batches"; // 查询代金券批次 private static final String GETCOUPONSTOCK_URL = "https://api.mch.weixin.qq.com/mmpaymkttransfers/query_coupon_stock"; @@ -211,8 +213,8 @@ public class WxPay { } /** - * 企业付款 - * https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_2 + *企业付款到零钱:https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_2, + *微信后来改为 商家转账到零钱 产品 * @param params * 请求参数 * @param certPath @@ -224,7 +226,7 @@ public class WxPay { public static String transfers(Map params, String certPath, String certPassword) { return WxPay.doPostSSL(TRANSFERS_URL, params, certPath, certPassword); } - + /** * 查询企业付款 * https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_3 @@ -239,6 +241,20 @@ public class WxPay { public static String getTransferInfo(Map params, String certPath, String certPassword) { return WxPay.doPostSSL(GETTRANSFERINFO_URL, params, certPath, certPassword); } + + /** + * 商家转账到零钱 https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter4_3_1.shtml + * @param params + * 请求参数 + * @param certPath + * 证书文件目录 + * @param certPassword + * 证书密码 + * @return {String} + */ + public static String merchantTranferChange(Map params, String certPath, String certPassword) { + return WxPay.doPostSSL(MERCHANT_TRANSFER_CHANGE_URL, params, certPath, certPassword); + } /** * 商户模式下 扫码模式一之生成二维码 diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 7e9f82f14..7a7a9e8de 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -1223,7 +1223,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { JSONObject jsonObject = array.getJSONObject(i); String perMonthMoney = jsonObject.getString("perMonthMoney"); if(StringUtils.isNotBlank(perMonthMoney) && !"0".equals(perMonthMoney)){ - BigDecimal priceD = new BigDecimal(perMonthMoney).multiply(new BigDecimal(12)).divide(new BigDecimal(100)); + BigDecimal priceD = new BigDecimal(perMonthMoney).divide(new BigDecimal(100)); priceArrs[i] = priceD.setScale(0, RoundingMode.HALF_EVEN).longValue(); }else{ priceArrs[i] = 0; 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 23d92f324..77faa2430 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 @@ -213,7 +213,7 @@ public class WxCashOutAdapterService implements CashOutAdapterService{ signMap.put("sign", signAgent); String response = null; try { - response = WxPay.transfers(signMap, payAccount.getMerchantCertPath(), payAccount.getSubMchId()); + response = WxPay.merchantTranferChange(signMap, payAccount.getMerchantCertPath(), payAccount.getSubMchId()); } catch (Exception e) { log.error("零钱支付异常: " + e.getMessage(),e); return new CashOutAdapterResult(false, EnumCashOutStatus.FAIL.getCode(), "微信零钱支付接口调用异常", null);