阿里大鱼PHP版本的短信发送DEMO示例代码

  •   
  • 15166
  • PHP
  • 10
  • super_dodo
  • 2016/03/07

短信平台主要是为了验证用户的手机号码和用户的真实性。之前用过好几个短信平台,互亿无线的短信平台还是可以值得推荐的,不过收费略显不灵活(短信套餐包模式1500元2万条,不过他们的客服还是比较给力热情的,QQ电话都是有问必答)。此处介绍一下阿里大鱼的短信平台,有的客户想要用阿里的整套产品和服务,服务器域名短信验证码等,也是为了省事放心。

阿里大鱼的使用者首先需要按照说明成为阿里开放平台的开发者,新建应用,新建之后就会得到appkey appid 等相关信息。这个时候你还需要到阿里大鱼平台去设置自己的短信签名,短信模板等。这个有相关的使用说明,自行按照步奏去操作测试。
QQ截图20160307165244

之后下载了阿里大鱼的SDK进行简单的整理。
QQ截图20160307165435

目录结构如下所示。
QQ截图20160307163335

直接上PHP执行代码部分(写了个公共的方法,我用的Yii2框架)。


//发送手机验证码--阿里大鱼
public function smsAlidayu($phone,$ok_code='0'){
	require './extensions/msg/Alidayu/TopSdk.php';//引入加载相关的类文件
//	require './extensions/msg/Alidayu/top/TopClient.php';
//	require './extensions/msg/Alidayu/top/request/AlibabaAliqinFcSmsNumSendRequest.php';

	$appkey = '*******';
	$secret = 'f***************************';
	$c = new \TopClient;
	$c->appkey = $appkey;
	$c->secretKey = $secret;
	$c->format = 'json';

	$v_code = mt_rand(1000,9999);		//生成四位随机数
	$req = new \AlibabaAliqinFcSmsNumSendRequest;
	$req->setExtend("123456");
	$req->setSmsType("normal");
	$req->setSmsFreeSignName("身份验证");
	$req->setSmsParam("{\"code\":\"{$v_code}\",\"product\":\"DoDoBook\"}");
	$req->setRecNum($phone);
	$req->setSmsTemplateCode("SMS_*********");
	$resp = $c->execute($req);

	$sms_ok = '2';				//默认情况下不成功
	if(isset($resp->result->err_code)){
		if($resp->result->err_code == '0'){	//发送成功
			$sms_ok = '1';
			Yii::$app->session->set('tel_'.$phone,$v_code);	//把验证码存入session
		}
	}
	$model = new WebsiteSmsList;		//记录发送验证码的信息到数据库
	$model->code = $v_code;
	$model->name = $phone;
	$model->add_time = time();
	$model->isNewRecord = true;
	if($sms_ok == '1'){		//发送成功的情况下
		$model->status = '1';
		$model->remark = '发送成功';
		$model->save();
		$this->_end($ok_code,'手机验证码发送成功.','');
	}else{
		$model->status = '2';
		$model->remark = '发送失败';
		$model->save();
		$this->_end('1','非常抱歉,短信验证码发送失败,请稍后再试.','');
	}
}

阿里开放平台的api接口地址: http://open.taobao.com/doc2/apiList.htm
阿里大鱼的官网:http://www.alidayu.com/
欢迎大家指正并修改改进。

虽然可以像猪一样懒,但终究无法像猪一样懒得心安理得。