package com.jsowell.api.uniapp; import com.alibaba.fastjson2.JSONObject; import com.jsowell.common.annotation.Anonymous; import com.jsowell.common.core.controller.BaseController; import com.jsowell.common.response.RestApiResponse; import com.jsowell.pile.domain.AuthorizationEventResult; import com.jsowell.pile.dto.GetComponentTokenDTO; import com.jsowell.service.AgentDevService; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; /** * 代开发小程序Controller * * @author Lemon * @Date 2023/7/27 15:09 */ @Anonymous @RestController @RequestMapping("/agentDev") public class AgentDevController extends BaseController { @Autowired private AgentDevService agentDevService; /** * 授权事件接收URL,验证票据 * 微信平台 10 分钟推送一次 * * @param timestamp * @param nonce * @param msgSignature * @param postData * @return */ @PostMapping("/platform/event") public ResponseEntity wechatPlatformEvent(@RequestParam("timestamp") String timestamp, @RequestParam("nonce") String nonce, @RequestParam("msg_signature") String msgSignature, @RequestBody String postData) { AuthorizationEventResult resultBean = new AuthorizationEventResult<>(); ResponseEntity responseEntity; logger.info("授权事件接收URL,验证票据"); try { resultBean.setData(agentDevService.parseRequest(timestamp, nonce, msgSignature, postData)); responseEntity = new ResponseEntity<>(resultBean, HttpStatus.OK); logger.info("第三方平台授权事件接收URL,验证票据成功"); } catch (Exception e) { logger.error("第三方平台授权事件接收URL,验证票据异常", e.getMessage(), e); AuthorizationEventResult errorResultBean = new AuthorizationEventResult<>(); errorResultBean.setMsg("第三方平台授权事件接收URL,验证票据异常"); errorResultBean.setErrorMsg(e.getMessage()); errorResultBean.setCode(422); responseEntity = new ResponseEntity<>(errorResultBean, HttpStatus.UNPROCESSABLE_ENTITY); } return responseEntity; } /** * 获取微信第三方平台令牌 * * @param dto * @return */ @PostMapping("/getComponentToken") public RestApiResponse getComponentToken(GetComponentTokenDTO dto) { logger.info("获取第三方平台令牌 params:{}", JSONObject.toJSONString(dto)); RestApiResponse response = null; try { String componentToken = agentDevService.getComponentToken(dto); response = new RestApiResponse<>(componentToken); } catch (Exception e) { logger.error("获取第三方平台令牌 error", e); response = new RestApiResponse<>(e); } logger.info("获取第三方平台令牌 result:{}", response); return response; } }