美文网首页PHP经验分享
零云Nexmo短信插件开发及使用

零云Nexmo短信插件开发及使用

作者: Modigliani | 来源:发表于2017-04-24 15:17 被阅读1827次

    Nexmo短信开发

    1.注册账号,<a href='https://www.nexmo.com/'>申请</a>appKEY和appSecret,并给nexmo账户充钱。
    2.去零云后台配置,把上面拿到的key和secret分别填进去,其他不用填。
    3.发送短信,nexmo提供了很多种API,我们的nexmo短信插件选择了部分功能并进行封装做成插件的形式,能够在lingyun的项目中直接调用。
    • 文本短信发送:

        //插件调用
        public function notify_result($sms_data)
        {
            $nexmo_addon = D('Addons://Nexmo/Nexmo');
            $result      = $nexmo_addon->send_sms($sms_data);
            if ($result) {
                return true;
            } else {
                return false;
            }
        }
      
        
        /*上面方法中$sms_data的形式
         *RecNum:接收短信的号码,需要加区号,如中国号码:8612345678910;
         *product:短信发送方希望显示在短信中的名称;
         *Content:短信的内容
         */
        $sms_data['RecNum']  = $mobile;
        $sms_data['product'] = 'Company Name';
        $sms_data['Content'] = 'text';
        D('Writer/Index')->notify_result($sms_data);
      
    • 验证码发送

        /**
         * 短信验证码
         */
        public function send_mobile_verify()
        {
            // Nexmo最小是60s
            if ((time() - session('reg_verify_ctime')) < 60) {
                $this->error('Resend 60s later');
            }
        
            // 构造短信数据
            $sms_data['RecNum']  = I('post.mobile');
            $sms_data['prodect'] = I('post.title') ? I('post.title') : C('WEB_SITE_TITLE');
            $nexmo_addon = D('Addons://Nexmo/Nexmo');
            $result      = $nexmo_addon->send_verify($sms_data);
            if ($result) {
                session('reg_verify_ctime', time());
                $this->success('Send successfully!');
            } else {
                $this->error('Send failly!');
            }
        }
      

      值得说明的一点,nexmo不同于之前常用的短信插件,nexmo的验证码是它的接口自己生成,而不是存放于自己的服务器,所以,用户输入并提交验证码之后,需要再次提交到nexmo的接口去验证用户输入的是否正确。

        // 在处理用户表单提交的控制器添加对验证码的验证
        $verify        = I('post.verify');
        $nexmo_addon   = D('Addons://Nexmo/Nexmo');
        $verify_result = $nexmo_addon->check_verify($verify);
        if(!$verify_result) {
            $this->error('There is something wrong with your verify,please check it out or send again!');
        }

    相关文章

      网友评论

        本文标题:零云Nexmo短信插件开发及使用

        本文链接:https://www.haomeiwen.com/subject/stdpzttx.html