|
|
@@ -8,18 +8,22 @@ import com.fasterxml.jackson.annotation.JsonProperty;
|
|
|
import com.fasterxml.jackson.databind.DeserializationFeature;
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
|
|
+import com.ruoyi.common.core.domain.model.LoginUser;
|
|
|
import com.ruoyi.common.core.text.Convert;
|
|
|
import com.ruoyi.common.enums.BindStatus;
|
|
|
import com.ruoyi.common.enums.ECardPayStatus;
|
|
|
import com.ruoyi.common.utils.DateUtils;
|
|
|
import com.ruoyi.common.utils.QRCodeUtils;
|
|
|
+import com.ruoyi.common.utils.SecurityUtils;
|
|
|
import com.ruoyi.common.utils.StringUtils;
|
|
|
import com.ruoyi.dz.domain.DzCards;
|
|
|
import com.ruoyi.dz.service.IDzCardsService;
|
|
|
import com.ruoyi.enums.CardDistributeStatus;
|
|
|
import com.ruoyi.enums.CardStatus;
|
|
|
+import com.ruoyi.framework.web.service.TokenService;
|
|
|
import com.ruoyi.system.service.ISysConfigService;
|
|
|
import com.ruoyi.system.service.ISysUserService;
|
|
|
+import com.ruoyi.system.service.IZuserTokenService;
|
|
|
import com.ruoyi.voluntary.domain.BBusiPaymentOrders;
|
|
|
import com.ruoyi.voluntary.service.IBBusiPaymentOrdersService;
|
|
|
import com.wechat.pay.contrib.apache.httpclient.WechatPayHttpClientBuilder;
|
|
|
@@ -69,13 +73,16 @@ public class WeixinPayService {
|
|
|
@Autowired
|
|
|
private IDzCardsService cardsService;
|
|
|
private final ISysUserService sysUserService;
|
|
|
+ private final SysLoginService sysLoginService;
|
|
|
private final ISysConfigService sysConfigService;
|
|
|
|
|
|
|
|
|
public WeixinPayService(@Value("${wxpay.mchid}") String mchId, @Value("${wxpay.key}") String apiV3Key,
|
|
|
- @Value("${wxpay.mchsn}") String mchSerialNo, @Value("${wxpay.privateKey}") String privateKey, ISysUserService sysUserService, ISysConfigService sysConfigService) throws Exception {
|
|
|
+ @Value("${wxpay.mchsn}") String mchSerialNo, @Value("${wxpay.privateKey}") String privateKey, ISysUserService sysUserService
|
|
|
+ , SysLoginService sysLoginService, ISysConfigService sysConfigService) throws Exception {
|
|
|
this.mchId = mchId;
|
|
|
this.sysUserService = sysUserService;
|
|
|
+ this.sysLoginService = sysLoginService;
|
|
|
this.sysConfigService = sysConfigService;
|
|
|
// 加载商户私钥(privateKey:私钥字符串)
|
|
|
// String privateKey = getKey();
|
|
|
@@ -173,6 +180,10 @@ public class WeixinPayService {
|
|
|
}
|
|
|
//查找一张未使用的电子卡
|
|
|
DzCards eCard = cardsService.selectOneECard();
|
|
|
+ if(null == eCard) {
|
|
|
+ log.warn("WxPay 无有效电子卡 {}", orderId);
|
|
|
+ return;
|
|
|
+ }
|
|
|
//修改电子卡已使用的状态。 电子卡新增时需要直接分配代理商,学生注册时year与outTime需要取b_busi_payment_orders里面的值(20220901已完成)
|
|
|
eCard.setStatus(CardStatus.Free.getVal());
|
|
|
eCard.setDistributeStatus(CardDistributeStatus.Assign.getVal());
|
|
|
@@ -192,6 +203,7 @@ public class WeixinPayService {
|
|
|
upUser.setBindStatus(BindStatus.Pend.code());
|
|
|
upUser.setCardId(eCard.getCardId());
|
|
|
sysUserService.updateUserProfile(upUser);
|
|
|
+ sysLoginService.updateBindStatus(upUser.getUserId(), upUser.getBindStatus());
|
|
|
}
|
|
|
|
|
|
public void processPaySuccess(PayOrderReq payResult) {
|