sms
parent
f6230d6cf7
commit
30127d7735
|
|
@ -162,13 +162,23 @@ public class SmsRemote {
|
||||||
String body = resp.getBody();
|
String body = resp.getBody();
|
||||||
log.info("助通短信发送响应: status={}, body={}", resp.getStatusCodeValue(), body);
|
log.info("助通短信发送响应: status={}, body={}", resp.getStatusCodeValue(), body);
|
||||||
|
|
||||||
// 融合云成功返回 HTTP 200,且响应 JSON 中 code=200
|
// 融合云 HTTP 状态码恒为 200,真正结果在 body 的 code 字段(200 才算成功)
|
||||||
if (resp.getStatusCodeValue() == 200) {
|
if (resp.getStatusCodeValue() != 200) {
|
||||||
response = SingleResponse.of(body);
|
log.warn("助通短信发送失败(HTTP) - mobile={}, body={}", mobile, body);
|
||||||
} else {
|
|
||||||
log.warn("助通短信发送失败 - mobile={}, body={}", mobile, body);
|
|
||||||
throw new BizException("SMS_SEND_FAIL", "短信发送失败: " + body);
|
throw new BizException("SMS_SEND_FAIL", "短信发送失败: " + body);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 解析 body 中的 code 字段判断业务结果
|
||||||
|
Map<String, Object> bodyMap = parseJson(body);
|
||||||
|
int code = bodyMap.get("code") instanceof Number
|
||||||
|
? ((Number) bodyMap.get("code")).intValue() : -1;
|
||||||
|
if (code != 200) {
|
||||||
|
String msg = bodyMap.getOrDefault("msg", "未知错误").toString();
|
||||||
|
log.error("助通短信发送失败(业务) - mobile={}, code={}, msg={}", mobile, code, msg);
|
||||||
|
throw new BizException("SMS_SEND_FAIL",
|
||||||
|
"短信发送失败[" + code + "]: " + msg);
|
||||||
|
}
|
||||||
|
response = SingleResponse.of(body);
|
||||||
} catch (BizException e) {
|
} catch (BizException e) {
|
||||||
throw e;
|
throw e;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|
@ -255,6 +265,17 @@ public class SmsRemote {
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 解析 JSON 字符串为 Map(基于 hutool JSONUtil)
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
private Map<String, Object> parseJson(String json) {
|
||||||
|
if (StringUtils.isBlank(json)) {
|
||||||
|
return Collections.emptyMap();
|
||||||
|
}
|
||||||
|
return JSONUtil.parseObj(json);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@ApiOperation("发送短信")
|
@ApiOperation("发送短信")
|
||||||
@PostMapping("/sendMessage")
|
@PostMapping("/sendMessage")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue