'C123', 'title' => '中国短信网短信接口', 'description' => '中国短信网短信发送接口集', 'status' => 1, 'author' => 'tider', 'version' => '0.1' ); private $_error_code = array( 0 => "帐户格式不正确(正确的格式为:员工编号@企业编号)", -1 => "服务器拒绝(速度过快、限时或绑定IP不对等)如遇速度过快可延时再发", -2 => "密钥不正确", -3 => "密钥已锁定", -4 => "参数不正确(内容和号码不能为空,手机号码数过多,发送时间错误等)", -5 => "无此帐户", -6 => "帐户已锁定或已过期", -7 => "帐户未开启接口发送", -8 => "不可使用该通道组", -9 => "帐户余额不足", -10 => "内部错误", -11 => "扣费失败" ); private $_return_code = array( 'DELIVRD' => '短消息转发成功', 'EXPIRED' => '短消息超过有效期', 'DELETED' => '短消息已经被删除', 'UNDELIV' => '短消息是不可达的', 'ACCEPTD' => '短消息在等待发送中', 'UNKNOWN' => '未知短消息状态', 'REJECTD' => '短消息被短信中心拒绝', 'DTBLACK' => '目的号码是黑名单号码', 'DTWORDS' => '发送内容被过滤', 'DTFAILD' => '发送失败原因未明', 'ERRBUSY' => '运营商系统忙状态未知' ); public function install(){ $this->createHook('sendSmsOnce', '发送单条短信'); $this->createHook('sendSmsBatch', '发送批量短信'); $this->createHook('getSmsBalance', '获取短信账号余额'); $this->createHook('getSmsStatus', '获取短信状态'); $this->createHook('getSmsRely', '获取短信回复'); return true; } public function uninstall(){ $this->delHook('sendSmsOnce'); $this->delHook('sendSmsBatch'); $this->delHook('getSmsBalance'); $this->delHook('getSmsStatus'); $this->delHook('getSmsRely'); return true; } public function getSmsBalance(&$para){ $config = $this->getConfig(); $data = array( 'action'=>'getBalance', //发送类型 ,可以有sendOnce短信发送,sendBatch一对一发送,sendParam 动态参数短信接口 'ac'=> C('C123_ac'), //用户账号 'authkey'=> C('C123_authkey'), //认证密钥 ); $xml= Util\C123::postSMS($this->open_api_url,$data); //POST方式提交 $re=simplexml_load_string(utf8_encode($xml)); if(trim($re['result'])==1){ foreach ($re->Item as $item){ $stat['remain']=trim((string)$item['remain']); $stat_arr[]=$stat; } $return['status'] = 1; $return['data'] = $stat_arr; } else{ $return['status'] = 0; $return['err_msg'] = $this->_error_code[trim($re['result'])]; } $para['return'] = $return; } public function sendSmsBatch(&$para){ $config = $this->getConfig(); $content = $para['content']; $mobile = $para['mobile']; $data = array( 'action'=>'sendBatch', //发送类型 ,可以有sendOnce短信发送,sendBatch一对一发送,sendParam 动态参数短信接口 'ac'=>C('C123_ac'), //用户账号 'authkey'=>C('C123_authkey'), //认证密钥 'cgid'=>C('C123_cgid'), //通道组编号 'm'=>$mobile, //号码,多个号码用逗号隔开 'c'=>$content, //如果页面是gbk编码,则转成utf-8编码,如果是页面是utf-8编码,则不需要转码 'csid'=>C('C123_csid'), //签名编号 ,可以为空,为空时使用系统默认的签名编号 't'=> '' //定时发送,为空时表示立即发送 ); $xml= Util\C123::postSMS($this->open_api_url,$data); //POST方式提交 $re=simplexml_load_string(utf8_encode($xml)); if(trim($re['result'])==1){ foreach ($re->Item as $item){ $stat['msgid'] =trim((string)$item['msgid']); $stat['total']=trim((string)$item['total']); $stat['price']=trim((string)$item['price']); $stat['remain']=trim((string)$item['remain']); $stat_arr[]=$stat; } $return['status'] = 1; $return['data'] = $stat_arr; } else{ $return['status'] = 0; $return['err_msg'] = $this->_error_code[trim($re['result'])]; } $para['return'] = $return; } public function sendSmsOnce(&$para){ $config = $this->getConfig(); $content = $para['content']; $mobile = $para['mobile']; $data = array( 'action'=>'sendOnce', //发送类型 ,可以有sendOnce短信发送,sendBatch一对一发送,sendParam 动态参数短信接口 'ac'=>$config['ac'], //用户账号 'authkey'=>$config['authkey'], //认证密钥 'cgid'=>$config['cgid'], //通道组编号 'm'=>$mobile, //号码,多个号码用逗号隔开 'c'=>$content, //如果页面是gbk编码,则转成utf-8编码,如果是页面是utf-8编码,则不需要转码 'csid'=>$config['csid'], //签名编号 ,可以为空,为空时使用系统默认的签名编号 't'=> '' //定时发送,为空时表示立即发送 ); $xml= Util\C123::postSMS($this->open_api_url,$data); //POST方式提交 $re=simplexml_load_string(utf8_encode($xml)); if(trim($re['result'])==1){ foreach ($re->Item as $item){ $stat['msgid'] =trim((string)$item['msgid']); $stat['total']=trim((string)$item['total']); $stat['price']=trim((string)$item['price']); $stat['remain']=trim((string)$item['remain']); $stat_arr[]=$stat; } $return['status'] = 1; $return['data'] = $stat_arr; } else{ $return['status'] = 0; $return['err_msg'] = $this->_error_code[trim($re['result'])]; } $para['return'] = $return; } public function getSmsStatus(&$para){ $config = $this->getConfig(); $data = array( 'action'=>'getSendState', //发送类型 ,可以有sendOnce短信发送,sendBatch一对一发送,sendParam 动态参数短信接口 'ac'=>C('C123_ac'), //用户账号 'authkey'=>C('C123_authkey'), //认证密钥 ); $xml= Util\C123::postSMS($this->data_api_url,$data); //POST方式提交 $re=simplexml_load_string(utf8_encode($xml)); if(trim($re['result'])==1){ foreach ($re->Item as $item){ $stat['result'] = trim((string)$item['result']); $stat['msgid'] = trim((string)$item['msgid']); $stat['msg'] = $this->_return_code[trim((string)$item['return'])]; $stat_arr[]=$stat; } $return['status'] = 1; $return['data'] = $stat_arr; } else{ $return['status'] = 0; $return['err_msg'] = $this->_error_code[$re['result']]; } $para['return'] = $return; } public function getSmsRely(&$para){ $config = $this->getConfig(); $data = array( 'action'=>'getReply', //发送类型 ,可以有sendOnce短信发送,sendBatch一对一发送,sendParam 动态参数短信接口 'ac'=>C('C123_ac'), //用户账号 'authkey'=>C('C123_authkey'), //认证密钥 ); $xml= Util\C123::postSMS($this->data_api_url,$data); //POST方式提交 $re=simplexml_load_string($xml); if(trim($re['result'])==1){ foreach ($re->Item as $item){ $stat['msgid'] = trim((string)$item['msgid']); $stat['content'] = trim((string)$item['content']); $stat_arr[]=$stat; } $return['status'] = 1; $return['data'] = $stat_arr; } else{ $return['status'] = 0; $return['err_msg'] = $this->_error_code[$re['result']]; } $para['return'] = $return; } }