TP3.2 配置最新的阿里大于sdk

TP3.2 配置最新的阿里大于sdk

最近公司买了阿里云的阿里大于短信验证 ,这里记录下本人接入短信验证的过程和心得。

大家是不是一开始都是和本人一样直接去百度下怎么有没有现成的demo 或者是封装好了的类库

就像是 :http://www.thinkphp.cn/topic/46029.html

但是兴高采烈的接入好了 , 最后会发现 ISV 什么开发这权限不足 , 其实后台都是好了的 , 根本就不是权限不足, 而是搬家了

以前的接口是有taobao 的,就像https://api.alidayu.com/apitools/apiTools.htm?spm=a3142.7395905.4.29.z1Hkms&catId=20711&apiId=25450&apiName=alibaba.aliqin.fc.sms.num.send&scopeId=#

没错这个是过期了的  但是官方并没有说明这种情况,这就很坑了。

这里作者建议 大家直接去官方下载最新的sdk:

https://help.aliyun.com/document_detail/55451.html?spm=5176.doc55288.6.556.sIOJUV

下载好了直接配置demo

 

这里配置

 

 这里务必看清楚,那些参数签名什么的,不然就是各种报错, 你懂的,很难受

如果你的demo 成功的话 那么封装就变得简单了

 /* 
     * 阿里大鱼手机验证码发送函数
     *  
     *  
     */

    function sendphone($m)
    {
        Vendor('Alidayu.api_demo.SmsDemo');
        header('Content-Type: text/plain; charset=utf-8');
        $demo = new \SmsDemo(
            C('Alidayu.Appkey'),
            C('Alidayu.SecretKey')
        );

        // echo "SmsDemo::sendSms\n";
        $randStr = str_shuffle('1234567890');
        $code = substr($randStr,0,4);
        $_SESSION['sendphonecode']=$code;
        $_SESSION['expire']=1800;
        $response = $demo->sendSms(
            C('Alidayu.SignName'), // 短信签名
            C('Alidayu.SmsTemplate'), // 短信模板编号
            $m, // 短信接收者
            Array(  // 短信模板中字段的值
                "code"=> $code,
                "product"=>"dsd"
            ),
            "666"
        );
        // echo "SmsDemo::queryDetails\n";
        $response = $demo->queryDetails(
            "1234567890",  // phoneNumbers 电话号码
            date('Ymd',time()), // sendDate 发送时间
            10, // pageSize 分页大小
            1, // currentPage 当前页码
            "abcd" // bizId 短信发送流水号,选填
        );

        return $code;
    }

  下面的参数

$demo->queryDetails

具体怎么使用 , 我也是不清楚的,如果有知道的可以告诉下,谢谢。

到在下一步就是获取和验证了

     /* 
     * 发送验证码
     *  @param  mobile purpose 手机号 状态
     *  @return 0  1
     *  
     */
     public function setphone()
	 {
    	$mobile = '15779675455'; 
    	// $mobile = I('post.mobile');
    	// $purpose = I('post.purpose');
    	$purpose = '1';
    	if(isset($mobile) && empty($mobile)){
            error_r('手机号码不能为空!');
        }
        if(isset($purpose) && empty($purpose)){
            error_r('验证类型不能为空!');
        }  
        $a = sendphone( $mobile );
        $yn = (empty($a))? '0' : '1' ;   
        $data = array(
                    'phone'=>$mobile,
                    'purpose'=>$purpose,
                    'status'=>$yn,
                    'add_time'=>time(),
                    'time_date'=>date('Y-m-d',time())
                );
        M('phonecode')->add($data);
        if(empty($a)){
        	error_r('发送失败');
        }else{
        	success_s('发送成功');
        }
     }

     /* 
     * 验证验证码是否正确
     *  @param  mobile  手机号 
     *  @return 0  1
     *  
     */
     public function thancode()
     {
     	$phone = I('post.phone');
     	$a = $_SESSION['sendphonecode'];
     	if($phone == $a)
     	{
			success_s('验证码正确');
     	}else{
     		error_r('验证码错误');
     	}
     }

  

 到了这里这功能就基本封装了好

 

posted @ 2017-08-07 18:22  bobiscool  阅读(500)  评论(1编辑  收藏  举报