user->identity->username; $cert = fmFunc_cert_exist($username); $_FM['apiCert'] = $cert ? $cert : array(); $errorCode = 0; if($errorCode>0){ die (json_encode(array('errorcode'=>$errorCode,'msg'=>Yii::t('errorcode',$errorCode)))); } //错误代码集合 $errorcodes = require(Yii::getAlias('@common').'/messages/zh-CN/errorcode.php'); foreach($errorcodes as $k=>$v){ $_k = substr($k,0,6); if($_k !=='453004'){ unset($errorcodes[$k]); } } $accessKeyId = isset($_FM['apiCert']['aliDySms']['accessKeyId']) ? $_FM['apiCert']['aliDySms']['accessKeyId'] : ''; $accessKeySecret = isset($_FM['apiCert']['aliDySms']['accessKeySecret']) ? $_FM['apiCert']['aliDySms']['accessKeySecret'] : ''; $sign = isset($_FM['apiCert']['aliDySms']['code']) ? $_FM['apiCert']['aliDySms']['code'] : ''; $postUrl = Url::to(['alimsg/send','appid'=>$username]); if(isset($_GET['post']) && $_GET['post']==1){ $postUrl = Url::to(['alimsg/send','appid'=>$username,'post'=>1]); } ?>
准备数据:
手机号(数组形式)、短信内容(数组形式,键为短信模板中的code,键值为要code对应的替换内容)、阿里大鱼短信账号对应的accessKeyId与accessKeySecret及短信签名sign、所使用的短信模板tmpl、阿里大鱼接口的额外配置项(如果有)、接口连接TOKEN(登陆本接口系统后返回的accesstoken)接口地址:
数据示范———— array('phone'=>array('18608981880'), 'content'=>array('code'=>'123456'), 'config'=>array( 'accessKeyId'=>'XXXXXXXXXXXXXXX', 'accessKeySecret'=>'XXXXXXXXXXX', 'sign'=>'Hiluker' ), 'option'=>array(), 'tmpl'=>'SMS_123456789', 'accesstoken'=>'XXXXXXXXXXXXXXX', );
数据返回:
JSON字符串,解码后得到结果数组。根据结果数组中的errorcode来表示短信发送是否成功。转接接口有一定的延时,因此我们会做短信发送记录并根据情况进行记录。$return['errorcode']:结果状态码,正常情况下为0 $return['msg']:返回的消息(接口报错时会使用到,消息中会将阿里大鱼接口的返回提示一并显示) $return['data']:用户侧应获得的数据(实际上即是接口请求时POST的数据) $return['timeused']:接口耗时 $return['total']:接口调用统计总记录数 $return['bytes']:本次返回数据的字节长度统计 $return['sms_left']:剩余可用短信条数