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

Nexmo短信开发

1.注册账号,申请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短信插件开发及使用)