소스 검색

更新!

TRX 1 년 전
부모
커밋
ee0fc055e6

+ 4 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/wechat/UnlimitedQRCodeParam.java

@@ -1,5 +1,6 @@
 package com.zhongshu.card.client.model.wechat;
 
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 @Data
@@ -10,4 +11,7 @@ public class UnlimitedQRCodeParam {
     private String page;
 
     private String projectId;
+
+    @Schema(description = "版本类型")
+    private String envVersion;
 }

+ 12 - 12
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/wxQRCode/WeChatService.java

@@ -9,18 +9,14 @@ import com.github.microservice.core.util.net.apache.MethodType;
 import com.github.microservice.core.util.net.apache.ResponseModel;
 import com.github.microservice.net.ResultContent;
 import com.github.microservice.net.ResultState;
-import com.zhongshu.card.client.model.pay.UnionApplySignParam;
 import com.zhongshu.card.client.model.projectAbout.ProjectWeChatInfoModel;
 import com.zhongshu.card.client.model.qrCode.QRCodeSceneModel;
 import com.zhongshu.card.client.model.wechat.AccessTokenVo;
 import com.zhongshu.card.client.model.wechat.UnlimitedQRCodeParam;
-import com.zhongshu.card.server.core.controller.projectAbout.ProjectWeChatInfoController;
 import com.zhongshu.card.server.core.dao.qrCode.QRCodeSceneDao;
 import com.zhongshu.card.server.core.domain.qrCode.QRCodeScene;
 import com.zhongshu.card.server.core.service.base.RedisService;
 import com.zhongshu.card.server.core.service.projectAbout.ProjectWeChatInfoService;
-import com.zhongshu.card.server.core.util.CommonUtil;
-import com.zhongshu.card.server.core.util.wx.WechatCUtil;
 import jakarta.servlet.http.HttpServletResponse;
 import lombok.Cleanup;
 import lombok.SneakyThrows;
@@ -59,13 +55,13 @@ public class WeChatService {
     public void UnlimitedQRCode(UnlimitedQRCodeParam param, HttpServletResponse response) {
 
         ResultContent<ProjectWeChatInfoModel> weChatInfoRet = projectWeChatInfoService.getProjectWeChatInfo(param.getProjectId());
-        if (!weChatInfoRet.getState().equals(ResultState.Success)){
+        if (!weChatInfoRet.getState().equals(ResultState.Success)) {
             throw new RuntimeException("项目未配置微信小程序");
         }
 
         ProjectWeChatInfoModel weChatInfoModel = weChatInfoRet.getContent();
 
-        if (StringUtils.isBlank(weChatInfoModel.getAppId()) || StringUtils.isBlank(weChatInfoModel.getAppSecret())){
+        if (StringUtils.isBlank(weChatInfoModel.getAppId()) || StringUtils.isBlank(weChatInfoModel.getAppSecret())) {
             throw new RuntimeException("appId或者secret为空");
         }
 
@@ -78,17 +74,17 @@ public class WeChatService {
         qrCodeScene.setScene(param.getScene());
         qrCodeSceneDao.save(qrCodeScene);
 
-        byte[] unlimitedQRCodeToByte = getUnlimitedQRCodeToByte(sceneId, param.getPage(), accessToken);
-        response.addHeader("Content-Type","image/jpeg");
+        byte[] unlimitedQRCodeToByte = getUnlimitedQRCodeToByte(sceneId, param.getPage(), param.getEnvVersion(), accessToken);
+        response.addHeader("Content-Type", "image/jpeg");
         @Cleanup OutputStream outputStream = response.getOutputStream();
         outputStream.write(unlimitedQRCodeToByte);
         outputStream.flush();
     }
 
-    public ResultContent getScene(String sceneId){
+    public ResultContent getScene(String sceneId) {
         QRCodeScene qrCodeScene = qrCodeSceneDao.findTopBySceneId(sceneId);
         QRCodeSceneModel qrCodeSceneModel = new QRCodeSceneModel();
-        if (qrCodeScene != null){
+        if (qrCodeScene != null) {
             BeanUtils.copyProperties(qrCodeScene, qrCodeSceneModel);
         }
         return ResultContent.buildContent(qrCodeSceneModel);
@@ -130,7 +126,7 @@ public class WeChatService {
      * @return
      * @throws Exception
      */
-    public byte[] getUnlimitedQRCodeToByte(String scene, String page, String accessToken) throws Exception {
+    public byte[] getUnlimitedQRCodeToByte(String scene, String page, String envVersion, String accessToken) throws Exception {
         String url = String.format(UNLIMITED_QRCODE_URL, accessToken);
         Map<String, String> header = new HashMap<>();
         header.put("Content-Type", "image/jpeg");
@@ -139,7 +135,11 @@ public class WeChatService {
         if (StringUtils.isNotEmpty(page)) {
             map.put("page", page);
         }
-        map.put("env_version", "trial");
+        // 'develop'(开发版),'trial'(体验版),'release'(正式版)
+        if (StringUtils.isEmpty(envVersion)) {
+            envVersion = "trial";
+        }
+        map.put("env_version", envVersion);
         HttpClient.ResultBean resultBean = new HttpClient().ReadDocuments(url, true,
                 JSONUtil.toJsonStr(map).getBytes(), header);
         if (200 == resultBean.getStat()) {