array('name' => '预约成功通知', 'content' => '【广庭上医】您已成功预约了本次健康咨询服务,预约时间为:#ordertime#。如您有事需要取消预约,请您于#reversetime#前登陆广庭上医健康管理平台取消预约。', 'params' => array('ordertime', 'reversetime')), '216188' => array('name' => '取消预约通知', 'content' => '【广庭上医】您已成功取消#canceltime#的健康咨询服务预约。', 'params' => array('canceltime')), // '145531' => array('name' => '验证码', 'content' => '【广庭上医】您的验证码是#code#。', 'params' => array('code')), ); /** * 返回短信模板列表 */ public static function getTpls() { return self::TPLS; } public static function send_by_tpl($mobile, $tpl_id, $tpl_value) { $smsConf = array( 'key' => self::MSG_KEY, //您申请的APPKEY 'mobile' => $mobile, //接受短信的用户手机号码 'tpl_id' => $tpl_id, //您申请的短信模板ID,根据实际情况修改 'tpl_value' => $tpl_value, //您设置的模板变量,根据实际情况修改 ); $res = self::juhecurl(self::SEND_URL,$smsConf,1); //请求发送短信 //print_r($res); //exit(); if($res){ $result = json_decode($res,true); $error_code = $result['error_code']; if($error_code == 0){ return array('code' => 0, 'msg' => '发送成功'); }else{ return array('code' => 1, 'msg' => $result['reason']); } }else{ //返回内容异常,以下可根据业务逻辑自行修改 return array('code' => 1, 'msg' => '请求返回值异常'); } } /** 取消预约 您已成功取消#canceltime#的健康咨询服务预约。 * @param $mobile 手机号 * @param $canceltime 取消时间(字符串类型) */ public static function cancelReservation($mobile,$canceltime){ $ret=self::send_by_tpl($mobile, '216188', '#canceltime#='.$canceltime); $member = Member::getInfoByPhone($mobile); $attrs = array( 'memberid' => $member['id'], 'time'=>time(), 'content'=>"您已成功取消$canceltime 的健康咨询服务预约。", 'mobile'=>$mobile, 'tplid'=>'216188', 'tplvalue'=>'#canceltime#='.$canceltime, ); if($ret['code']==0){ $attrs['status']=1; $attrs['failcount']=0; $attrs['failreason']=""; }else{ $attrs['status']=2; $attrs['failcount']=1; $attrs['failreason']=$ret['msg']; } Pushsms::add($attrs); return $ret; } /** 预约 您已成功预约了本次健康咨询服务,预约时间为:#ordertime#。如您有事需要取消预约,请您于#reversetime#前登陆广庭上医健康管理平台取消预约。 * @param $mobile 手机号 * @param $ordertime 预约时间(字符串类型) * @param $reversetime 截止取消时间(字符串类型) */ public static function reservation($mobile,$ordertime,$reversetime){ $ret= self::send_by_tpl($mobile, '216187', '#ordertime#='.$ordertime.'&'.'#reversetime#='.$reversetime); $member = Member::getInfoByPhone($mobile); $attrs = array( 'memberid' => $member['id'], 'time'=>time(), 'content'=>"您已成功预约了本次健康咨询服务,预约时间为:$ordertime 。如您有事需要取消预约,请您于 $reversetime 前登陆广庭上医健康管理平台取消预约。", 'mobile'=>$mobile, 'tplid'=>'216187', 'tplvalue'=>'#ordertime#='.$ordertime.'&'.'#reversetime#='.$reversetime, ); if($ret['code']==0){ $attrs['status']=1; $attrs['failcount']=0; $attrs['failreason']=""; }else{ $attrs['status']=2; $attrs['failcount']=1; $attrs['failreason']=$ret['msg']; } Pushsms::add($attrs); return $ret; } // static public function send_code($mobile,$code) // { // return self::send_by_tpl($mobile, self::CODE_TPL_ID, '#code#='.$code); // } static public function buildContent($tplid, $params) { $tpl = sms::getTpls()[$tplid]; $parsedContent = $tpl['content']; foreach ($params as $key => $value) { $parsedContent = str_replace('#'.$key.'#', $value, $parsedContent); } return $parsedContent; } static public function buildParamString($params) { $keyValueArray = array(); foreach ($params as $key => $value) { $keyValueArray[] = '#'.$key.'#='.$value; } return join('&', $keyValueArray); } /** * 请求接口返回内容 * @param string $url [请求的URL地址] * @param string $params [请求的参数] * @param int $ipost [是否采用POST形式] * @return string */ static function juhecurl($url,$params=false,$ispost=0){ $httpInfo = array(); $ch = curl_init(); curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 ); curl_setopt( $ch, CURLOPT_USERAGENT , 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22' ); curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 30 ); curl_setopt( $ch, CURLOPT_TIMEOUT , 30); curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true ); if( $ispost ) { curl_setopt( $ch , CURLOPT_POST , true ); curl_setopt( $ch , CURLOPT_POSTFIELDS , $params ); curl_setopt( $ch , CURLOPT_URL , $url ); } else { if($params){ curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params ); }else{ curl_setopt( $ch , CURLOPT_URL , $url); } } $response = curl_exec( $ch ); if ($response === FALSE) { //echo "cURL Error: " . curl_error($ch); return false; } $httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE ); $httpInfo = array_merge( $httpInfo , curl_getinfo( $ch ) ); curl_close( $ch ); return $response; } }