最新公告
  • 欢迎您光临码农资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!加入我们
  • PHP 实现 阿里云短信发送 短信通知教程

    首先介绍下短信注册登录流程:

    1.  注册页面点击获取手机号验证码按钮,用jquery的click事件POST或GET方法把手机号发送到后台控制器;
    2. 后台控制器创建函数,收到手机号后生成随机码,例如:6位的随机数code=rand(100000,999999);
    3. 利用阿里云短信服务接口将生成的随机码,以短信形式发送给注册用户;
    4. 用户在注册页面输入接收到的验证码,点击提交登录,后台处理用户提交的手机号+验证码,与自己后台存储的手机号+验证码是否匹配,匹配则判断登录成功,否则提示用户登录失败;

    第一步:下载PHP版本的[SDK轻量版]代码,解压,重命名为api文件夹名称,并将该文件夹存放在ThinkPHP/Library/Vendor目录位置(存放位置可以自己选择);

    第二步,在根目录Application/Admin/BaseController基础控制器中写入一下代码:

       
       //引用这几个文件
        use AliyunCoreConfig;
        use AliyunCoreProfileDefaultProfile;
        use AliyunCoreDefaultAcsClient;
        use AliyunApiSmsRequestV20170525SendSmsRequest;  
        //这个方法和上边的是一起的,可以放到基础控制器中
        /**
         * 发送短信接口
         * 文档地址 https://help.aliyun.com/document_detail/55491.html?spm=5176.doc55491.6.560.0KUKny
         * @param $mobile 手机号
         * @param $sms_code 短信模板ID
         * @param $params 模板替换参数
         * @return mixed code = OK 表示完成
         */
        public function sendSms($mobile, $sms_code, $params) {
           //阿里云SDK放在了ThinkPHP/Library/Vendor目录中
            require_once VENDOR_PATH . 'AliyunSms/vendor/autoload.php';
            Config::load();
            $sms_config = C('SMS_CONFIG'); //这个写在了config文件里的,tp3.2直接用大C就可以取到
            $template_param = $params;
            $sign_name = $sms_config['sign'];
            $template_code = $sms_code;
            $product = 'Dysmsapi';
            $domain = 'dysmsapi.aliyuncs.com';
            $region = 'cn-hangzhou';
            $profile = DefaultProfile::getProfile($region, $sms_config['key'], $sms_config['secret']);
            DefaultProfile::addEndpoint('cn-hangzhou', 'cn-hangzhou', $product, $domain);
            $acsClient = new DefaultAcsClient($profile);
            $request = new SendSmsRequest();
            $request->setPhoneNumbers($mobile);
            $request->setSignName($sign_name);
            $request->setTemplateCode($template_code);
            if ($template_param) {
                $request->setTemplateParam(json_encode($template_param));
            }
            $acsResponse = $acsClient->getAcsResponse($request);
            $result = json_decode(json_encode($acsResponse), true);
            return $result;
        }

    第三步,在继承基础控制器的其他控制器中,配置好所用的参数,就可以直接使用了!就是如此简单哦!

             $captcha = rand(100000, 999999);
             $params = [ 'code' => $captcha ];
             $sms_code = 'SMS_159960023'; // 短信模板ID 
             $mobile = $post_data['mobile']; //手机号
             $this->sendSms($mobile, $sms_code, $params);

    想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
    本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
    如有侵权请发送邮件至1943759704@qq.com删除

    码农资源网 » PHP 实现 阿里云短信发送 短信通知教程
    • 7会员总数(位)
    • 25846资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 293稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情