短信验证码生成步骤

一、点击获取验证码触发事件,生成短信验证码。

   

$(".btn2").click(function(){
    var url="/Public/message";
    var data=$("#username").val();
    $.ajax({
        url:url,
        data:{'phone':data},
        type:'POST',
        dataType:'json',
        success: function(r){
            if(r.status==200) {
                layer.msg(r.msg, {icon: 6});
            }
        }
    });
});

二、生成短信验证码需要准备以下几个步骤

    1.短信通道 在tp的配置文件中写的。

  1. // 253 云通讯 短信发送接口配置
    'SMS_253' => array(
        'URI'        => '',
        'APP_KEY'    => '', // 账号
        'APP_SECRET' => '', // 密码
    ),

    2.复制下面两个方法到公共文件function.php中

        

/**
     * 用file_get_contents函数,以post方式发送数据处理 类似curl
     *可以写在function中
     */
    function httpPostJson($url, $data = ''){
        $opts = array(
            'http' => array(
                'method'  => 'POST',
                'header'  => "Content-type: application/json;charset=UTF-8;Content-Length: " . strlen($data),
                'timeout' => 30,
                'content' => $data,
            ),
        );
    //文本数据流创建
    $context = stream_context_create($opts);
    return file_get_contents($url, FALSE, $context);
}
/**
 * 自定义短信发送  可以写在function中
 * @param $mobilePhones
 * @param $sendMsg
 * @return array
 */
function SendSMS($mobilePhones,$sendMsg, $signature = '【公司名称】'){
    $requestData = array(
        'account'  => C(''),
        'password' => C(''),
        'msg'      => urlencode($signature . $sendMsg),
        'phone'    => $mobilePhones,
        'report'   => 'true',
    );
    $result = httpPostJson(C(''), json_encode($requestData));
    $result = json_decode($result, TRUE);
    if($result === NULL || $result['code'] !== '0' || !empty($result['errorMsg'])){
        return FALSE;
    }
    return $result['msgId'];
}

    3.编写点击获取验证码触发的方法

public function message(){
    $mobilePhonesStr= I('post.phone');
    //验证码随机数
    $num = rand(1000,9999);
    $sendMsg="验证码是:".$num;
    //调用function.php中SendSMS方法
    $result= SendSMS($mobilePhonesStr,$sendMsg);
    if($result){
       session('smscheckcode',$num);
        //echo session('smscheckcode');die;
        $r['status']=200;
        $r['msg']="验证码已发送";
        $this->ajaxReturn($r);
    }else{
        $r['status']=400;
        $r['msg']="验证码发送失败";
        $this->ajaxReturn($r);
    }
}

        

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值