From 23ea7e81c68673501faad67f7ad3137fddd4ef70 Mon Sep 17 00:00:00 2001 From: zhanglin8526 <852614290@qq.com> Date: 星期六, 05 八月 2023 18:30:10 +0800 Subject: [PATCH] 1、定时任务 商户进件状态查询 2、小程序下单统一支付提交 3、订单核销分账 4、订单退款 5、支付、退款回调 6、分账回调 7、支付参数yml配置 --- /dev/null | 62 --------------- ruoyi-modules/ruoyi-order/src/main/resources/bootstrap.yml | 12 ++ ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/config/WxPayConfiguration.java | 54 +++++++++++++ ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 7 + ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/config/WxPayProperties.java | 49 ++++++++++++ 5 files changed, 118 insertions(+), 66 deletions(-) diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/config/MyWxPayConfig.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/config/MyWxPayConfig.java deleted file mode 100644 index 00e56cc..0000000 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/config/MyWxPayConfig.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.ruoyi.order.config; - -import com.github.binarywang.wxpay.config.WxPayConfig; -import com.github.binarywang.wxpay.service.WxPayService; -import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/** - * @author jqs34 - * @ClassName WxPayConfig - * @description: TODO - * @date 2023年03月06日 - * @version: 1.0 - */ -@Configuration -@ConditionalOnClass(WxPayService.class) -public class MyWxPayConfig { - //微信API - private static final String APP_ID = ""; - //微信商户号 - private static final String MAC_ID = ""; - //微信商户密钥 - private static final String MCH_KEY = ""; - //微信证书API - private static final String KEY_PATH = ""; - - private static final String PRIVATE_KEY_PATH = ""; - - private static final String PRIVATE_CERT_PATH = ""; - - private static final String API_V3_KEY = ""; - - // 分账特约商户 - private static final String PLATFORM_TY_MAC_ID = ""; - - public static String getPlatformTyMacId() { - return PLATFORM_TY_MAC_ID; - } - - @Bean - @ConditionalOnMissingBean - public WxPayService wxService() { - WxPayConfig payConfig = new WxPayConfig(); - payConfig.setAppId(APP_ID); - payConfig.setMchId(MAC_ID); - payConfig.setMchKey(MCH_KEY); - payConfig.setKeyPath(KEY_PATH); - payConfig.setPrivateKeyPath(PRIVATE_KEY_PATH); - payConfig.setPrivateCertPath(PRIVATE_CERT_PATH); - payConfig.setApiV3Key(API_V3_KEY); - // 可以指定是否使用沙箱环境 - payConfig.setUseSandboxEnv(false); - WxPayService wxPayService = new WxPayServiceImpl(); - wxPayService.setConfig(payConfig); - return wxPayService; - } - -} - diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/config/WxPayConfiguration.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/config/WxPayConfiguration.java new file mode 100644 index 0000000..9cd9524 --- /dev/null +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/config/WxPayConfiguration.java @@ -0,0 +1,54 @@ +package com.ruoyi.order.config; + +import com.github.binarywang.wxpay.config.WxPayConfig; +import com.github.binarywang.wxpay.service.WxPayService; +import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl; +import lombok.AllArgsConstructor; +import org.apache.commons.lang3.StringUtils; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @author Binary Wang + */ +@Configuration +@ConditionalOnClass(WxPayService.class) +@EnableConfigurationProperties(WxPayProperties.class) +@AllArgsConstructor +public class WxPayConfiguration { + + private WxPayProperties properties; + + // 分账特约商户 + private static String PLATFORM_TY_MAC_ID = ""; + + public static String getPlatformTyMacId() { + return PLATFORM_TY_MAC_ID; + } + + @Bean + @ConditionalOnMissingBean + public WxPayService wxService() { + WxPayConfig payConfig = new WxPayConfig(); + payConfig.setAppId(StringUtils.trimToNull(this.properties.getAppId())); + payConfig.setMchId(StringUtils.trimToNull(this.properties.getMchId())); + payConfig.setMchKey(StringUtils.trimToNull(this.properties.getMchKey())); + payConfig.setSubAppId(StringUtils.trimToNull(this.properties.getSubAppId())); + payConfig.setSubMchId(StringUtils.trimToNull(this.properties.getSubMchId())); + payConfig.setKeyPath(StringUtils.trimToNull(this.properties.getKeyPath())); + + // 平台特约商户号 + PLATFORM_TY_MAC_ID = this.properties.getPlatformTyMacId(); + + // 可以指定是否使用沙箱环境 + payConfig.setUseSandboxEnv(false); + + WxPayService wxPayService = new WxPayServiceImpl(); + wxPayService.setConfig(payConfig); + return wxPayService; + } + +} diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/config/WxPayProperties.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/config/WxPayProperties.java new file mode 100644 index 0000000..0089c12 --- /dev/null +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/config/WxPayProperties.java @@ -0,0 +1,49 @@ +package com.ruoyi.order.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; + +/** + * wxpay pay properties. + * + * @author Binary Wang + */ +@Data +@ConfigurationProperties(prefix = "wx.pay") +public class WxPayProperties { + /** + * 设置微信公众号或者小程序等的appid + */ + private String appId; + + /** + * 微信支付商户号 + */ + private String mchId; + + /** + * 微信支付商户密钥 + */ + private String mchKey; + + /** + * 平台特约商户号,用户平台收取服务费 + */ + private String platformTyMacId; + + /** + * 服务商模式下的子商户公众账号ID,普通模式请不要配置,请在配置文件中将对应项删除 + */ + private String subAppId; + + /** + * 服务商模式下的子商户号,普通模式请不要配置,最好是请在配置文件中将对应项删除 + */ + private String subMchId; + + /** + * apiclient_cert.p12文件的绝对路径,或者如果放在项目中,请以classpath:开头指定 + */ + private String keyPath; + +} diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java index 9d12bd4..95bc445 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java @@ -23,7 +23,7 @@ import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.utils.CodeFactoryUtil; import com.ruoyi.common.security.utils.SecurityUtils; -import com.ruoyi.order.config.MyWxPayConfig; +import com.ruoyi.order.config.WxPayConfiguration; import com.ruoyi.order.domain.dto.*; import com.ruoyi.order.domain.pojo.account.OrderPayment; import com.ruoyi.order.domain.pojo.account.OrderRefund; @@ -1478,11 +1478,12 @@ String sendMessage = ""; String resultMessage = ""; try { - // TODO 核销完成 开始分账(平台收取服务费) + // 核销完成 开始分账(平台收取服务费) OrderPayment payment = orderPaymentService.getByOrderId(orderId); String transactionId = payment.getTransactionId(); - String platformTyMacId = MyWxPayConfig.getPlatformTyMacId(); + // 平台特约商户号,用户平台收取服务费 + String platformTyMacId = WxPayConfiguration.getPlatformTyMacId(); R<String> resultMch = remoteShopService.getShopSubMchId(shopId); String subMchId = resultMch.getData(); diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-order/src/main/resources/bootstrap.yml index 79ddc73..c217d22 100644 --- a/ruoyi-modules/ruoyi-order/src/main/resources/bootstrap.yml +++ b/ruoyi-modules/ruoyi-order/src/main/resources/bootstrap.yml @@ -3,7 +3,7 @@ port: 10064 # Spring -spring: +spring: application: # 应用名称 name: ruoyi-order @@ -25,3 +25,13 @@ # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + +wx: + pay: + appId: #微信公众号或者小程序等的appid(平台) + mchId: #微信支付商户号(平台) + mchKey: #微信支付商户密钥(平台) + platformTyMacId: # 平台特约商户号,用户平台收取服务费 + subAppId: #服务商模式下的子商户公众账号ID (这个可以不用配置) + subMchId: #服务商模式下的子商户号 (二级商户号 也不用配置) + keyPath: # (商户平台 下载的V3证书)p12证书的位置,可以指定绝对路径,也可以指定类路径(以classpath:开头) -- Gitblit v1.7.1