网易云信-网易验证码短信,网易通知类短信的使用

短信验证码是网站必不可少的,基本每个公司都会用到,之前用的短信验证码是互易无线的,现在新公司又使用了网易云信的短信验证,

这些平台的使用基本都类似,都是基于curl请求

这次我就记录下我对网易云信验证码的使用过程


一:注册网易云信,获取appkey和appsert



设置配置文件,我们知道一般配置项都要写在配置文件中,方便管理

<?php
    return  array (
            'netEasyMessage' => array(
                  'AppKey' => 'bc07*********f4c805460',
                  'AppSecret' => '658ab****0d9b',
            ),

);


二:把网易云信的php的包引入

我使用的是thinkphp3.2,直接放在THinkphp/Library/Org/Util/下载,注意修改文件名和类名,加上命名空间

我直接修改好的,http://download.csdn.net/detail/fei003/9862048可以直接使用,因为我使用的是thinkphp,所以可以直接实例化

这是官方api,http://download.csdn.net/detail/fei003/9862090其它框架可以直接引入

三:使用过程我只记录两种场景

第一种:固定类验证码

为什么说是固定类呢?因为接口提供直接发送验证码,不需要你提供任何参数.不需要生成验证码,这种只要调用就能自动发送一个四位的短信验证码,非常方便,当然也有弊

弊端:验证码位数默认为4位数字,在设置的时间间隔内,同一手机号返回的验证码是相同的

使用方法

    public function sendVerify(){
        $phone = I('post.phone');
         $feiMessage = new \Org\Util\Message(C('SHORT_MESSAGE.AppKey'),C('SHORT_MESSAGE.AppSecret'));
         $re = $feiMessage->sendSmsCode($phone);
    }
api中提供的接口发送验证码方法是sendSmsCode();有三个参数,下面是该方法

/**
 * 发送短信验证码
 * @param  $mobile       [目标手机号]
 * @param  $deviceId     [目标设备号,可选参数]
 * @return $result      [返回array数组对象]
 */
public function sendSmsCode($mobile,$deviceId=''){
    $url = 'https://api.netease.im/sms/sendcode.action';
    $data= array(
        'mobile' => $mobile,
        'deviceId' => $deviceId
    );
    if($this->RequestType=='curl'){
        $result = $this->postDataCurl($url,$data);
    }else{
        $result = $this->postDataFsockopen($url,$data);
    }
    return $result;
}

验证也是非常容易的,也是直接调用该方法

        // 短信验证码验证
         $feiMessage = new \Org\Util\Message(C('SHORT_MESSAGE.AppKey'),C('SHORT_MESSAGE.AppSecret'));
         $re = $feiMessage->verifycode($data['phone'],$data['verify']); 

根据返回值再写逻辑代码

第二种:使用短信模板来扩展自己的验证码

     短信模板就是带有变量的短信,变量部分自定义代替

    先新建个通知类模板,如下图


登审核通过后会得到模板id,模板内容自定义,注意变量可以有多个

假如使用模板来发送验证码,这个过程还是很容易的,直接使用sendSMSTemplate()来发送,这个函数三个参数分别为

/**
 * 发送模板短信
 * @param  $templateid       [模板编号(由客服配置之后告知开发者)]
 * @param  $mobiles          [验证码]
 * @param  $params          [短信参数列表,用于依次填充模板,JSONArray格式,如["xxx","yyy"];对于不包含变量的模板,不填此参数表示模板即短信全文内容]
 * @return $result      [返回array数组对象]
 */
public function sendSMSTemplate($templateid,$mobiles=array(),$params=array()){
    $url = 'https://api.netease.im/sms/sendtemplate.action';
    $data= array(
        'templateid' => $templateid,
        'mobiles' => json_encode($mobiles),
        'params' => json_encode($params)
    );
    if($this->RequestType=='curl'){
        $result = $this->postDataCurl($url,$data);
    }else{
        $result = $this->postDataFsockopen($url,$data);
    }
    return $result;
}


使用方法

        // 短信模板发送 
         $feiMessage = new \Org\Util\Message(C('SHORT_MESSAGE.AppKey'),C('SHORT_MESSAGE.AppSecret'));
         $re = $feiMessage->sendSMSTemplate('模板id',array($phone),$params);

注意:这里的$params 使用的是jsonArray格式!!!


网易云信提供的api果然很强大,针对im做个大量的封装,使用起来方便多了






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值