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

Posted 一只楠喃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了个人项目需要发送验证码?无法对接运营商,试试第三方工具阿里云吧相关的知识,希望对你有一定的参考价值。

验证码

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();
        
    

然后就可以给你的手机发送短信验证码了

以上是关于个人项目需要发送验证码?无法对接运营商,试试第三方工具阿里云吧的主要内容,如果未能解决你的问题,请参考以下文章

瑞吉外卖项目:短信服务与手机验证码登录

阿里云之发送验证码

各大APP注册时发送短信验证码是怎么实现的?

Python web 开发云片网发送短信验证码

插件分享短信验证码如何对接EmPireCMS帝国系统

短信验证登录实现流程