diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/YztTokenGenRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/YztTokenGenRequest.java
new file mode 100644
index 000000000..bf553b80a
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/YztTokenGenRequest.java
@@ -0,0 +1,21 @@
+package com.cool.store.request;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ *
+ * 营帐通token生成Request
+ *
+ *
+ * @author wangff
+ * @since 2026/4/12
+ */
+@Data
+public class YztTokenGenRequest {
+ @ApiModelProperty("门店编码")
+ @NotBlank(message = "门店编码不能为空")
+ private String storeNum;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/response/oppty/OpportunityApiResponse.java b/coolstore-partner-model/src/main/java/com/cool/store/response/oppty/OpportunityApiResponse.java
index f91202d63..4dafb70c4 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/response/oppty/OpportunityApiResponse.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/response/oppty/OpportunityApiResponse.java
@@ -15,4 +15,7 @@ public class OpportunityApiResponse {
private int code;
private Boolean success;
private T data;
+
+ private String retMsg;
+ private int retCode;
}
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ThirdXgjServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ThirdXgjServiceImpl.java
index 74b3a7404..20fbe54c5 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ThirdXgjServiceImpl.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ThirdXgjServiceImpl.java
@@ -124,7 +124,8 @@ public class ThirdXgjServiceImpl implements ThirdXgjService {
OpportunityApiResponse apiResponse = objectMapper.readValue(responseBody, javaType);
if (apiResponse.getCode() != 200) {
- throw new ServiceException(ErrorCodeEnum.THIRD_API_ERROR,apiResponse.getMsg());
+ String msg = StringUtils.isNotBlank(apiResponse.getRetMsg()) ? apiResponse.getRetMsg() : apiResponse.getMsg();
+ throw new ServiceException(ErrorCodeEnum.THIRD_API_ERROR, msg);
}
return apiResponse.getData();
}
diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/ThirdTokenController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/ThirdTokenController.java
new file mode 100644
index 000000000..dc6da67d0
--- /dev/null
+++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/ThirdTokenController.java
@@ -0,0 +1,47 @@
+package com.cool.store.controller.webc;
+
+import cn.hutool.jwt.JWTUtil;
+import com.cool.store.request.YztTokenGenRequest;
+import com.cool.store.response.ResponseResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ *
+ * 三方验签
+ *
+ *
+ * @author wangff
+ * @since 2026/4/12
+ */
+@Slf4j
+@RestController
+@RequestMapping("/mini/third/token")
+@Api(tags = "三方验签")
+public class ThirdTokenController {
+
+ private static final long EXPIRE_SECONDS = 3600;
+
+ @Value("${third.party.appKey}")
+ private String appKey;
+ @Value("${third.party.secret}")
+ private String secret;
+
+ @PostMapping("/generate")
+ @ApiOperation("营帐通JWT")
+ public ResponseResult generateToken(@RequestBody @Validated YztTokenGenRequest request) {
+ Map payload = new HashMap<>();
+ payload.put("platform", "crm");
+ payload.put("storeSn", request.getStoreNum());
+ payload.put("appKey", appKey);
+ payload.put("exp", System.currentTimeMillis() / 1000 + EXPIRE_SECONDS);
+ return ResponseResult.success(JWTUtil.createToken(payload, secret.getBytes()));
+ }
+}
diff --git a/coolstore-partner-web/src/main/resources/application-ab.properties b/coolstore-partner-web/src/main/resources/application-ab.properties
index 68483f4b8..2f9923b52 100644
--- a/coolstore-partner-web/src/main/resources/application-ab.properties
+++ b/coolstore-partner-web/src/main/resources/application-ab.properties
@@ -101,6 +101,7 @@ qywx.task.notice.url2=https://tstore-h5.coolstore.cn/?corpId=%s&appType=%s#/noti
#机会点地址
third.party.appKey=IGSAEQoakR2HEaYx
third.party.appSecret=aPsA99K1obFeFm3m
+third.party.secret=aPsA99K1obFeFm3m
zx.opportunity.url=https://snp.wenmatech.com/
#大数据地址
diff --git a/coolstore-partner-web/src/main/resources/application-local.properties b/coolstore-partner-web/src/main/resources/application-local.properties
index 80cdb3c42..0af9c2f38 100644
--- a/coolstore-partner-web/src/main/resources/application-local.properties
+++ b/coolstore-partner-web/src/main/resources/application-local.properties
@@ -98,6 +98,7 @@ qywx.task.notice.url2=https://tstore-h5.coolstore.cn/?corpId=%s&appType=%s#/noti
#机会点地址
third.party.appKey=IGSAEQoakR2HEaYx
third.party.appSecret=aPsA99K1obFeFm3m
+third.party.secret=aPsA99K1obFeFm3m
zx.opportunity.url=https://snp.wenmatech.com/
#大数据地址
diff --git a/coolstore-partner-web/src/main/resources/application-online.properties b/coolstore-partner-web/src/main/resources/application-online.properties
index a58dce769..07cdb9d71 100644
--- a/coolstore-partner-web/src/main/resources/application-online.properties
+++ b/coolstore-partner-web/src/main/resources/application-online.properties
@@ -115,6 +115,7 @@ yls.api.auth.secret=3b56198f096d4009072c927c96fbc8b6
#机会点地址 已确定
third.party.appKey=IGSAEQoakR2HEaYx
third.party.appSecret=aPsA99K1obFeFm3m
+third.party.secret=aPsA99K1obFeFm3m
zx.opportunity.url=https://snp.wenmatech.com/
#大数据地址 已确定
diff --git a/coolstore-partner-web/src/main/resources/application-test.properties b/coolstore-partner-web/src/main/resources/application-test.properties
index c03c114eb..7b7de0c7f 100644
--- a/coolstore-partner-web/src/main/resources/application-test.properties
+++ b/coolstore-partner-web/src/main/resources/application-test.properties
@@ -99,6 +99,7 @@ qywx.task.notice.url2=https://tstore-h5.coolstore.cn/?corpId=%s&appType=%s#/noti
#机会点地址
third.party.appKey=IGSAEQoakR2HEaYx
third.party.appSecret=aPsA99K1obFeFm3m
+third.party.secret=aPsA99K1obFeFm3m
zx.opportunity.url=https://snp.wenmatech.com/
#大数据地址