sendsms短信验证功能实现代码

<!DOCTYPE HTML>

<html>

   <head>

        <meta charset="utf-8">

        <meta name="viewport" content="maximum-scale=1.0,minimum-scale=0,width=device-width,initial-scale=1.0" />

        <title>APP</title>

        <link rel="stylesheet" type="text/css" href="../css/api.css" />

        <link rel="stylesheet" type="text/css" href="../css/common.css" />

           <style>

              #con{

                   margin:10px;

                   font-size:28px;

              } 

              ul{

                    margin-bottom:10px;

              }

              .txt{

                     margin:5px 10px;

                     padding:5px;

                     color:#000;

                     word-wrap:break-word;

              }

              input[type="text"]{

                    border-radius:6px;

                    background-color:#ffffff;

                    height:36px;

                    border:1px solid #D2CCCE;

                    color:#D2CCCE;

                    line-height:36px;

                    text-indent:7px;

                    width:120px;

                    background-clip:padding-box;

              }

              input[type="button"],#con{

                     border-radius:6px;

                     background-color:#81A9C3;

                     height:36px;

                     border:1px solid #2CCCE

                     color:#ffffff;

                     line-height:36px;

                     padding-left:30px;

                     padding-right:30px;

                     background-clip:padding-box;

              }

        </style>

    </head>

    <body>

          <br>

          <input type="button" οnclick="reg_sms()" value="注册短信模块" /><br><br>

          手机号:<input type="text" id="tel" name="tel" value="" placeholder="输入手机号" />

          <input type="button" class="yzm-btn" οnclick="send_sms()" value="发送验证码" /><br><br>

          验证码<input type="text" id="code" name="code" value="" />

          <input type="button" οnclick="code_sms()" value="短信验证" /><br><br><br><br><br>

          <!-- 市场评分模块 -->

--------------------市场评分模块---------------------------------<br><br>

           <label id="con" οnclick="tosmarket()">5星好评支持我们</label>

           <div id='sys-info'>这里我用的是微信,可以随意改</div>

    </body>

    

    <script type="text/javascript" src="../script/api.js"></script>

    <script type="text/javascript" src="../script/zepto.min.js"></script>

    <script type="text/javascript">

          apiready = function(){

                sendsms = api.require('sendSms');

          };

          function reg_sms(){

                  //貌似是120秒内只能注册一次,不然会失败,注意下

                  var param = {appkey:"6680ba14a50e",appsecret:"95b67202d004b9f4ab2a38f3eda2e82c"};

                  sendsms.regSms(param);

                  alert("注册成功");

          }

          function send_sms(){

                 var tel = document.getElementById("tel").value;

                 var param = {phone:tel};

                 sendsms.sendMessage(param,function(ret,err){

                 if(ret.result == "ok"){

                        maxtime = 90;

                        timer1 = setInterval("send_code_jishi();", 1000);

                        alert("短信发送成功");

        }else{

              alert(ret.result);

        }

      });

    }

    function code_sms(){

        var mycode = document.getElementById("code").value;

        var param={code:mycode};

        sendsms.enterCode(param,function(ret,err){

                        if(ret.result == "ok"){

                                alert("验证成功");

                        }else{

                                alert("验证失败");

                        }

                });

    }

    function tosmarket(){

            if (api.systemType =="android"){

                        smarket = api.require('marketScore');

                        var param = {appname:"com.tencent.mm"};

                smarket.myScore(param);

                }else{

                        api.openApp({

                            iosUrl: 'https://itunes.apple.com/cn/app/wei-xin/id414478124?mt=8'

                        },function(ret,err){

                        });

                }

    }

    var timer1 = "";

        var maxtime = 90;

        function send_code_jishi(){

            if(maxtime == 0){

                    clearInterval(timer1);

                $(".yzm-btn").val("重发验证码");

            }else{

                    maxtime--;

                    $(".yzm-btn").val(maxtime+"秒可重发");

            }

        }

</script>

</html>

转载于:https://www.cnblogs.com/shuibi/p/6531711.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,可以方便地使用 JavaScript 编写后端服务器程序。华为云提供了一套短信服务 API,可以方便地实现短信验证功能。 要使用 Node.js 实现华为云短信验证,你可以先在华为云官网上注册账号并开通短信服务。然后,你可以在 Node.js 中使用 HTTP 模块发送 HTTP 请求到华为云的短信服务接口,以实现发送短信验证码功能。以下是一个简单的 Node.js 示例代码: ``` const https = require('https'); const qs = require('querystring'); const accessKey = 'your_access_key'; // 替换为你的 Access Key const secretKey = 'your_secret_key'; // 替换为你的 Secret Key const region = 'cn-north-4'; // 替换为你的短信服务所在的区域 const sender = 'your_sender'; // 替换为你的短信发送者名称 const templateId = 'your_template_id'; // 替换为你的短信模板 ID const phoneNumber = 'your_phone_number'; // 替换为你要发送验证码的手机号码 // 生成签名字符串 function generateSignature(accessKey, secretKey, region, timestamp) { const hmac = require('crypto').createHmac('sha256', secretKey); hmac.update(`AccessKey=${accessKey}&Action=SendSms&Region=${region}&SecretKey=${secretKey}&SignatureMethod=HmacSHA256&SignatureNonce=${Math.random()}&SignatureVersion=2&TemplateID=${templateId}&Timestamp=${timestamp}&Version=2017-05-25`); return encodeURIComponent(hmac.digest('base64')); } // 发送短信验证码 function sendSmsCode(code) { const timestamp = new Date().toISOString().replace(/\..+/, '') + 'Z'; const signature = generateSignature(accessKey, secretKey, region, timestamp); const data = { Action: 'SendSms', Version: '2017-05-25', Region: region, PhoneNumber: phoneNumber, SignName: sender, TemplateParam: JSON.stringify({ code }), TemplateID: templateId, SignatureMethod: 'HmacSHA256', SignatureNonce: Math.random(), SignatureVersion: 2, AccessKeyId: accessKey, Timestamp: timestamp, Signature: signature }; const options = { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, hostname: `sms.${region}.myhuaweicloud.com`, path: '/v1.0/sms/send' }; const req = https.request(options, res => { let chunks = ''; res.on('data', chunk => chunks += chunk); res.on('end', () => console.log(chunks)); }); req.on('error', err => console.error(err)); req.write(qs.stringify(data)); req.end(); } // 发送一个随机的6位数验证码 sendSmsCode(Math.floor(Math.random() * 900000 + 100000)); ``` 以上代码通过生成签名字符串、构造请求数据和发送 HTTP 请求三个步骤实现发送短信验证码功能。你可以根据自己的需求和具体情况调整代码中的参数和逻辑。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值