接收并处理5G CSP平台发送的上行消息接口
接口功能
接收并处理5G CSP平台发送的上行消息。
接口鉴权
通过5G消息请求头中Authorization进行鉴权认证。
Authorization中字符串截取出appId、appSecret,从渠道配置的获取appId、appSecret,进行对比。
private boolean checkPostFromCsp(HttpServletRequest request, ChannelConfig channelConfig) {
if (StringUtils.isEmpty(request.getHeader(CommonConstants.CSP_AUTHORIZATION_NAME))) {
log.error("Authorization is null, tenantId:{}, channelId:{}", channelConfig.getTenantId(), channelConfig.getId());
return false;
}
String authorization = request.getHeader(CommonConstants.CSP_AUTHORIZATION_NAME);
String[] authorizations = authorization.split(",");
String username = authorizations[0].substring(authorizations[0].indexOf("\"") + 1, authorizations[0].lastIndexOf("\""));
String password = authorizations[1].substring(authorizations[1].indexOf("\"") + 1, authorizations[1].lastIndexOf("\""));
if (!username.equals(channelConfig.getAppId()) || !password.equals(channelConfig.getAppSecret())) {
log.error("Authorization is not match, tenantId:{}, channelId:{}", channelConfig.getTenantId(), channelConfig.getId());
return false;
}
return true;
} 接口原型
请求方法 | POST | |
|---|---|---|
请求URL | https://ip:port/social/on/5G/{channelId} | 其中,ip:port为对外暴露的nslb的ip和port, channelId为渠道id |
请求参数
参数名称 | 选取原则 | 参数类型 | 默认值 | 说明 |
|---|---|---|---|---|
Content-Type | 必选 | String | 无 | 固定填 application/json; charset=UTF-8。 |
Authorization | 必选 | String | 无 | 请求headers中鉴权参数。 |
Tid | 可选 | String | 无 | 媒体审核结果。表3 |
Authstatus | 有Tid时必选 | String | 无 | 媒体审核结果。表3 |
Address | 可选 | String | 无 | 5G消息到达时必有。表6 |
参数名称 | 选取原则 | 参数类型 | 默认值 | 说明 |
|---|---|---|---|---|
type | 必选 | String | 无 | 多媒体文件详情。 |
file-size | 必选 | String | 无 | 文件大小。 |
file-name | 可选 | String | 无 | 文件名称,type为file存在。 |
content-type | 必选 | String | 无 | 文件响应格式。 |
data | 必选 | JSONArray | 无 | 文件详细信息。表5 |
参数名称 | 选取原则 | 参数类型 | 默认值 | 说明 |
|---|---|---|---|---|
senderAddress | 必选 | String | 无 | 消息回调地址。 |
sender | 必选 | JSONObject | 无 | messaging事件 level3 sender |
接口示例
- 请求示例
POST /social/on/5G/{channelId} HTTP/1.1 **************** Accept: */* Content-Type: application/xml;charset=UTF-8 { "file_info": [ "type" : "mp4", "file-size" :"2M", "file-name" : "1.mp4", "content-type": "", "data": [ "url" : "https://www.5G/xxxx", "util": "" ] ], "inboundMessage" : [ "senderAddress": "", "sender": "" ] }

