thinkphp手机短信验证码怎么处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp手机短信验证码怎么处理相关的知识,希望对你有一定的参考价值。

1、解压附件到 Thinkphp\\Library\\Org 文件中
新建方法

public function send()
        //初始化必填
        $options['accountsid']='******'; //填写自己的
        $options['token']='*****'; //填写自己的
        //初始化 $options必填
        $ucpass = new \\Org\\Com\\Ucpaas($options);
                
                //随机生成6位验证码
        srand((double)microtime()*1000000);//create a random number feed.
        $ychar="0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z";
        $list=explode(",",$ychar);
        for($i=0;$i<6;$i++)
        $randnum=rand(0,35); // 10+26;
        $authnum.=$list[$randnum];
        


        //短信验证码(模板短信),默认以65个汉字(同65个英文)为一条(可容纳字数受您应用名称占用字符影响),超过长度短信平台将会自动分割为多条发送。分割后的多条短信将按照具体占用条数计费。
    

    $appId = "****";  //填写自己的
        $to = $_POST['to'];
        $templateId = "1";
        $param=$authnum;
        $arr=$ucpass->templateSMS($appId,$to,$templateId,$param);
        if (substr($arr,21,6) == 000000) 
            //如果成功就,这里只是测试样式,可根据自己的需求进行调节
            echo "短信验证码已发送成功,请注意查收短信";
            
        else
            //如果不成功
            echo "短信验证码发送失败,请联系客服";
            
        



前台页面

<form id="form">
    <input type="text" name="to" id="to"/>
    <button id="submit" >获取验证码</button> 
 </form>
 <script type="text/javascript">
      $(function()
      $("#submit").click(function()
              var tourl = $("#form").attr("action");
            $.post("__URL__/send",to:$("#to").val(),function(data,textStatus)
              alert(data);
        );
      )
      )
 </script>


测试时只能给注册手机号和添加白名单手机号码发送

参考技术A 解压附件到 ThinkPHP\Library\Org 文件中
新建方法
public function send()
//初始化必填
$options['accountsid']='******'; //填写自己的
$options['token']='*****'; //填写自己的
//初始化 $options必填
$ucpass = new \Org\Com\Ucpaas($options);

//随机生成6位验证码
srand((double)microtime()*1000000);//create a random number feed.
$ychar="0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z";
$list=explode(",",$ychar);
for($i=0;$i<6;$i++)
$randnum=rand(0,35); // 10+26;
$authnum.=$list[$randnum];

//短信验证码(模板短信),默认以65个汉字(同65个英文)为一条(可容纳字数受您应用名称占用字符影响),超过长度短信平台将会自动分割为多条发送。分割后的多条短信将按照具体占用条数计费。
$appId = "****"; //填写自己的
$to = $_POST['to'];
$templateId = "1";
$param=$authnum;
$arr=$ucpass->templateSMS($appId,$to,$templateId,$param);
if (substr($arr,21,6) == 000000)
//如果成功就,这里只是测试样式,可根据自己的需求进行调节
echo "短信验证码已发送成功,请注意查收短信";

else
//如果不成功
echo "短信验证码发送失败,请联系客服";




复制代码
前台页面
<form id="form">
<input type="text" name="to" id="to"/>
<button id="submit" >获取验证码</button>
</form>
<script type="text/javascript">
$(function()
$("#submit").click(function()
var tourl = $("#form").attr("action");
$.post("__URL__/send",to:$("#to").val(),function(data,textStatus)
alert(data);
);
)
)
</script>
复制代码
测试时只能给注册手机号和添加白名单手机号码发送本回答被提问者采纳

thinkphp集成系列之短信验证码订单通知

现在这个短信通知泛滥的年代;应用如果没有个短信注册;你都不敢说你是搞开发的;

这个验证码搞起来是不难的;但是如果刚接触也是有点不知从哪下手的迷茫;

先讲下概念;

要想发送验证码;需要至少三项;appid、key、模板id;

