package com.ruoyi.message.sms.provider.nhfy; import com.ruoyi.message.MessageChannel; import com.ruoyi.message.SendResult; import com.ruoyi.message.sms.AbstractSmsSender; import com.ruoyi.message.sms.SmsSendRequest; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import java.util.Map; /** * 南华附一短信发送方({@code nhfy} 通道)。 *

* 对接特征:REST + 行业汇聚平台 {@code /submitsm},鉴权 {@code HASHHEX = MD5(MD5:账号:密码:时间)}, * 成功判定为响应 {@code result == "0"}。 * 代码来源:{@code RyTask.nhfy 分支} + {@code RedisMqReceiver.nhfy 分支} + {@code SmsController} + {@code smsSubTask}。 */ @Slf4j @Component public class NhfySmsSender extends AbstractSmsSender { /** * 渠道 key,与 {@code spring.profiles.active=nhfy} 对应 */ public static final String KEY = "nhfy"; private final MtSubmitSmUtil mtSubmitSmUtil; public NhfySmsSender(MtSubmitSmUtil mtSubmitSmUtil) { this.mtSubmitSmUtil = mtSubmitSmUtil; } @Override public String key() { return KEY; } @Override public String description() { return "南华附一短信(行业汇聚平台 /submitsm)"; } @Override protected SendResult doSend(SmsSendRequest request) { Map resp = mtSubmitSmUtil.submitSm(request.getPhone(), request.getContent()); log.info("【{}】南华附一短信发送结果:{}", KEY, resp); Object result = resp == null ? null : resp.get("result"); String code = result == null ? null : result.toString(); if (MtSubmitSmUtil.isSuccess(resp)) { return SendResult.success(KEY, MessageChannel.SMS, String.valueOf(resp)).withCode(code); } return SendResult.fail(KEY, MessageChannel.SMS, "短信发送失败", String.valueOf(resp)).withCode(code); } }