🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 一、概述 有时候,外部平台需要定时/非定时往当前系统中推送数据,类似微信支付回调机制,平台提供了一套通用的外部平台回调机制; ## 二、方案 外部推送地址: ``` ${rootUrl}/api/system/common/callback/{businessCode} ``` 定义businessCode对应处理器: ``` @Component public class GuangdongChinaUnicomCallbackProcessor implements CallbackProcessor { @Override public Object process(String applicationJsonBody, Map<String, String[]> xWwwFormUrlencodedParamMap, HttpServletRequest request) throws Exception { Result result = new Result(); result.setMsg("成功"); result.setSuccess(true); return result; } @Override public String businessCode() { return "gdb2b"; } public static class Result { private boolean success; private String msg; public boolean isSuccess() { return success; } public void setSuccess(boolean success) { this.success = success; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } } } ``` >[danger] > 1、businessCode是关联业务处理器与回调地址之间的唯一关联要素; > 2、如果推送数据采用的是application/json的时候,值从applicationJsonBody获取,如果采用application/x-www-form-urlencoded,则数据从xWwwFormUrlencodedParamMap获取; > 3、可以在这里直接处理业务逻辑,也可以不处理,通过异步的调度处理,如果性能要求高,建议异步处理,这里如例子代码所示那样,仅仅返回一个给推送端的响应报文即可;