composer阿里云短信服务不支持传参为数值

Posted 徐锅的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了composer阿里云短信服务不支持传参为数值相关的知识,希望对你有一定的参考价值。

composer 阿里云短信服务使用 xuying/aliyun_mns

 

/**
*
TODO SMS SERVICE
* @param
$tmp
* @param
$moblie
* @param
$name
* @param
int $len
* @return
int
*/
private function mns($tmp,$moblie,$name,$len=4
)
{
$count
=[];
for($i =0;$i<$len; $i
++){
$count[] =rand(1, 9
);
}
$captcha = (int) implode("",$count
);

$data = [
"log_msg"=>$name
,
"log_captcha"=>$captcha
,
"log_phone"=>
$moblie
];

if($this->validate($data,"SmsLogs") !== true){
return 0
;
}

$new_mns = new Mns((array) Config::get(‘mns‘));
$statua = $new_mns->run($tmp,[$moblie=>array(‘code‘=>(string) $data[‘log_captcha‘],"product" => $data[‘log_msg‘
])]);

if(!method_exists($statua,‘isSucceed‘)){
return 0
;
}
try
{
SmsLog::create($data
);;
return 1
;
}catch (Exception $e
){
return 0
;
}
}

以下为发送成功返回对象

object(AliyunMNS\Responses\PublishMessageResponse)#44 (4) {
  ["succeed":protected] =&gt; bool(true)
  ["statusCode":protected] =&gt; int(201)
  ["messageId":protected] =&gt; string(40) "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  ["messageBodyMD5":protected] =&gt; string(32) "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

 

但是并没有短信收到,原因为模板$code字段为数字类型了,

-------------------------分享短信发送代码:--------------------------

//TODO 短信验证配置=====开启&& 关闭注释=========
if
(!$mns = $this->mns("register",$req[‘member_mobile‘],$req[‘member_name‘],4
)){
return json(msg_array(0,‘请求获取验证码失败‘,[]),400
);
}
return json(msg_array(1,‘请求获取验证码成功‘,[]),200
);

---------------------------            ----------------------------------------------------

(string)转换后,成功短信发送了;

以上是关于composer阿里云短信服务不支持传参为数值的主要内容,如果未能解决你的问题,请参考以下文章

使用Composer安装阿里云短信失败

云原生Docker 进阶 -- 阿里云服务器安装Docker Compose与初体验

loadrunder之接口传参为本地文件

阿里云Centos7 搭建laravel

如何选择阿里云云服务器ECS操作系统

PHP 对接阿里云短信