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/ #大数据地址