diff --git a/app/controllers/SmsController.php b/app/controllers/SmsController.php index cbd1afc..6f01e07 100644 --- a/app/controllers/SmsController.php +++ b/app/controllers/SmsController.php @@ -77,6 +77,111 @@ class SmsController extends ControllerBase{ print_r($result); die; } + // /** + // * 发送短信(Send SMS)===原方法调用老接口==已废弃,不是不能用,实在不行解开也可以使用 + // * http://127.0.0.1/tiffany/api/sms/send?qaz=wsx + // * http://weapp.wemediacn.net/d/tiffany/api/sms/send?qaz=wsx + // */ + // function sendAction(){ + // //如果是GET请求 + // if($this->request->isGet()){ + // //告知请求的资源不支持 http 方法“GET”。 + // $rs['Message'] = "请求的资源不支持 http 方法“GET”。"; + // } + // //如果不是GET请求 + // else{ + // //校验是否有收到请求数据 + // $rs = $this->__check_request_arr(); + // //如果有收到请求数据 + // if(!empty($rs['data']['request_arr'])){ + // //获取请求数据 + // $request_arr = $rs['data']['request_arr']; + // //准备校验基本参数是否都不为空 + // $params_arr[] = "appid"; + // $params_arr[] = "mobile"; + // $params_arr[] = "access_token"; + // $params_arr[] = "content"; + // //校验基本参数是否都不为空 + // $rs = $this->__check_params_arr($request_arr, $params_arr); + // //如果基本参数都不为空 + // if(empty($rs['errcode'])){ + // //准备校验所传appid是否有效 + // $appid = $request_arr['appid']; + // //校验所传appid是否有效 + // $rs = $this->__check_appid($appid); + // //如果所传appid有效 + // if(empty($rs['errcode'])){ + // //获取接口信息 + // $AppInfo = $rs['data']['AppInfo']; + // //准备校验所传access_token是否有效 + // $access_token = $request_arr['access_token']; + // //校验所传access_token是否有效 + // $rs = $this->__check_access_token($appid, $access_token); + // //如果所传access_token有效 + // if(empty($rs['errcode'])){ + // //设置发送手机号 + // $mobile = $request_arr['mobile']; + // //设置发送FormatID + // $FormatID = !empty($request_arr['format'])?$request_arr['format']:8; + // //设置发送短信内容 + // $Content = $request_arr['content']; + // //将发送短信内容URL编码 + // $Content = urlencode($Content); + // //设置发送TokenID + // $TokenID = $AppInfo->SmsToken; + // //准备发送短信 + // $url = "https://www.wemediacn.net/webservice/smsservice.asmx/SendSMS?mobile=$mobile&FormatID=$FormatID&Content=$Content&ScheduleDate=2010-1-1&TokenID=$TokenID"; + // //获取发送结果 + // $xml = $this->__https_request($url); + // //转换发送结果格式 + // $array = $this->__change_xml_to_array($xml); + // //获取发送结果提示 + // $string = !empty($array[0])?$array[0]:""; + // //如果发送失败,但有明确错误说明 + // if(strpos(strtolower($xml), "error")!==false){ + // //告知用户"发送失败,err detail:短信发送失败:".$string + // //ERROR:200:[非手机号码] + // //ERROR:108:[FormatID 非法数值] + // $rs['errmsg'] = "发送失败,err detail:短信发送失败:".$string; + // $rs['errcode'] = 70000; + // $rs['data'] = null; + // } + // //如果发送失败,且无明确错误说明 + // elseif(!(strpos(strtolower($xml), "ok")!==false)){ + // //告知用户"服务器异常,err detail:发送短信失败,具体请查看sms日志" + // $rs['errmsg'] = "服务器异常,err detail:发送短信失败,具体请查看sms日志"; + // $rs['errcode'] = 50000; + // $rs['data'] = null; + + // // $this->_LogObj->LogWrite(TIFFANY_API_CHECK_LOG, 'send===xml:'.json_encode($xml).'===='.$url); + + // } + // //如果发送成功 + // else{ + // //获取messageid + // //OK:[202304121675878871004778] + // $messageid = str_replace("]", "", str_replace("OK:[", "", $string)); + // //告知用户"ok" + // $rs['errmsg'] = "ok"; + // $rs['errcode'] = 0; + // $rs['data'] = array(); + // $rs['data']['messageid'] = $messageid; + // } + // } + // } + // } + // } + // } + // /**/ + // if($_SERVER['HTTP_HOST']!="127.0.0.1"){ + // $this->_LogObj->LogWrite(TIFFANY_API_CHECK_LOG, 'send==='.json_encode($rs)); + // } + // /**/ + // //输出结果 + // echo json_encode($rs, JSON_UNESCAPED_UNICODE); + // } + + /** * 发送短信(Send SMS) * http://127.0.0.1/tiffany/api/sms/send?qaz=wsx @@ -120,52 +225,22 @@ class SmsController extends ControllerBase{ //如果所传access_token有效 if(empty($rs['errcode'])){ //设置发送手机号 - $mobile = $request_arr['mobile']; - //设置发送FormatID - $FormatID = !empty($request_arr['format'])?$request_arr['format']:8; - //设置发送短信内容 - $Content = $request_arr['content']; - //将发送短信内容URL编码 - $Content = urlencode($Content); - //设置发送TokenID - $TokenID = $AppInfo->SmsToken; - //准备发送短信 - $url = "https://www.wemediacn.net/webservice/smsservice.asmx/SendSMS?mobile=$mobile&FormatID=$FormatID&Content=$Content&ScheduleDate=2010-1-1&TokenID=$TokenID"; - //获取发送结果 - $xml = $this->__https_request($url); - //转换发送结果格式 - $array = $this->__change_xml_to_array($xml); - //获取发送结果提示 - $string = !empty($array[0])?$array[0]:""; - //如果发送失败,但有明确错误说明 - if(strpos(strtolower($xml), "error")!==false){ - //告知用户"发送失败,err detail:短信发送失败:".$string - //ERROR:200:[非手机号码] - //ERROR:108:[FormatID 非法数值] - $rs['errmsg'] = "发送失败,err detail:短信发送失败:".$string; - $rs['errcode'] = 70000; - $rs['data'] = null; - } - //如果发送失败,且无明确错误说明 - elseif(!(strpos(strtolower($xml), "ok")!==false)){ - //告知用户"服务器异常,err detail:发送短信失败,具体请查看sms日志" - $rs['errmsg'] = "服务器异常,err detail:发送短信失败,具体请查看sms日志"; - $rs['errcode'] = 50000; - $rs['data'] = null; + $request_send = []; + $request_send['mobile'] = $request_arr['mobile']; + $request_send['content'] = $request_arr['content']; + $request_send['appid'] = $AppInfo->SmsAppid; + $request_send['secret'] = $AppInfo->SmsSecret; + $request_data = $this->__send_sms($request_send); - // $this->_LogObj->LogWrite(TIFFANY_API_CHECK_LOG, 'send===xml:'.json_encode($xml).'===='.$url); - - } - //如果发送成功 - else{ - //获取messageid - //OK:[202304121675878871004778] - $messageid = str_replace("]", "", str_replace("OK:[", "", $string)); - //告知用户"ok" + if($request_data['errcode'] == 0 && $request_data['errmsg'] == 'OK'){//发送成功 $rs['errmsg'] = "ok"; $rs['errcode'] = 0; $rs['data'] = array(); - $rs['data']['messageid'] = $messageid; + $rs['data']['messageid'] = $request_data['message_id']; + }else{ + $rs['errmsg'] = "发送失败,err detail:短信发送失败:".$request_data['message_id']; + $rs['errcode'] = 70000; + $rs['data'] = null; } } } @@ -180,7 +255,8 @@ class SmsController extends ControllerBase{ //输出结果 echo json_encode($rs, JSON_UNESCAPED_UNICODE); } - + + /** * 获取手机验证码(Get mobile verification) * http://127.0.0.1/tiffany/api/sms/authcode?qaz=wsx