appid、和key比如较容易理解;各种第三方平台都会提供的;可能叫法不一样;

模板id就是指的短信的内容;例如【淘宝】验证码是192612,请您在5分钟内输入;

这就是一个模板;我们发短信的时候只能改变192612、和5这两个数字;其他是固定的;

因为政策的问题;模板需要申请并审核;一般1个工作日就过了;

下面来具体写流程;

1:找一个靠谱的短信验证码平台;推荐如下使用过的;下面以容联云通讯为例;其他平台一个道理;

    阿里大鱼:http://www.alidayu.com/service?spm=a3142.7802752.1.4.oAfDUZ&_t=2#sms

    容联云通讯:http://www.yuntongxun.com/

2:注册;登录;认证;都是废话;拿到ACCOUNT SID、AUTH TOKEN;

技术分享

3:创建一个应用;

技术分享

4:新增一个模板;

技术分享

5:等审核通过;拿到模板ID;好;到此;完成;

技术分享

6:完成?想多了吧;这是刚达到了可以发送验证码的基本条件;接着下载官方的SDK;

标题挂着Thinkphp集成短信验证码的;再不写thinkphp;想必是要被喷成渣!渣都不剩!

所有的源代码都可以在我的开源项目bjyadmin中找到:http://git.oschina.net/shuaibai123/thinkphp-bjyadmin

以我的开源项目为例;放在/ThinkPHP/Library/Org/Xb/RongCloud.class.php

7:在公共函数库中增加函数/Application/Common/Common/function.php

/**
 * 发送 容联云通讯 验证码
 * @param  int $phone 手机号
 * @param  int $code  验证码
 * @return boole      是否发送成功
 */
function send_sms_code($phone,$code){
    //请求地址,格式如下,不需要写https://
    $serverIP=‘app.cloopen.com‘;
    //请求端口
    $serverPort=‘8883‘;
    //REST版本号
    $softVersion=‘2013-12-26‘;
    //主帐号
    $accountSid=C(‘RONGLIAN_ACCOUNT_SID‘);
    //主帐号Token
    $accountToken=C(‘RONGLIAN_ACCOUNT_TOKEN‘);
    //应用Id
    $appId=C(‘RONGLIAN_APPID‘);

    $rest = new \Org\Xb\Rest($serverIP,$serverPort,$softVersion);
    $rest->setAccount($accountSid,$accountToken);
    $rest->setAppId($appId);
    // 发送模板短信
    $result=$rest->sendTemplateSMS($phone,array($code,5),59939);
    if($result==NULL) {
        return false;
    }
    if($result->statusCode!=0) {
        return  false;
    }else{
        return true;
    }
}

8:把ACCOUNT SID、AUTH TOKEN、模板id 填到配置项/Application/Common/Conf/config.php 中

‘RONGLIAN_ACCOUNT_SID‘   => ‘‘, //容联云通讯 主账号 accountSid
‘RONGLIAN_ACCOUNT_TOKEN‘ => ‘‘, //容联云通讯 主账号token accountToken
‘RONGLIAN_APPID‘         => ‘‘, //容联云通讯 应用Id appid
‘RONGLIAN_TEMPLATE_ID‘   => ‘‘, //容联云通讯 模板Id

 

9:调用函数:send_sms_code(‘手机号‘,‘验证码‘);即可

 

我最近在整理的开源项目已经是集成好了;这一切;只需要在配置项填空;就可以发短信了;

童鞋们需要的可以直接git clone测试:http://git.oschina.net/shuaibai123/thinkphp-bjyadmin


 


以上是关于thinkphp手机短信验证码怎么处理的主要内容,如果未能解决你的问题,请参考以下文章

Thinkphp框架 -- 短信接口验证码

使用thinkphp如何实现短信验证注册?

Thinkphp 3.2中注册发送短信验证码功能(未进行盗刷处理版本)

thinkphp集成系列之短信验证码订单通知

thinkphp集成系列之短信验证码订单通知

thinkphp整合系列之短信验证码订单通知