feat: 增加微信和支付包配置

This commit is contained in:
TS-QD1 2025-05-08 19:57:51 +08:00
parent 455a7ada28
commit a9c7252b41
9 changed files with 60 additions and 11 deletions

View File

@ -90,8 +90,11 @@ public class SystemUserRouteController extends DefaultBaseController {
ModelAndView mv = new ModelAndView();
Map<String, String> pageParams = oAuthService.getPageParams(request);
pageParams.put("loginPhoneAction", "oauth/phone");
pageParams.put("wxOauth", wxOauth2Properties.getActivate() ? ISystemConstant.IS_TRUE : ISystemConstant.IS_FALSE);
if (wxOauth2Properties.getActivate()) {
pageParams.put("wxAppid", wxOauth2Properties.getAppid());
pageParams.put("wxRedirectUri", wxOauth2Properties.getRedirectUri());
}
mv.addObject(IUserCenterConst.PAGE_PARAMS, pageParams);
mv.addObject(IUserCenterConst.CUSTOM_LOGIN_FORM, loginFormService.getActive());
mv.addObject("HomeServerUrl", ProjectConfigUtil.getText("HomeServerUrl"));

View File

@ -7,9 +7,18 @@ import org.springframework.stereotype.Component;
@ConfigurationProperties(prefix = "wx-miniapp")
public class WxMiniappProperties {
private Boolean activate;
private String appid;
private String appsecret;
public Boolean getActivate() {
return !(activate == null) && activate;
}
public void setActivate(Boolean activate) {
this.activate = activate;
}
public String getAppid() {
return appid == null ? "" : appid.trim();
}

View File

@ -7,10 +7,18 @@ import org.springframework.stereotype.Component;
@ConfigurationProperties(prefix = "wx-oauth2")
public class WxOauth2Properties {
private Boolean activate;
private String appid;
private String appsecret;
private String redirectUri;
public Boolean getActivate() {
return !(activate == null) && activate;
}
public void setActivate(Boolean activate) {
this.activate = activate;
}
public String getAppid() {
return appid == null ? "" : appid.trim();

View File

@ -63,6 +63,10 @@ public class UserWxMiniappService {
*/
@PostConstruct
public void refreshAccessToken() {
if(!wxMiniappProperties.getActivate()) {
LOG.debug("小程序未激活");
return;
}
long currentTimeMillis = System.currentTimeMillis();
if (miniappAccessToken != null && (currentTimeMillis - miniappAccessToken.getUpdateTime() < 5400000)) {
LOG.debug("小程序 access_token 不需要刷新, 刷新时间: {}", LocalDateTime.fromDateFields(new Date(miniappAccessToken.getUpdateTime() + 5400000)));

View File

@ -11,7 +11,7 @@ import org.springframework.context.annotation.Configuration;
@Configuration
@ConfigurationProperties(prefix = "pay.ali-pay")
public class AliPayProperties {
private Boolean activate;
// 应用ID
private String appId;
@ -36,6 +36,14 @@ public class AliPayProperties {
// 单笔最小金额
private Double minMoney;
public Boolean getActivate() {
return !(activate == null) && activate;
}
public void setActivate(Boolean activate) {
this.activate = activate;
}
public String getAppId() {
return appId == null ? "" : appId.trim();
}

View File

@ -11,7 +11,7 @@ import org.springframework.context.annotation.Configuration;
@Configuration
@ConfigurationProperties(prefix = "pay.wx-pay")
public class WxPayProperties {
private Boolean activate;
// 商户号
private String mchId;
@ -70,6 +70,14 @@ public class WxPayProperties {
return service;
}
public Boolean getActivate() {
return !(activate == null) && activate;
}
public void setActivate(Boolean activate) {
this.activate = activate;
}
public String getMchId() {
return mchId == null ? "" : mchId.trim();
}

View File

@ -6,10 +6,7 @@ import cn.com.tenlion.operator.pojo.dtos.accountrecharge.AccountRechargeDTO;
import cn.com.tenlion.operator.pojo.dtos.accountrecharge.AccountRechargePayResultDTO;
import cn.com.tenlion.operator.pojo.pos.accountrecharge.AccountRechargePO;
import cn.com.tenlion.operator.service.accountrecharge.IAccountRechargeService;
import cn.com.tenlion.operator.util.pay.ALiPay;
import cn.com.tenlion.operator.util.pay.PayResultDTO;
import cn.com.tenlion.operator.util.pay.PayUtil;
import cn.com.tenlion.operator.util.pay.WXPay;
import cn.com.tenlion.operator.util.pay.*;
import ink.wgink.interfaces.consts.ISystemConstant;
import org.apache.commons.lang3.StringUtils;
import org.quartz.DisallowConcurrentExecution;
@ -31,9 +28,14 @@ public class WxPayResultCheckTask {
private static final Logger LOG = LoggerFactory.getLogger(WxPayResultCheckTask.class);
@Autowired
private IAccountRechargeService iAccountRechargeService;
@Autowired
private AliPayProperties aliPayProperties;
@Autowired
private WxPayProperties wxPayProperties;
private static IAccountRechargeService iAccountRechargeStaticService;
@PostConstruct
public void init() throws Exception {
iAccountRechargeStaticService = this.iAccountRechargeService;
@ -90,7 +92,7 @@ public class WxPayResultCheckTask {
accountRechargePOS.forEach(po -> {
LocalDateTime now = LocalDateTime.now();
LocalDateTime gmtCreateDateTime = LocalDateTime.parse(po.getGmtCreate(), DateTimeFormatter.ofPattern(ISystemConstant.DATE_FORMATTER_YYYY_MM_DD_HH_MM_SS));
if (StringUtils.equals(po.getThirdParty(), ThirdPartyEnum.WX.getValue())) {
if (StringUtils.equals(po.getThirdParty(), ThirdPartyEnum.WX.getValue()) && wxPayProperties.getActivate()) {
PayResultDTO payResultDTO = WXPay.queryPay(po.getAccountRechargeId());
// 成功
if (payResultDTO.getOrderStatus().equals("1") && payResultDTO.getMoney().equals(PayUtil.buiderMoney(po.getRechargeMoney()))) {
@ -100,7 +102,7 @@ public class WxPayResultCheckTask {
iAccountRechargeStaticService.updateClose(po.getAccountRechargeId());
}
}
} else if (StringUtils.equals(po.getThirdParty(), ThirdPartyEnum.ZFB.getValue())) {
} else if (StringUtils.equals(po.getThirdParty(), ThirdPartyEnum.ZFB.getValue()) && aliPayProperties.getActivate()) {
PayResultDTO payResultDTO = ALiPay.queryPay(po.getAccountRechargeId());
// 成功
if (payResultDTO.getOrderStatus().equals("1") &&

View File

@ -160,6 +160,7 @@ sms:
pay:
wx-pay:
activate: false
# 商户号
mch-id: 1609461201
# 商户API证书序列号
@ -181,6 +182,7 @@ pay:
# 单笔最小金额
min-money: 0.01
ali-pay:
activate: false
# 应用ID
# 西藏 app-id: 2021004137636507
app-id: 2021004138650351
@ -205,9 +207,11 @@ app-token:
has-role: true
wx-miniapp:
activate: false
appid: wxe17874894f7ff27b
appsecret: 0c2b1371e4fb32514030233da4ef094d
wx-oauth2:
activate: false
appid: wxb6296ee6223aafa0
appsecret: 09c423893098cd5566aead093ea5c25c
# redirect-uri: https://www.aimzhu.com/operator/oauth/wx/qrcode

View File

@ -185,7 +185,7 @@
<div class="footer">
<div class="login-type">
<div class="third-login">
<a href="javascript:void(0);" class="wx-login logo" @click="onLoginTypeClick('wx')" v-if="loginType !== 'wx'">
<a href="javascript:void(0);" class="wx-login logo" @click="onLoginTypeClick('wx')" v-if="pageParams.wxOauth === 'true' && loginType !== 'wx'">
<img src="assets/images/wx-login.png" alt="加载失败"/>
</a>
</div>
@ -428,6 +428,9 @@
})
},
initWxQrcode: function() {
if(this.pageParams.wxOauth === 'false') {
return;
}
// var layIndex = layer.msg('正在加载二维码,请稍后...', {icon: 16, shade: 0.1, time: 0});
var obj = new WxLogin({
self_redirect: false,