最近项目中考虑使用阿里大鱼的sms短信发送服务,不过,在找到阿里大鱼php sdk的 时候,尼玛,问题来了!
我就想用个短信而已啊。。。。竟然给我打包了好多 什么httpdns 什么kfcsearch 什么area ?
至于么? 至于么?
demo表示很生气,于是:
额,老司机来了!
一言不合,就要发代码。
一些基础信息的配置项目:
/**
* 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目录 ,自动载入了。
巫妖忘记哦。
打赏
微信扫一扫,打赏作者吧~
如果本篇文章对您有帮助,欢迎向博主进行赞助,赞助时请写上您的用户名。
支付宝直接捐助帐号oracle_lee@ 感谢支持!
喜欢 (1)or分享 (0)