业务侧接收消息的接口样例


package your_controller_package;

import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

@Slf4j
@RestController
@RequestMapping("/message")
public class RecvController {
  @PostMapping("/recv")
  public String recv(
      @RequestParam String productKey,
      @RequestParam String deviceName,
      @RequestParam String method,
      @RequestParam Long timestamp,
      @RequestParam String nonce,
      @RequestParam(required = false) String signature,
      @RequestBody Map<String, Object> body) {
      // 在这里处理你的业务逻辑
      // 可以验证signature,来判断消息是否有过篡改

    ObjectMapper mapper = new ObjectMapper();
    log.info(productKey);
    log.info(deviceName);
    log.info(method);
    log.info("{}", timestamp);
    log.info("{}", nonce);
    log.info("{}", signature);
    try {
      log.info("{}", mapper.writeValueAsString(body));
    } catch (Exception e) {
      log.error(e.getMessage());
    }
    return "success.";
  }
}