mysend_sms($mobile, $content); } elseif (config('ds_config.smscf_type') == 'ali') { return $this->ali_send($mobile, $smslog_param); } elseif (config('ds_config.smscf_type') == 'ten') { return $this->ten_send($mobile, $smslog_param); } elseif (config('ds_config.smscf_type') == 'chuanglan') { return $this->cl_send($mobile, $smslog_param); } else { return ds_callback(false, lang('param_error')); } } /* 您于{$send_time}绑定手机号,验证码是:{$verify_code}。【{$site_name}】 -1 没有该用户账户 -2 接口密钥不正确 [查看密钥]不是账户登陆密码 -21 MD5接口密钥加密不正确 -3 短信数量不足 -11 该用户被禁用 -14 短信内容出现非法字符 -4 手机号格式不正确 -41 手机号码为空 -42 短信内容为空 -51 短信签名格式不正确接口签名格式为:【签名内容】 -6 IP限制 大于0 短信发送数量 http://utf8.api.smschinese.cn/?Uid=本站用户名&Key=接口安全秘钥&smsMob=手机号码&smsText=验证码:8888 */ public function mysend_sms($mobile, $content) { $user_id = urlencode(config('ds_config.smscf_wj_username')); // 这里填写用户名 $key = urlencode(config('ds_config.smscf_wj_key')); // 这里填接口安全密钥 if (!$mobile || !$content || !$user_id || !$key) return false; if (is_array($mobile)) { $mobile = implode(",", $mobile); } $mobile = urlencode($mobile); $content = urlencode($content); $url = "http://utf8.api.smschinese.cn/?Uid=" . $user_id . "&Key=" . $key . "&smsMob=" . $mobile . "&smsText=" . $content; if (function_exists('file_get_contents')) { $res = file_get_contents($url); } else { $ch = curl_init(); $timeout = 5; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $res = curl_exec($ch); curl_close($ch); } //短信发送后返回值 说明 $message = ''; switch ($res) { case "-1": $message = '没有该用户账号'; break; case "-2": $message = '接口密钥不正确 [查看密钥]不是账户登陆密码'; break; case "-21": $message = 'MD5接口密钥加密不正确'; break; case "-3": $message = '短信数量不足'; break; case "-11": $message = '该用户被禁用'; break; case "-14": $message = '短信内容出现非法字符'; break; case "-4": $message = '手机号格式不正确'; break; case "-41": $message = '手机号码为空'; break; case "-42": $message = '短信内容为空'; break; case "-51": $message = '短信签名格式不正确接口签名格式为:【签名内容】'; break; case "-6": $message = 'IP限制'; break; } if ($res > 0) { return ds_callback(true); } else { return ds_callback(false, $message); } } public function ali_send($mobile, $smslog_param) { if (!$smslog_param['ali_template_code'] || !config('ds_config.smscf_ali_id') || !config('ds_config.smscf_ali_secret') || !config('ds_config.smscf_sign')) { return ds_callback(false, '请绑定模板code'); } AlibabaCloud::accessKeyClient(config('ds_config.smscf_ali_id'), config('ds_config.smscf_ali_secret')) ->regionId('cn-hangzhou') ->asDefaultClient(); try { $result = AlibabaCloud::rpc() ->product('Dysmsapi') // ->scheme('https') // https | http ->version('2017-05-25') ->action('SendSms') ->method('POST') ->host('dysmsapi.aliyuncs.com') ->options([ 'query' => [ 'RegionId' => "cn-hangzhou", 'PhoneNumbers' => $mobile, 'SignName' => config('ds_config.smscf_sign'), 'TemplateCode' => $smslog_param['ali_template_code'], 'TemplateParam' => json_encode($smslog_param['ali_template_param']), ], ]) ->request(); } catch (\Exception $e) { return ds_callback(false, $e->getMessage()); } $result = $result->toArray(); if ($result['Code'] != 'OK') { return ds_callback(false, $result['Message']); } else { return ds_callback(true); } } /** * 腾讯云接口 * @param $mobile * @param $smslog_param * @return \multitype */ public function ten_send($mobile, $smslog_param) { if (!$smslog_param['ten_template_code'] || !config('ds_config.smscf_ten_id') || !config('ds_config.smscf_ten_secret') || !config('ds_config.smscf_sign')) { return ds_callback(false, '请绑定模板code'); } // 短信应用 SDK AppID $appid = config('ds_config.smscf_ten_id'); // SDK AppID 以1400开头 // 短信应用 SDK AppKey $appkey = config('ds_config.smscf_ten_secret'); // 需要发送短信的手机号码 $phoneNumbers = $mobile; // 短信模板 ID,需要在短信控制台中申请 $templateId = $smslog_param['ten_template_code']; // NOTE: 这里的模板 ID`7839`只是示例,真实的模板 ID 需要在短信控制台中申请 $smsSign = config('ds_config.smscf_sign'); // NOTE: 签名参数使用的是`签名内容`,而不是`签名ID`。这里的签名"腾讯云"只是示例,真实的签名需要在短信控制台申请 try { $sender = new SmsSingleSender($appid, $appkey); $params = $smslog_param['ten_template_param'];//生成随机数 $result = $sender->sendWithParam("86", $phoneNumbers, $templateId, $params, $smsSign, "", ""); $rsp = json_decode($result); } catch (\Exception $e) { return ds_callback(false, $e->getMessage()); } if ($rsp->errmsg != 'OK') { return ds_callback(false, $rsp->errmsg); } else { return ds_callback(true); } } /** * 创蓝短信 * @param $mobile * @param $smslog_param * @return \multitype */ public function cl_send($mobile, $smslog_param) { if (!config('ds_config.smscf_chuanglan_appkey') || !config('ds_config.smscf_chuanglan_secret')) { return ds_callback(false, '请绑定模板参数'); } if (empty($smslog_param['params'])) { $url = 'http://smssh1.253.com/msg/send/json'; //创蓝接口参数 $postArr = [ 'account' => config('ds_config.smscf_chuanglan_appkey'), 'password' => config('ds_config.smscf_chuanglan_secret'), 'msg' => $smslog_param['message'], 'phone' => $mobile, 'report' => 'true', ]; } else { $params_str = $mobile . ',' . implode(',', $smslog_param['params']); $url = 'http://smssh1.253.com/msg/variable/json'; //创蓝接口参数 $postArr = [ 'account' => config('ds_config.smscf_chaunglan_appkey'), 'password' => config('ds_config.smscf_chaunglan_secret'), 'msg' => $smslog_param['message'], 'params' => $params_str, 'report' => 'true', ]; } $postFields = json_encode($postArr); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Content-Type: application/json; charset=utf-8' //json版本需要填写 Content-Type: application/json; ] ); curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); //若果报错 name lookup timed out 报错时添加这一行代码 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields); curl_setopt($ch, CURLOPT_TIMEOUT, 60); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); $ret = curl_exec($ch); curl_close($ch); $rsp = json_decode($ret, true); if ($rsp['code'] != 0) { Log::record('短信发送失败:' . json_encode($rsp) . "。原始参数:" . json_encode($postArr)); return ds_callback(false, $rsp['errorMsg']); } else { return ds_callback(true); } } }