sms
parent
f6230d6cf7
commit
30127d7735
|
|
@ -162,13 +162,23 @@ public class SmsRemote {
|
|||
String body = resp.getBody();
|
||||
log.info("助通短信发送响应: status={}, body={}", resp.getStatusCodeValue(), body);
|
||||
|
||||
// 融合云成功返回 HTTP 200,且响应 JSON 中 code=200
|
||||
if (resp.getStatusCodeValue() == 200) {
|
||||
response = SingleResponse.of(body);
|
||||
} else {
|
||||
log.warn("助通短信发送失败 - mobile={}, body={}", mobile, body);
|
||||
// 融合云 HTTP 状态码恒为 200,真正结果在 body 的 code 字段(200 才算成功)
|
||||
if (resp.getStatusCodeValue() != 200) {
|
||||
log.warn("助通短信发送失败(HTTP) - mobile={}, body={}", mobile, 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) {
|
||||
throw e;
|
||||
} catch (Exception e) {
|
||||
|
|
@ -255,6 +265,17 @@ public class SmsRemote {
|
|||
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("发送短信")
|
||||
@PostMapping("/sendMessage")
|
||||
|
|
|
|||
Loading…
Reference in New Issue