开发者社区> 问答> 正文

手机接收验证码失败

问题描述

使用阿里云的短信服务中的测试专用签名模板时,我在使用swigger测试的时候,发送状态是成功的,同时我在redis中get我的手机号,也有验证码返回,问题是手机接收不到验证码。

期望结果

...

已尝试的方法

代码:

@Override
public boolean send(Map<String, Object> param, String phone) {

    if(StringUtils.isEmpty(phone))
        return false;

    DefaultProfile profile =
            DefaultProfile.getProfile("cn-shanghai", "LTA******Hdr", "lzsX********gPx");
    IAcsClient client = new DefaultAcsClient(profile);

    // SendSmsRequest request = new SendSmsRequest();
    // request.setSignName("阿里云短信测试");
    // request.setTemplateCode("SMS_154950909");
    // request.setPhoneNumbers(phone);
    // request.setTemplateParam(JSONObject.toJSONString(param));


    // 设置相关固定的参数
    CommonRequest request = new CommonRequest();
    request.setMethod(MethodType.POST);
    request.setDomain("dysmsapi.aliyuncs.com");
    request.setVersion("2017-05-25");
    request.setAction("SendSms");

    //设置发送相关的参数
    request.putQueryParameter("PhoneNumbers",phone); //手机号
    request.putQueryParameter("SignName","测试专用模板");        //申请阿里云 签名名称
    request.putQueryParameter("TemplateCode","SMS_154950909");      //申请阿里云 模板code
    request.putQueryParameter("TemplateParam", JSONObject.toJSONString(param));     //验证码数据,转换json数据传递

    try {
        //最终发送
        CommonResponse response = client.getCommonResponse(request);
        boolean success = response.getHttpResponse().isSuccess();
        return success;
    }catch(Exception e) {
        e.printStackTrace();
        return false;
    }
}

展开
收起
子线程sad 2022-08-31 10:59:27 150 0
2 条回答
写回答
取消 提交回答
  • 与答案无关,请记得千万不要在公开的位置上,分享你的 AK。

    鉴于你已经把 AK 粘贴在这里了,请创建一个新的 AK 替代现在的 AK,然后尽快禁用并删除你的 AK,避免其他人通过你的 AK 创建资源。

    2022-08-31 13:34:26
    赞同 展开评论 打赏
  • 针对您的情况,已查询回执,显示接收成功。

    已有信息显示的流程没有问题。

    您可以

    1. 重新测试一次,尝试是否成功。

    2. 留意是否被手机拦截。

    2022-08-31 12:08:25
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载