| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <?php
- namespace crmeb\services;
- use crmeb\services\Alisms;
- use think\Exception;
- use think\facade\Db;
- /**
- * 短信服务
- * Class SMSService
- * @package crmeb\services
- */
- class SMSService
- {
- //验证码
- const VERIFICATION_CODE = 'SMS_223945076';
- /**
- * get: 发送短信验证码
- * path: sendSmsCode
- * method: sendSmsCode
- * param: phone - {string} 手机号
- */
- public static function send($phone, array $param ,$template="VERIFICATION_CODE")
- {
- $code = $param['code'];
- try {
- $sms = new Alisms(sys_config('alisms_ak'), sys_config('alisms_sk'));
- $sms->setAction('SendSms')->setOptions([
- 'PhoneNumbers' => $phone,
- 'SignName' => sys_config('alisms_sign'),
- 'TemplateCode' => sys_config('TemplateCode',''),
- 'TemplateParam' => '{"code":"'.$code.'"}',
- ])->execute();
- return ['status' => 200, 'msg' => '短信发送成功'];
- } catch (Exception $exception) {
- return ['status' => 400, 'msg' => '发送失败'];
- }
- }
- /**
- * get: 发送短信验证码
- * path: sendSmsCode
- * method: sendSmsCode
- * param: phone - {string} 手机号
- */
- public static function off_send($phone, array $param ,$template="")
- {
- $TemplateCode = $template;
- try {
- $sms = new Alisms(sys_config('alisms_ak'), sys_config('alisms_sk'));
- $sms->setAction('SendSms')->setOptions([
- 'PhoneNumbers' => $phone,
- 'SignName' => sys_config('alisms_sign'),
- 'TemplateCode' => $TemplateCode,
- 'TemplateParam' => json_encode($param),
- ])->execute();
- return ['status' => 200, 'msg' => '短信发送成功'];
- } catch (Exception $exception) {
- return ['status' => 400, 'msg' => '发送失败'];
- }
- }
- //第三方短信平台
- private static function post($data, $target){
- $url_info = parse_url($target);
- $httpheader = "POST " . $url_info['path'] . " HTTP/1.0\r\n";
- $httpheader .= "Host:" . $url_info['host'] . "\r\n";
- $httpheader .= "Content-Type:application/x-www-form-urlencoded\r\n";
- $httpheader .= "Content-Length:" . strlen($data) . "\r\n";
- $httpheader .= "Connection:close\r\n\r\n";
- //$httpheader .= "Connection:Keep-Alive\r\n\r\n";
- $httpheader .= $data;
- $fd = fsockopen($url_info['host'], 80);
- fwrite($fd, $httpheader);
- $gets = "";
- while(!feof($fd)) {
- $gets .= fread($fd, 128);
- }
- fclose($fd);
- if($gets != ''){
- $start = strpos($gets, '<?xml');
- if($start > 0) {
- $gets = substr($gets, $start);
- }
- }
- return $gets;
- }
- }
|