个人项目需要发送验证码?无法对接运营商,试试第三方工具阿里云吧

1、发送验证码

短信发送是电信运营商提供的服务,需要访问对应的接口,不同运营商提供的接口地址肯定不一样,如果直接访问这些接口就需要判断收信息的手机号属于哪个运营商,关键在于这些接口不对个人开放,还要考虑调用短信服务的费用问题
在这里插入图片描述

因此目前调用短信业务都是使用第三方企业的短信服务,他们与运营商合作,封装了短信接口,调用方法,而且费用相对便宜
在这里插入图片描述第三方的短信服务有很多,其中阿里云也提供了短信服务
我这里就是拿阿里云来做的

2、 短信服务(推荐)

2.1、注册购买

第一步:云市场搜索短信服务

地址:https://market.aliyun.com/?spm=5176.19720258.J_8058803260.16.e9392c4a1drmWI
在这里插入图片描述

在这里插入图片描述
第二步:选择购买的短信服务
在这里插入图片描述

第三步:点击购买,有5条免费使用,测试也会消耗使用次数,用完了在付费购买即可
在这里插入图片描述
第四步:找到自己购买的云服务

  • 点击【云市场】
    在这里插入图片描述
  • 点击头像

在这里插入图片描述

  • 可以看到已购买的服务

这里有几项重要信息:AppKey AppSecret AppCode 调用购买的这个短信服务接口时候需要用到,用于确认使用者身份

接口 : 调用该服务时访问的接口
在这里插入图片描述

第五步: 测试接口的使用

地址:https://market.aliyun.com/products/57124001/cmapi00037170.html?spm=5176.2020520132.101.3.5d1a7218uajiBO#sku=yuncode3117000001

注意不是购买,往下翻,购买下方就是测试内容以及提供的模板内容,如果需要自定义签名和模板内容,联系客服申请

在这里插入图片描述

  • 第六步: 调试接口测试,发送成功说明服务购买成功,可以使用

2.2、代码测试

  • 第一步:参考API,在【API接口】中已经给出了Java代码怎么调用该服务的接口
    在这里插入图片描述
    第二步:导入jar包
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.4.3</version>
</dependency>

第三步:参考API,编写发送短信工具类

import cn.hutool.http.Header;
import cn.hutool.http.HttpRequest;

import java.util.HashMap;
import java.util.Map;

/**
 * 测试短信
 */
public class SmsUtilTest {

    public static void main(String[] args) {
        //手机号码
        String mobile = "";
        //验证码
        String code = "";
        //签名ID。(联系客服申请。测试请用:2e65b1bb3d054466b82f0c9d125465e2)
        String smsSignId="";
        //模板ID。(联系客服申请。测试ID请用:908e94ccf08b4476ba6c876d13f084ad,短信内容为 { 验证码:**code**,**minute**分钟内有效,请勿泄漏于他人!})
        String templateId="";
        //应用code  https://market.console.aliyun.com/imageconsole/index.htm?#/bizlist?_k=r5f9m0 查找
        String appCode="";

        //请求连接
        String host = "https://gyytz.market.alicloudapi.com/sms/smsSend";
        //拼装请求体
        Map<String, Object> querys = new HashMap<String, Object>();
        querys.put("mobile", mobile);
        querys.put("param", "**code**:"+code+",**minute**:5");
        querys.put("smsSignId", smsSignId);
        querys.put("templateId", templateId);

        try {
            String result = HttpRequest.post(host)
                    .header(Header.AUTHORIZATION, "APPCODE " + appCode)//头信息,多个头信息多次调用此方法即可
                    .form(querys)//表单内容
                    .timeout(20000)//超时,毫秒
                    .execute().body();
            System.out.println(result);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

然后就可以给你的手机发送短信验证码了
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值