permission->is_admin(false);
$this->load->model('Paypal_model');
}
public function indexs($date='all',$page=1)
{
$data=array();
$data['current_m']=$date=='all'?date('Ym'):date('Ym',strtotime($date));
$data['current_d']=$date=='all'?'':date('Ymj',strtotime($date));
$data['userdata']=$this->session->userdata('admin_chtcdn');
$date=$date=='all'?'all':date('Y-m-d',strtotime($date));
$list=$this->Paypal_model->get_mail_list2(30,'',$date);
$pages['total'] = count($list); //数据总条数
$pages['pageSize'] = 30; //每页展示数量
$pages['url'] = site_url("apps/paypal/index/index/".$date.'/'); //页码链接
$pages['current'] = $page; //当前页码
$data['pageinfo'] = show_page($pages);
$mail_id_str = 0;
$list = array_slice($list, $pages['pageSize'] * ($page - 1), $pages['pageSize']);
foreach ($list as $v) {
$mail_id_str.=',' . $v->M_SN;
}
$data['list']=array();
!empty($list) && $data['list']=$this->Paypal_model->get_mail_list2(30,$mail_id_str);
$this->load->view('n-header', $data);
$this->load->view('index2');
$this->load->view('n-footer');
}
public function details($mail_sn,$tpl=0)
{
$data=array();
$mailinfo=$list=$this->Paypal_model->get_mail_list2(30,$mail_sn);
$mailinfo=$mailinfo[0];
$data['mail']=$mailinfo;
if ($tpl==0) {
$data['current_m']=date('Ym',strtotime($mailinfo->M_AddTime));
$data['current_d']=date('Ymj',strtotime($mailinfo->M_AddTime));
$data['detail_tpl']='1';
$data['userdata']=$this->session->userdata('admin_chtcdn');
!empty($mailinfo->pm_orderid) && $data['orderinfo']=$this->Paypal_model->get_order($mailinfo->pm_orderid,true);
$this->load->view('n-header', $data);
$this->load->view('index2');
$this->load->view('n-footer');
}else{
$this->load->view('detail2', $data);
}
}
public function index($date='all',$page=1)
{
$data=array();
$data['current_m']=$date=='all'?date('Ym'):date('Ym',strtotime($date));
$data['current_d']=$date=='all'?'':date('Ymj',strtotime($date));
$data['userdata']=$this->session->userdata('admin_chtcdn');
$date=$date=='all'?'all':date('Y-m-d',strtotime($date));
$list=$this->Paypal_model->get_mail_list(30,'',$date);
$pages['total'] = count($list); //数据总条数
$pages['pageSize'] = 30; //每页展示数量
$pages['url'] = site_url("apps/paypal/index/index/".$date.'/'); //页码链接
$pages['current'] = $page; //当前页码
$data['pageinfo'] = show_page($pages);
$mail_id_str = 0;
$list = array_slice($list, $pages['pageSize'] * ($page - 1), $pages['pageSize']);
foreach ($list as $v) {
$mail_id_str.=',' . $v->mail_sn;
}
$data['list']=array();
!empty($list) && $data['list']=$this->Paypal_model->get_mail_list(30,$mail_id_str);
$this->load->view('n-header', $data);
$this->load->view('index');
$this->load->view('n-footer');
}
public function search()
{
$data=array();
$data['current_m']=date('Ym');
$data['current_d']='';
$data['userdata']=$this->session->userdata('admin_chtcdn');
$data['list']=array();
$mail_o_orderno=$this->input->post('search_key');
$data['search_key']=$mail_o_orderno;
$data['list']=$this->Paypal_model->get_search_mails($mail_o_orderno);
$this->load->view('n-header', $data);
$this->load->view('index');
$this->load->view('n-footer');
}
public function my_paypal()
{
$userdata=$this->session->userdata('admin_chtcdn');
$data['current_m']=date('Ym');
$data['current_d']='';
$data['userdata']=$userdata;
$data['list']=array();
if($userdata!=false && !empty($userdata['OPI_Email']) && !empty($userdata['OPI_FirstName'])){
$data['list']=$this->Paypal_model->get_my_order($userdata['OPI_Email'],$userdata['OPI_FirstName']);
}
$this->load->view('n-header', $data);
$this->load->view('index');
$this->load->view('n-footer');
}
public function detail($mail_sn,$tpl=0)
{
$data=array();
$mailinfo=$list=$this->Paypal_model->get_mail_list(30,$mail_sn);
$mailinfo=$mailinfo[0];
$data['mail']=$mailinfo;
if ($tpl==0) {
$data['current_m']=date('Ym',strtotime($mailinfo->mail_date));
$data['current_d']=date('Ymj',strtotime($mailinfo->mail_date));
$data['detail_tpl']='1';
$data['userdata']=$this->session->userdata('admin_chtcdn');
$data['orderinfo']=$this->Paypal_model->get_order($mailinfo->mail_o_orderno,true);
$this->load->view('n-header', $data);
$this->load->view('index');
$this->load->view('n-footer');
}else{
$mailinfo->mail_body = str_replace("#@#", "'", $mailinfo->mail_body);
$mailinfo->mail_body=htmlspecialchars_decode($mailinfo->mail_body);
$this->load->view('detail', $data);
}
}
//下载远程服务器邮件
public function load_mail($redirect=0)
{
//邮箱配置
$this->lang->load('config');
$paymail=$this->lang->line('paymail');
$host = $paymail['host'];
$port = $paymail['port'];
$user = pack("H*",$paymail['user']);
$password = pack("H*",$paymail['password']);
$checkmail = $paymail['mail'];
//连接邮箱服务器
if(!($sock = fsockopen(gethostbyname($host),$port,$errno,$errstr))){
exit($errno.': '.$errstr);
}
stream_set_blocking($sock,true);
$command = "USER ".$user."\r\n";
fwrite($sock,$command);
fgets($sock);
$command = "PASS ".$password."\r\n";
fwrite($sock,$command);
fgets($sock);
$command = "stat\r\n";
fwrite($sock,$command);
fgets($sock);
$command = "LIST\r\n";
fwrite($sock,$command);
//获取邮件序号ID s
$all_mails = array();
while(true)
{
$msg = fgets($sock);
if(!preg_match('/^\+OK/' , $msg) && !preg_match('/^\./' , $msg))
{
$msg = preg_replace('/\ .*\r\n/' , '' , $msg);
array_push($all_mails,$msg);
}
if(preg_match('/^\./',$msg)){
break;
}
}
//按时间先后重新排序邮件
$insert_cols='';
$array_mails = array();
krsort($all_mails);
$i=0;
$breakflag=false;
//提取每一封邮件内容
foreach($all_mails as $item)
{
$mail_content = '';
$mail_body='';
fwrite($sock, "RETR $item\r\n");
while(true)
{
$msg = fgets($sock);
$mail_content .= $msg;
if(preg_match('/^\./', $msg))
{
//从邮件内容提取改邮件的传输编码$encoding,及显示用的编码$charset
$encoding=explode('Content-Transfer-Encoding:', $mail_content);
if (!isset($encoding[1])) {
break;
}
$encoding[1]=str_replace(array("\t","\n","\r"), ' ', $encoding[1]);
$encoding=explode(' ', trim($encoding[1]));
$encoding=strtoupper(trim($encoding[0]));
$charset=explode('charset=', $mail_content);
$charset[1]=str_replace(array("\t","\n","\r"), ' ', $charset[1]);
$charset=explode(' ', trim($charset[1]));
$charset=trim($charset[0]);
//提取邮件mailbody,对邮件内容进行解码,然后统一用utf8编码输出
$mail_header=$mail_content;
switch ($encoding) {
case '7BIT' :
case '8BIT' :
$mail_content = mb_convert_encoding($mail_content, 'utf-8', $encoding);
$mail_body =$mail_content;
$mail_header=$mail_content;
break;
case 'BASE64' :
//base64解码对要解码的字符串有严格要求,必须先把多余部分去掉
$mail_content=str_replace('----NextPart_048F8BC8A2197DE2036A--', '', $mail_content);
$mail_body=end(explode('charset='.$charset, $mail_content));
$mail_body =base64_decode($mail_body);
$mail_body = mb_convert_encoding($mail_body, 'utf-8', $charset);
$mail_content = mb_convert_encoding($mail_content, 'utf-8', $charset);
$mail_header=$mail_content;
break;
case 'QUOTED-PRINTABLE' :
$mail_arr=explode('', $mail_content);
$mail_body=end($mail_arr);
$mail_header=$mail_arr[0];
$mail_arr_temp=explode('', $mail_body);
$mail_body=$mail_arr_temp[0];
$mail_body=str_replace(array('=A0','=92','=A9','=96'), array(' ',"'",' ','-'), $mail_body);
$mail_body= ''.$mail_body.'';
$mail_body=quoted_printable_decode($mail_body);
$mail_body = mb_convert_encoding($mail_body, 'utf-8', $charset);
$mail_content = mb_convert_encoding($mail_content, 'utf-8', $charset);
break;
}
//提取邮件各属性
$structures=iconv_mime_decode_headers($mail_header, 0, "UTF-8");
$From=array();
isset($structures['From'])?$From=explode('via PayPal', $structures['From']):'';
$array_mails[$item]->mail_sendstate=0;
$array_mails[$item]->message_id = isset($structures['Message-Id'])?$structures['Message-Id']:'';
$array_mails[$item]->from = $structures['Reply-To'];
$array_mails[$item]->from_name = isset($From[0])?$From[0]:'';
$array_mails[$item]->to = 'pays@chinahighlights.com';
$array_mails[$item]->to_name = 'Guilin China International Travel Service Co., Ltd';//$structures['To'];
$array_mails[$item]->date = isset($structures['Date'])?date('Y-m-d H:i:s',strtotime($structures['Date'])):'';
$subject = isset($structures['Subject'])?$structures['Subject']:'';
$array_mails[$item]->from_name=str_replace("'", '#@#', $array_mails[$item]->from_name);
$array_mails[$item]->subject = str_replace("'", '#@#', $subject);
$array_mails[$item]->mail_body = str_replace("'", '#@#', htmlspecialchars($mail_body));
//提取金额
$money_flag='$';
$money_type='USD';
$money=0;
$match_result=preg_match('/You received a payment of(.*?)from/i', $mail_body,$price);
if ($match_result==1) {
$price=trim($price[1]);
$price=explode(' ', $price);
$money=trim($price[0]);
for($j=0;$j