|
|
@@ -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()) {
|