最近项目中考虑使用阿里大鱼的sms短信发送服务,不过,在找到阿里大鱼php sdk的 时候,尼玛,问题来了!
我就想用个短信而已啊。。。。竟然给我打包了好多 什么httpdns 什么kfcsearch 什么area ?
至于么? 至于么?
demo表示很生气,于是:
额,老司机来了!
一言不合,就要发代码。
<?php /** * ALIDAYU SMS * Class DayuSms */ class DayuSms { protected static $request; protected static $sign_name; protected static $sms_type; public function __construct() { self::$sign_name = ConfigGLB::ALIDAYU_SING_NAME; self::$sms_type = ConfigGLB::ALIDAYU_SMS_TYPE; self::$request = new TopClient(); self::$request->appkey = ConfigGLB::ALIDAYU_SMS_APP_KEY; self::$request->secretKey = ConfigGLB::ALIDAYU_SMS_SECRET_KEY; self::$request->format = ConfigGLB::ALIDAYU_SMS_FORMAT; } /** * 发送短信 * @param $mobile 目标手机号码 * @param $template 短信模板 * @param array $params 短信内容参数,根据短信模板参数进行kv比对合一 * @return bool */ public static function send($mobile, $template, $params = []) { $sms_send = new AlibabaAliqinFcSmsNumSendRequest(); $sms_send->setSmsType(self::$sms_type); $sms_send->setSmsFreeSignName(self::$sign_name); $sms_send->setSmsParam(json_encode($params));; $sms_send->setRecNum($mobile); $sms_send->setSmsTemplateCode($template); /** * stdClass Object * * ( * * [result] => stdClass Object * * * ( * * * * [err_code] => 0 * * * * [model] => 101857720372^1102430281096 * * * * [success] => 1 * * * ) * * [request_id] => 14sn1dgml456v * * ) */ $status = self::$request->execute($sms_send); //将执行结果对象转成数据,进行数据处理 $result = LmUtil::objectArray($status); if ($result['err_code'] == 0 && $result['success'] == 1) { return true; } else { return false; } } }
附属函数支持:
LmUtil::objectArray
/** * stdClass Object 转 数组 * @param $array * @return array */ public static function objectArray($array){ if(is_object($array)){ $array = (array)$array; } if(is_array($array)){ foreach($array as $key=>$value){ $array[$key] = self::objectArray($value); } } return $array; }
PS:
一些用到的阿里的类库,TopClient /AlibabaAliqinFcSmsNumSendRequest 等等 已经提前放到代码vendor目录 ,自动载入了。
巫妖忘记哦。
转载请注明:苏demo的别样人生 » 阿里大鱼发送sms 短信 php demo示例