| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- <?php
- /**
- * Created by PhpStorm.
- * User: tangqiang
- * Date: 17/5/11
- * Time: 下午10:19
- */
- class sms{
- const MSG_KEY = "7f9a5d7391bf8a65e549b811db846d02";
- const SEND_URL= "http://v.juhe.cn/sms/send"; //短信接口的URL
- // const CODE_TPL_ID = "145531";
- const TPLS = array(
- '216187' => 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;
- }
- }
|