Merge branch 'master' of github.com:hainatravel/information-system

master
Jimmy Liow 2 years ago
commit a33d58eb25

1
.gitignore vendored

@ -9,6 +9,7 @@
/kcfinder/cache/*
*/cache/*
/author/document/*
*/settlement_files/*
*/statement_files/*
*/paypal_activities/*
/author/document/*

@ -392,11 +392,17 @@ $config['site'] = array(
'cht' => array('site_code' => 'cht', 'site_id' => 14, 'site_lgc' => '1', 'site_url' => 'https://www.chinahighlights.com', 'site_image_url' => 'https://images.chinahighlights.com', 'site_authors' => array('zzy', 'spt', 'yl', 'gavin', 'sw', 'zl', 'wbl', 'yqw', 'lf', 'zhm', 'pkl'), 'site_user' => ',ycc,lmr, zyh,J,shw,B,zzy,WJJ,Tony,pcf,zxy,wst,wz,v,S,yyg,yxd,wj,sw,yl,hx,spt,wmr,zl,syt,gavin,zm,htc,yqw,bhn,lmj,wbl,yqw,LYY,zhm,si'),
'ch' => array('site_code' => 'ch', 'site_id' => 14, 'site_lgc' => '1', 'site_url' => 'https://www.chinahighlights.com', 'site_image_url' => 'https://images.chinahighlights.com', 'site_authors' => array('TDJ', 'ycc'), 'site_user' => ',ycc,'),
'gm' => array('site_code' => 'gm', 'site_id' => 22, 'site_lgc' => '4', 'site_url' => 'https://www.chinarundreisen.com', 'site_image_url' => '//bilder.chinarundreisen.com', 'site_authors' => array('DX', 'X', 'K', 'Lan', 'lmr', 'zyh', 'ZYHL', 'TDJ'), 'site_user' => ',ycc,lmr,B,zyh,DX,X,K,htc,zm,bhn,Lan,Tony,zyh,J,v,ZYHL,TDJ,LYY,shw,'),
'gh_gm' => array('site_code' => 'gh_gm', 'site_id' => 178, 'site_lgc' => '4', 'site_url' => 'https://www.globalhighlights.de', 'site_image_url' => '//www.globalhighlights.de', 'site_authors' => array('DX', 'X', 'K', 'Lan', 'lmr', 'zyh', 'ZYHL', 'TDJ'), 'site_user' => ',ycc,lmr,B,zyh,DX,X,K,htc,zm,bhn,Lan,Tony,zyh,J,v,ZYHL,TDJ,LYY,shw,'),
'vc' => array('site_code' => 'vc', 'site_id' => 30, 'site_lgc' => '5', 'site_url' => 'https://www.voyageschine.com', 'site_image_url' => '//images.voyageschine.com', 'site_authors' => array('JE', 'kq', 'lya', 'lyz', 'zyh'), 'site_user' => ',ycc,lmr, zyh,JE,htc,kq,lya,bhn,Tony,zyh,B,J,lyz,LYY,'),
'gh_vc' => array('site_code' => 'gh_vc', 'site_id' => 180, 'site_lgc' => '5', 'site_url' => 'https://www.globalhighlights.fr', 'site_image_url' => '//www.globalhighlights.fr', 'site_authors' => array('JE', 'kq', 'lya', 'lyz', 'zyh'), 'site_user' => ',ycc,lmr, zyh,JE,htc,kq,lya,bhn,Tony,zyh,B,J,lyz,LYY,'),
'jp' => array('site_code' => 'jp', 'site_id' => 88, 'site_lgc' => '3', 'site_url' => 'https://www.arachina.com', 'site_image_url' => '//images.arachina.com', 'site_authors' => array('hql', 'LLM', 'SHX', 'lmr', 'zyh', 'zb'), 'site_user' => ',ycc,lmr, zyh,hql,LLM,SHX,htc,zpl,Tony,zyh,J,B,zb,LYY,'),
'gh_jp' => array('site_code' => 'gh_jp', 'site_id' => 179, 'site_lgc' => '3', 'site_url' => 'https://www.globalhighlights.jp', 'site_image_url' => '//www.globalhighlights.jp', 'site_authors' => array('hql', 'LLM', 'SHX', 'lmr', 'zyh', 'zb'), 'site_user' => ',ycc,lmr, zyh,hql,LLM,SHX,htc,zpl,Tony,zyh,J,B,zb,LYY,'),
'vac' => array('site_code' => 'vac', 'site_id' => 95, 'site_lgc' => '6', 'site_url' => 'https://www.viaje-a-china.com', 'site_image_url' => '//imagenes.viaje-a-china.com', 'site_authors' => array('I', 'cyt', 'lmr', 'zyh', 'LLM'), 'site_user' => ',ycc,lmr, zyh,I,cyt,htc,bhn,Tony,zyh,B,J,LLM,LYY,'),
'gh_vac' => array('site_code' => 'gh_vac', 'site_id' => 181, 'site_lgc' => '6', 'site_url' => 'https://www.globalhighlights.es', 'site_image_url' => '//www.globalhighlights.es', 'site_authors' => array('I', 'cyt', 'lmr', 'zyh', 'LLM'), 'site_user' => ',ycc,lmr, zyh,I,cyt,htc,bhn,Tony,zyh,B,J,LLM,LYY,'),
'it' => array('site_code' => 'it', 'site_id' => 168, 'site_lgc' => '8', 'site_url' => 'https://www.viaggio-in-cina.it', 'site_image_url' => '//images.viaggio-in-cina.it', 'site_authors' => array('LZY', 'ZQQ', 'lmr', 'zyh'), 'site_user' => ',ycc,lmr, zyh,LZY,htc,ZQQ,Tony,zyh,B,J,LYY,'),
'gh_it' => array('site_code' => 'gh_it', 'site_id' => 183, 'site_lgc' => '8', 'site_url' => 'https://www.globalhighlights.it', 'site_image_url' => '//www.globalhighlights.it', 'site_authors' => array('LZY', 'ZQQ', 'lmr', 'zyh'), 'site_user' => ',ycc,lmr, zyh,LZY,htc,ZQQ,Tony,zyh,B,J,LYY,'),
'ru' => array('site_code' => 'ru', 'site_id' => 102, 'site_lgc' => '7', 'site_url' => 'https://www.chinahighlights.ru', 'site_image_url' => '//images.chinahighlights.ru', 'site_authors' => array('xjj', 'zyy'), 'site_user' => ',ycc,lmr, zyh,xjj,htc,DX,zyy,bhn,Tony,zyh,B,J,LYY,'),
'gh_ru' => array('site_code' => 'gh_ru', 'site_id' => 182, 'site_lgc' => '7', 'site_url' => 'https://www.globalhighlights.ru', 'site_image_url' => '//www.globalhighlights.ru', 'site_authors' => array('xjj', 'zyy'), 'site_user' => ',ycc,lmr, zyh,xjj,htc,DX,zyy,bhn,Tony,zyh,B,J,LYY,'),
'wt' => array('site_code' => 'wt', 'site_id' => 172, 'site_lgc' => '2', 'site_url' => 'https://www.iiiyooo.com', 'site_image_url' => '', 'site_authors' => array('ylh', 'lfj', 'wx', 'lzh', 'shw', 'lx'), 'site_user' => ',ycc,lmr, zyh,ylh,lfj,wx,lzh,shw,lx,bhn,B,J,'),
'tbt' => array('site_code' => 'tbt', 'site_id' => 169, 'site_lgc' => '1', 'site_url' => 'https://www.tibettravel.info', 'site_image_url' => '/images', 'site_authors' => array('wj', 'sfx'), 'site_user' => ',ycc,wj,bhn,wx,lzh,lfj,hwt,thf,sfx,J,ZP,'),
'sht' => array('site_code' => 'sht', 'site_id' => 96, 'site_lgc' => '1', 'site_url' => 'https://www.shanghaihighlights.com', 'site_image_url' => '//images.shanghaihighlights.com', 'site_authors' => array('vz', 'sfx'), 'site_user' => ',ycc,wj,bhn,wx,lzh,lfj,hwt,thf,vz,sfx,J,ZP,LYY,'),

@ -171,7 +171,6 @@ class Information extends CI_Controller
$data['informationList'] = $this->Information_model->StructureList($rootStructure_ID);
//增加一项,属于这个区域,但是结构数据层次不准确的也要列出来
//todo:
//信息内容
$data['information'] = $this->Information_model->Detail($is_id);
@ -447,7 +446,7 @@ class Information extends CI_Controller
$information_new = $this->Information_model->Detail($this->input->post('is_id'));
$this->make_www_cache_ct($information_new);
// $this->make_www_cache_ct('pc', $information_new);
} else if (strcasecmp($site_code, "shanghai") == 0 && !empty($auto_update_cache)){
} else if (strcasecmp($site_code, "shanghai") == 0 && !empty($auto_update_cache)) {
$information_new = $this->Information_model->Detail($this->input->post('is_id'));
$this->make_www_cache_sh($information_new);
} else if (strcasecmp($site_code, "cht") == 0 && !empty($auto_update_cache)) {
@ -928,40 +927,40 @@ class Information extends CI_Controller
// /day-tours/(278008224) 节点不使用推荐信息
if ($information->is_parent_id == '278008224') {
} else {
// 右侧列表广告
$tips_right_a = [];
$tips_right_b = [];
$tips_right_c = [];
for ($i = 1; $i <= 12; $i++) {
$key = 'List Tips Right A_' . $i;
if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
$tips_right_a[] = $recommand_information[$key];
}
}
for ($i = 1; $i <= 12; $i++) {
$key = 'List Tips Right B_' . $i;
if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
$tips_right_b[] = $recommand_information[$key];
}
}
for ($i = 1; $i <= 12; $i++) {
$key = 'List Tips Right C_' . $i;
if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
$tips_right_c[] = $recommand_information[$key];
}
}
$tips_right_list_content = $this->load->view(
'mobile_first/ch-tips-right-list',
array(
'tips_right_a' => $tips_right_a,
'tips_right_b' => $tips_right_b,
'tips_right_c' => $tips_right_c
),
true
);
$template = str_replace('<!--@TIPS-RIGHT-LIST@-->', $tips_right_list_content, $template);
// 右侧列表广告
$tips_right_a = [];
$tips_right_b = [];
$tips_right_c = [];
for ($i = 1; $i <= 12; $i++) {
$key = 'List Tips Right A_' . $i;
if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
$tips_right_a[] = $recommand_information[$key];
}
}
for ($i = 1; $i <= 12; $i++) {
$key = 'List Tips Right B_' . $i;
if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
$tips_right_b[] = $recommand_information[$key];
}
}
for ($i = 1; $i <= 12; $i++) {
$key = 'List Tips Right C_' . $i;
if (array_key_exists($key, $recommand_information) && $recommand_information[$key]) {
$tips_right_c[] = $recommand_information[$key];
}
}
$tips_right_list_content = $this->load->view(
'mobile_first/ch-tips-right-list',
array(
'tips_right_a' => $tips_right_a,
'tips_right_b' => $tips_right_b,
'tips_right_c' => $tips_right_c
),
true
);
$template = str_replace('<!--@TIPS-RIGHT-LIST@-->', $tips_right_list_content, $template);
}
//文中的信息推荐
@ -2460,7 +2459,7 @@ class Information extends CI_Controller
$ic_content = $information->ic_content;
/** 替换H1加面包屑,加作者 */
$ic_content = preg_replace('/<h1>(.*)<\/h1>/i', $crumb . "\r\n" . '<H1>$1</H1>' . "\r\n" . $str_author . "\r\n", $ic_content, 1);
$ic_content = preg_replace('/<h1>(.*)<\/h1>/i', $crumb . "\r\n" . '<H1>$1</H1>' . "\r\n" . $str_author . "\r\n", $ic_content, 1);
//图片加延迟
$ic_content = $this->html_optimize_lib->set_lazy_loader($ic_content, 'https://data.shanghaihighlights.com/image/grey.gif');
@ -2597,10 +2596,10 @@ class Information extends CI_Controller
$data["ADDONCSS"] .= '<link href="' . $apiweb . '/css/css3/flatpickr.css" rel="preload" as="style" onload="this.rel=\'stylesheet\'" />';
//一日游表单的替换
$DayTripData["productCode"]=$productCode;
$template_form_daydetail = $this->load->view($template_path.'-daydetail-form',$DayTripData,true); //模板内容
$DayTripData["productCode"] = $productCode;
$template_form_daydetail = $this->load->view($template_path . '-daydetail-form', $DayTripData, true); //模板内容
//使用simple_html_dom_lib库来进行表单添加
$ic_content = $this->html_optimize_lib->add_htmlcode($ic_content,"#maincontent",$template_form_daydetail);
$ic_content = $this->html_optimize_lib->add_htmlcode($ic_content, "#maincontent", $template_form_daydetail);
}
if ($meta_ct_page_type == "tourdetail") {
//线路
@ -2631,7 +2630,7 @@ class Information extends CI_Controller
$data["ADDONCSS"] .= '<link href="' . $apiweb . '/css/css3/flatpickr.css" rel="preload" as="style" onload="this.rel=\'stylesheet\'" />';
}
if ($meta_ct_page_type=="daytripform"){
if ($meta_ct_page_type == "daytripform") {
$productType = $meta_ct_page_type;
$addonJs .= '<script src="' . $apiweb . '/js/mobile-first/daytrip-form.js" defer></script>';
$data["ADDONCSS"] .= '<link href="' . $apiweb . '/css/css3/form.css" rel="preload" as="style" onload="this.rel=\'stylesheet\'" />';
@ -2828,7 +2827,7 @@ class Information extends CI_Controller
$exclude_ids = array($information->is_id); //需要排除的is_id防止通过页面显示相同内容默认排除本身每个推荐内容都需要排除已经推荐过的
foreach ($root_recommands as $item) {
if ($this->config->item('site_code') == 'ah') { //如果是AH的页面取消重复检测
$exclude_ids=array(0);
$exclude_ids = array(0);
}
$result = $this->recommand_information_rule($information, $root_detail, $item, $exclude_ids);
if (!empty($result)) {
@ -2837,8 +2836,8 @@ class Information extends CI_Controller
}
foreach ($group_recommands as $item) {
if ($this->config->item('site_code') == 'ah' or $this->config->item('site_code') == 'ch' or $this->config->item('site_code') == 'gh' ) { //如果是AH CH GH的页面取消重复检测
$exclude_ids=array(0);
if ($this->config->item('site_code') == 'ah' or $this->config->item('site_code') == 'ch' or $this->config->item('site_code') == 'gh') { //如果是AH CH GH的页面取消重复检测
$exclude_ids = array(0);
}
if (empty($data[$item->ir_name])) {
$result = $this->recommand_information_rule($information, $root_detail, $item, $exclude_ids);

@ -77,7 +77,7 @@ function is_series_site()
{
$CI = &get_instance();
$sitecode = $CI->config->item('site_code');
if ($sitecode == 'vc' || $sitecode == 'ru' || $sitecode == 'jp' || $sitecode == 'vac' || $sitecode == 'it') {
if (in_array($sitecode, array('jp', 'vc', 'vac', 'ru', 'it', 'gh_jp', 'gh_vc', 'gh_vac', 'gh_ru', 'gh_it', 'gh_gm'))) {
return true;
} else {
return false;
@ -103,7 +103,7 @@ function is_mobile_first()
{
$CI = &get_instance();
$sitecode = $CI->config->item('site_code');
if ($sitecode == 'ch' || $sitecode == 'ah' || $sitecode=='chinatravel' || $sitecode == 'gh' || $sitecode=='shanghai') {
if ($sitecode == 'ch' || $sitecode == 'ah' || $sitecode == 'chinatravel' || $sitecode == 'gh' || $sitecode == 'shanghai') {
return true;
} else {
return false;
@ -222,7 +222,7 @@ function get_task_count_by_status()
function get_author_photo($author_code_id = false)
{
$CI = &get_instance();
$root_url = '';//'http://data.chtcdn.com';
$root_url = ''; //'http://data.chtcdn.com';
$avatar = $root_url . '/css/images/avatar.jpg';
if ($author_code_id && is_numeric($author_code_id)) {
$CI->load->model('Infoauthors_model');
@ -237,7 +237,7 @@ function get_author_photo($author_code_id = false)
//补全图片路径
function get_photo_url($photo)
{
$root_url = '';//'http://data.chtcdn.com';
$root_url = ''; //'http://data.chtcdn.com';
if ($photo == '') {
$avatar = $root_url . '/css/images/uploadPic.jpg';
} else {
@ -275,7 +275,8 @@ function show_page($page)
}
$html = '';
if ($nowview > 1) $befor--;
if ($nowview > 1)
$befor--;
if ($pageSize <= $total) {
for ($i = $befor; $i <= $after; $i++) {
if ($i == $currentPage) {
@ -338,7 +339,7 @@ function GET_HTTP($url, $data = '', $method = 'GET')
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
$tmpInfo = curl_exec($curl); // 执行操作
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if ($httpCode >= 400) {//页面状态如果大于400说明页面打不开
if ($httpCode >= 400) { //页面状态如果大于400说明页面打不开
log_message('error', " curl {$httpCode} {$url} ");
return false;
}
@ -371,7 +372,8 @@ function compress_css($buffer)
}
//把临时多媒体中心预览图片地址替换为网前地址
function replace_image_url($ic_content){
function replace_image_url($ic_content)
{
$CI = &get_instance();
return str_replace($CI->config->item('media_image_url'), $CI->config->item('site_image_url'),$ic_content);
return str_replace($CI->config->item('media_image_url'), $CI->config->item('site_image_url'), $ic_content);
}

@ -55,53 +55,7 @@
alt="Asiahighlights logo" class="asiahighlightslogo img-responsive"></a>
<div class="p_topnavigation">
<ul class="pctopnavi">
<li class="dropdown"><a href="/japan/tours" class="p_topnavilink">Japan</a>
<div class=" dropdown-content">
<div class="inspirationinfo">
<div class="inspirationlist vacationtype">
<span class="inspirationtitle">Itinerary Ideas</span>
<div class="listtour">
<ul class="inspiration">
<li><a href="/japan/tours/tokyo-highlights">5 Days</a></li>
<li><a href="/japan/tours/tokyo-kyoto-osaka">7 Days</a></li>
<li><a href="/japan/tours/tokyo-hakone-kyoto-hiroshima-osaka">8 Days</a></li>
<li><a href="/japan/tours/japan-highlights">9 Days</a></li>
<li><a href="/japan/tours/tokyo-yokohama-hakone-kyoto-nara-osaka">10 Days</a></li>
<li><a href="/japan/tours/traditional-japan">11 Days</a></li>
<li><a href="/japan/tours/classic-japan">12 Days</a></li>
</ul>
<ul class="inspiration">
<li><a href="/japan/tours/family-vacation">14 Days</a></li>
<li><a href="/japan/tours/japan-china-discovery">16 Days</a></li>
<li><a href="/japan/tours/summer-family-vacation">17 Days</a></li>
<li><a href="/japan/tours/nara-tokyo-hakone-nagoya-kyoto-osaka">18 Days</a></li>
<li><a href="/japan/tours/tokyo-kyoto-nara-osaka-hiroshima-fukuoka">21 Days</a></li>
<li><a href="/japan/3-week-itineraries">3 Weeks</a></li>
</ul>
</div>
</div>
<div class="inspirationlist vacationtype">
<span class="inspirationtitle">Trip Plan</span>
<div class="listtour">
<ul class="inspiration">
<li><a href="/japan/plan-a-trip">Bucket List Trip</a></li>
<li><a href="/japan/how-to-plan-a-family-trip-to-japan">Family Trip</a></li>
<li><a href="/japan/plan-a-cherry-blossom-trip">Cherry Blossom Trip</a></li>
<li><a href="/japan/planning-a-summer-trip">Summer Trip</a></li>
<li><a href="/japan/plan-a-winter-trip">Winter Trip</a></li>
</ul>
<ul class="inspiration">
<li><a href="/asia/plan-a-two-week-itinerary-in-japan-and-south-korea">Japan-South
Korea Trip</a></li>
<li><a href="/asia/plan-a-trip-to-china-and-japan">Japan-China Trip</a></li>
<li><a href="/asia/plan-a-trip-to-japan-and-thailand">Japan-Thailand
Trip</a></li>
</ul>
</div>
</div>
</div>
</div>
</li>
<li class="dropdown"><a href="/tours" class="p_topnavilink">Tours</a></li>
<li class="dropdown"><a href="/southeast-asia/tours/thailand-cambodia-and-vietnam"
class="p_topnavilink" id="thailand_vietnam_cambodia_pc">Thailand-Vietnam-Cambodia</a>
<div class=" dropdown-content">
@ -217,74 +171,7 @@
</div>
</div>
</li>
<li class="dropdown"><a class="p_topnavilink">Itinerary Ideas</a>
<div class=" dropdown-content">
<div class="inspirationinfo">
<div class="inspirationlist topthings">
<span class="inspirationtitle">7-12 Days Itinerary</span>
<div class="listtour">
<ul class="inspiration">
<li><a href="/japan/1-week-itinerary">1 Week in Japan</a></li>
<li><a href="/vietnam/7-days-itinerary">1 Week in Vietnam</a></li>
<li><a href="https://www.chinahighlights.com/travelguide/8-day-china-itinerary.htm"
target="_blank">8 Days in China</a></li>
<li><a href="/japan/10-day-itineraries">10 Days in Japan</a></li>
<li><a href="/vietnam/10-days-itinerary">10 Days in Vietnam</a></li>
<li><a href="https://www.chinahighlights.com/travelguide/10-days-china-itinerary.htm"
target="_blank">10 Days in China</a></li>
<li><a href="/japan/12-day-itineraries">12 Days in Japan</a></li>
<li><a href="https://www.chinahighlights.com/travelguide/12-days-china-itinerary.htm"
target="_blank">12 Days in China</a></li>
</ul>
</div>
</div>
<div class="inspirationlist topthings">
<span class="inspirationtitle">2-Week Itinerary</span>
<div class="listtour">
<ul class="inspiration">
<li><a href="/southeast-asia/2-weeks-itinerary ">Southeast Asia</a></li>
<li><a href="/japan/2-week-itineraries">Japan</a></li>
<li><a href="/asia/plan-a-two-week-itinerary-in-japan-and-south-korea">
Japan and South Korea</a></li>
<li><a href="/thailand/2-weeks-in-thailand">Thailand</a></li>
<li><a href="/vietnam/2-weeks-itinerary">Vietnam</a></li>
<li><a href="/india/2-week-itinerary">India</a></li>
<li><a href="https://www.chinahighlights.com/travelguide/2-weeks-china-itinerary.htm"
target="_blank">China</a></li>
</ul>
</div>
</div>
<div class="inspirationlist topthings">
<span class="inspirationtitle">3-Week Itinerary</span>
<ul class="inspiration">
<li><a href="/southeast-asia/3-weeks-itinerary">Southeast Asia</a></li>
<li><a href="/japan/3-week-itineraries">Japan</a></li>
<li><a href="/vietnam/3-weeks-itinerary">Vietnam</a></li>
<li><a href="https://www.chinahighlights.com/travelguide/3-weeks-china-itinerary.htm"
target="_blank">China</a></li>
<li><a href="/southeast-asia/trip-to-thailand-cambodia-vietnam">Thailand,
Cambodia, Vietnam</a></li>
<li><a href="/asia/tours/china-and-vietnam">China, Vietnam</a></li>
<li><a href="/asia/tours/china-nepal-and-india">China, Nepal, India</a></li>
<li><a href="/asia/tours/china-laos-thailand">China, Laos, Thailand</a></li>
</ul>
</div>
<div class="inspirationlist topthings">
<span class="inspirationtitle">4-Week Itinerary</span>
<ul class="inspiration">
<li><a href="/southeast-asia/4-weeks-itinerary">Southeast Asia</a></li>
<li><a href="https://www.chinahighlights.com/travelguide/4-week-china-itinerary.htm"
target="_blank">China</a></li>
</ul>
</div>
</div>
</div>
</li>
<li class="dropdown"><a class="p_topnavilink" href="/itinerary-ideas">Itinerary Ideas</a></li>
<li class="dropdown"><a href="/about-us" class="p_topnavilink">About Us</a>
<div class=" dropdown-content">
<div class="inspirationinfo">

@ -77,8 +77,8 @@
<div class="menu__wrap">
<ul data-menu="main" class="menu__level menu__level--current" tabindex="-1" role="menu" aria-label="All">
<li class="menu__item" role="menuitem"><a class="menu__link" href="/">Home</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/japan/tours" data-submenu="submenu-7"
aria-owns="submenu-7">Japan</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/tours" data-submenu="submenu-7"
aria-owns="submenu-7">Tours</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" id="thailand_vietnam_cambodia_mobile"
data-submenu="submenu-6" aria-owns="submenu-6">Thailand-Vietnam-Cambodia</a></li>
@ -92,29 +92,15 @@
aria-owns="submenu-12">Middle East</a></li>
<li class="menu__item" role="menuitem" style="margin-bottom: 50px;"><a class="menu__link"
data-submenu="submenu-13" aria-owns="submenu-13">Central Asia</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/itinerary-ideas">Itinerary Ideas</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" data-submenu="submenu-4"
aria-owns="submenu-4">1-Week Itinerary</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" data-submenu="submenu-2"
aria-owns="submenu-2">10-12 Days Itinerary</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" data-submenu="submenu-5"
aria-owns="submenu-5">2-Week Itinerary</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" data-submenu="submenu-3"
aria-owns="submenu-3">3-Week Itinerary</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" data-submenu="submenu-8"
aria-owns="submenu-8">4-Week Itinerary</a></li>
<li class="menu__item" role="menuitem"><a href="/reviews" data-submenu="submenu-9" aria-owns="submenu-9"
class="menu__link">Reviews</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/about-us">About Us</a></li>
<li class="menu__item" role="menuitem"><a href="/reviews" data-submenu="submenu-9" aria-owns="submenu-9"
class="menu__link">Reviews</a></li>
</ul>
<!-- 4-weeks-itinerary -->
<ul data-menu="submenu-8" id="submenu-8" class="menu__level" tabindex="-1" role="menu"
aria-label="4-weeks-itinerary">
<li class="menu__item" role="menuitem"><a class="menu__link" href="/southeast-asia/4-weeks-itinerary">Southeast
Asia</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link"
href="https://www.chinahighlights.com/travelguide/4-week-china-itinerary.htm" target="_blank">China</a></li>
</ul>
<!-- Thailand-Vietnam-Cambodia -->
<ul data-menu="submenu-6" id="submenu-6" class="menu__level" tabindex="-1" role="menu"
aria-label="Thailand_Vietnam_Cambodia">
@ -206,98 +192,6 @@
<li class="menu__item" role="menuitem"><a class="menu__link" href="/tours/kyrgyzstan-tajikistan-uzbekistan">Five
Stans</a></li>
</ul>
<!-- Best-time -->
<ul data-menu="submenu-2" id="submenu-2" class="menu__level" tabindex="-1" role="menu" aria-label="Best-time">
<li class="menu__item" role="menuitem"><a
href="https://www.chinahighlights.com/travelguide/8-day-china-itinerary.htm" class="menu__link"
target="_blank">8 Days in China</a></li>
<li class="menu__item" role="menuitem"><a href="/japan/10-day-itineraries" class="menu__link">10 Days in
Japan</a></li>
<li class="menu__item" role="menuitem"><a href="/vietnam/10-days-itinerary" class="menu__link">10 Days in
Vietnam</a></li>
<li class="menu__item" role="menuitem"><a
href="https://www.chinahighlights.com/travelguide/10-days-china-itinerary.htm" target="_blank"
class="menu__link">10 Days in China</a></li>
<li class="menu__item" role="menuitem"><a href="/japan/12-day-itineraries" class="menu__link">12 Days in
Japan</a></li>
<li class="menu__item" role="menuitem"><a
href="https://www.chinahighlights.com/travelguide/12-days-china-itinerary.htm" class="menu__link"
target="_blank">12 Days in China</a></li>
</ul>
<!-- festival -->
<ul data-menu="submenu-3" id="submenu-3" class="menu__level" tabindex="-1" role="menu" aria-label="festival">
<li class="menu__item" role="menuitem"><a href="/southeast-asia/3-weeks-itinerary" class="menu__link">Southeast
Asia</a></li>
<li class="menu__item" role="menuitem"><a href="/japan/3-week-itineraries" class="menu__link">Japan</a></li>
<li class="menu__item" role="menuitem"><a href="/vietnam/3-weeks-itinerary" class="menu__link">Vietnam</a></li>
<li class="menu__item" role="menuitem"><a
href="https://www.chinahighlights.com/travelguide/3-weeks-china-itinerary.htm" target="_blank"
class="menu__link">China</a></li>
<li class="menu__item" role="menuitem"><a href="/southeast-asia/trip-to-thailand-cambodia-vietnam"
class="menu__link">Thailand, Cambodia, Vietnam</a></li>
<li class="menu__item" role="menuitem"><a href="/asia/tours/china-and-vietnam" class="menu__link">China,
Vietnam</a></li>
<li class="menu__item" role="menuitem"><a href="/asia/tours/china-nepal-and-india" class="menu__link">China,
Nepal, India</a></li>
<li class="menu__item" role="menuitem"><a href="/asia/tours/china-laos-thailand" class="menu__link">China, Laos,
Thailand</a></li>
</ul>
<!-- top things to do -->
<ul data-menu="submenu-4" id="submenu-4" class="menu__level" tabindex="-1" role="menu" aria-label="topthingstodo">
<li class="menu__item" role="menuitem"><a href="/japan/1-week-itinerary" class="menu__link">Japan</a></li>
<li class="menu__item" role="menuitem"><a href="/vietnam/7-days-itinerary" class="menu__link">Vietnam</a></li>
</ul>
<ul data-menu="submenu-5" id="submenu-5" class="menu__level" tabindex="-1" role="menu" aria-label="vacation">
<li class="menu__item" role="menuitem"><a href="/southeast-asia/2-weeks-itinerary" class="menu__link">Southeast
Asia</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/japan/2-week-itineraries">Japan</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link"
href="/south-korea">South Korea</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/thailand/2-weeks-in-thailand">Thailand</a>
</li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/vietnam/2-weeks-itinerary">Vietnam</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/india/2-week-itinerary">India</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link"
href="https://www.chinahighlights.com/travelguide/2-weeks-china-itinerary.htm" target="_blank">China</a>
</li>
</ul>
<ul data-menu="submenu-7" id="submenu-7" class="menu__level" tabindex="-1" role="menu" aria-label="japan">
<li class="menu__item" role="menuitem"><a href="/japan/tours/tokyo-highlights" class="menu__link">5 Days</a></li>
<li class="menu__item" role="menuitem"><a href="/japan/tours/tokyo-kyoto-osaka" class="menu__link">7 Days</a></li>
<li class="menu__item" role="menuitem"><a href="/japan/tours/tokyo-hakone-kyoto-hiroshima-osaka" class="menu__link">8 Days</a></li>
<li class="menu__item" role="menuitem"><a href="/japan/tours/japan-highlights" class="menu__link">9 Days</a></li>
<li class="menu__item" role="menuitem"><a href="/japan/tours/tokyo-yokohama-hakone-kyoto-nara-osaka" class="menu__link">10 Days</a></li>
<li class="menu__item" role="menuitem"><a href="/japan/tours/traditional-japan" class="menu__link">11 Days</a></li>
<li class="menu__item" role="menuitem"><a href="/japan/tours/classic-japan" class="menu__link">12 Days</a></li>
<li class="menu__item" role="menuitem"><a href="/japan/tours/family-vacation" class="menu__link">14 Days</a></li>
<li class="menu__item" role="menuitem"><a href="/japan/tours/japan-china-discovery" class="menu__link">16 Days</a></li>
<li class="menu__item" role="menuitem"><a href="/japan/tours/summer-family-vacation" class="menu__link">17 Days</a></li>
<li class="menu__item" role="menuitem"><a href="/japan/tours/nara-tokyo-hakone-nagoya-kyoto-osaka" class="menu__link">18 Days</a></li>
<li class="menu__item" role="menuitem"><a href="/japan/tours/tokyo-kyoto-nara-osaka-hiroshima-fukuoka" class="menu__link">21 Days</a></li>
<li class="menu__item" role="menuitem"><a href="/japan/3-week-itineraries" class="menu__link">3 Weeks</a></li>
<br><br>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/japan/plan-a-trip">Bucket List Trip</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link"
href="/japan/how-to-plan-a-family-trip-to-japan">Family Trip</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/japan/plan-a-cherry-blossom-trip">Cherry
Blossom Trip</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/japan/planning-a-summer-trip">Summer
Trip</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/japan/plan-a-winter-trip">Winter Trip</a>
</li>
<li class="menu__item" role="menuitem"><a class="menu__link"
href="/asia/plan-a-two-week-itinerary-in-japan-and-south-korea">Japan-South Korea Trip</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link"
href="/asia/plan-a-trip-to-china-and-japan">Japan-China Trip</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link"
href="/asia/plan-a-trip-to-japan-and-thailand">Japan-Thailand Trip</a></li>
</ul>
<ul data-menu="submenu-9" id="submenu-9" class="menu__level" tabindex="-1" role="menu" aria-label="reviews">
<li class="menu__item" role="menuitem"><a class="menu__link" href="/reviews" id="all_reviews_mobile">Asia

@ -42,8 +42,8 @@
})(window, document, 'script', 'dataLayer', 'GTM-T75N4LL');</script>
<!-- End Google Tag Manager -->
<!-- Hotjar Tracking Code for https://www.chinahighlights.com -->
<script>
<!-- Hotjar Tracking Code for https://www.chinahighlights.com/ -->
<script>
(function(h,o,t,j,a,r){
h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};
h._hjSettings={hjid:3723372,hjsv:6};

@ -34,8 +34,8 @@
})(window, document, 'script', 'dataLayer', 'GTM-T75N4LL');</script>
<!-- End Google Tag Manager -->
<!-- Hotjar Tracking Code for https://www.chinahighlights.com -->
<script>
<!-- Hotjar Tracking Code for https://www.chinahighlights.com/ -->
<script>
(function(h,o,t,j,a,r){
h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};
h._hjSettings={hjid:3723372,hjsv:6};

@ -1,13 +1,4 @@
<?php
$config["method_code"] = 15015;
$config['app_id'] = "2017092108849921";
$config['seller_id'] = "2088221900308281";
$config['notify_url'] = "http://www.mycht.cn/webht.php/apps/pay/alipaytradeservice/alipay_notice";
$config['return_url'] = "https://www.chinahighlights.com/secureipay/alipay_return";
$config['charset'] = "UTF-8";
$config['sign_type'] = "RSA2";
$config['gatewayUrl'] = "https://openapi.alipay.com/gateway.do";
$config['timeout_express'] = "1m";
$config['alipay_public_key'] = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsMpRXezVgTE4/ROKVgWO7AWiVLspzW36lkLF18g2neHV9mfV/kANzrdV170RzJirOuxPecG5LgnKO+MV6giwGJPpUyaRhgYwe1B6Po0LoU4QvI088xjDqNw1vzN7xPRYSgb63mdafVe1qGiHuwelyRYJTZFE3GSb3HSL/5O8MLu0FrIRabgkgOqN7EdznA/WjiGev3tA/10YSrneCcPe49XhKVLvS6cQ3abX48lRr2qxQqh538jYB8/Z/UUVhfQ4BoBqe9JpDQrv4TeIlAXjdqM0Fgz0LXHwXsAiDIeUiKBc+9bAz2vgkRycI+1F3A8VlUG8lwBjqXwzvxZvYzAZYQIDAQAB";
$config['merchant_private_key'] = "MIIEowIBAAKCAQEAzlwm2yj4lHDuGmBnbgdhMry5kfUmQ2ZeZtuTICi5oUATMlcxjHoVYXe5pN+vcZWM1laC8UuKX1K2gSV+46ax4WcAGjb4eItCmvQyq0REYUua+ybYwWtWn1481NLSPfvW2HwM8O9jXj3XBhfQzJsAJJTikM9lZO++6pC2Wtmhw3FjF+O1gkd015MujRUidXESrIwrmnbO/i1IERblXk1gVnvovWnq6VRB2gC9AfzLdkWo3Pq9rAX+MY/eYto/z8UaYU5BNanVIhQ6pAIQazIMawxqsu28AsPRcM8CwFTYcNktAB3feMRhLMqj9GWzkmDWhjrL3NYR+vsYHDAgj7L5ewIDAQABAoIBAFUxVhlEYNtng+T/x7N0+HupzjKjsphAuthb7fFo3rnjagluVdZY0Frcwpd+gT+zLeGO9aAIP6f6zb2jbS8usmEL1M79wraBR44RIpnyJQjF3cWx0+qGFczVauex4XoVbi0RiYYuTieqAAtT6a+OjhCMJr0B4io5j+fmtmHrVw0IFMmbAesV867EH7sn+MmnJCK79KbL5G7lBxZJZempS9ZhwR18WSGpCk90qHGoI9GlPPDWrN2nAVsGVl501vQKc+fUOQSXmAVc+K87q9SeUmrQdM1GbX5UCj+gMEC7sNAnWthCT2H4AFXxvzGLVhvBzRTLZT1SfmAS8zS8LINDxAECgYEA5gWwtS6Ot96E4MHQxjQEx0cP1+P71uI4huA8Lyx+guPymeM2+u4SiWpkuFyzmoNvMxh2fem3Add3kCNF0PNJRIbI0w2vqF+6gQYVIwcS3kqXUeq9oNN6raqFoad1adAUjGQM1SBwc8ARfF3gw8CkePaxikMzFJ6FS15GeA4SueECgYEA5apZCt3dsFzmMyf+/I/X9Bo+fXhnya6QLN+NsLcwnFpWN//rRHnMR7i9jUpyUUDefz9pLAmTkx3roevoGbI7kikqvWallH1rwkgynQAbyHU1XYjM/tRv9zs2TiorakbqrGvzmTdoClwM+dZOXTT4/TbkmcchvlvXkQWGozaIttsCgYEAqKDxS9Im5Jrn1RGhaTyHaEQrVD0Zyg2sHQzUckzvLivIFZLiIpFX24+46QNk09iZM98yNtqYxGvehjelnipMw0UAguEcrpYHV0FLS5OK/JW4W2B4xidjX1+MedcXF4xpFAbg9XnDlsfuybrU5Q0cRmWsAE2FbA9ObtNdW/QNPGECgYAd44J9EIy2VBC9XZoooku3f+bcC1xueeJXhKx68AxKfNM1rH+gxL0aJGe+yI6CFpAePVFhoslq3vz4cKwfE/v+tI7UYVRxM7Vfbmfv2MDE4MQWLSSIkXsU0Mbrez91ME+AKvhj2zsWBg7GQOan6Knywj8T6D9y957hR7fS69j0+wKBgA1Ph+8DTRbvfXKj95KraLdrPGq6hyK0PaF044pi3u2Z1iys99f7aKM0F19akVE9KG1niR4Zit6S1Hqxx+9V6cLw/xxfEl9t9NK8QxGDqmVk9T6TnyMZvMjAi+FADn3hzbRkp1HGT/XUYe2nFuUaATaNhNuuDcuVZtAr78joA+HV";
require 'alipay_cht.php';
require 'alipay_tp.php';

@ -0,0 +1,13 @@
<?php
$config['cht']["method_code"] = 15015;
$config['cht']['app_id'] = "2017092108849921";
$config['cht']['seller_id'] = "2088221900308281";
$config['cht']['notify_url'] = "http://www.mycht.cn/webht.php/apps/pay/alipaytradeservice/alipay_notice";
$config['cht']['return_url'] = "https://www.chinahighlights.com/secureipay/alipay_return";
$config['cht']['charset'] = "UTF-8";
$config['cht']['sign_type'] = "RSA2";
$config['cht']['gatewayUrl'] = "https://openapi.alipay.com/gateway.do";
$config['cht']['timeout_express'] = "1m";
$config['cht']['alipay_public_key'] = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsMpRXezVgTE4/ROKVgWO7AWiVLspzW36lkLF18g2neHV9mfV/kANzrdV170RzJirOuxPecG5LgnKO+MV6giwGJPpUyaRhgYwe1B6Po0LoU4QvI088xjDqNw1vzN7xPRYSgb63mdafVe1qGiHuwelyRYJTZFE3GSb3HSL/5O8MLu0FrIRabgkgOqN7EdznA/WjiGev3tA/10YSrneCcPe49XhKVLvS6cQ3abX48lRr2qxQqh538jYB8/Z/UUVhfQ4BoBqe9JpDQrv4TeIlAXjdqM0Fgz0LXHwXsAiDIeUiKBc+9bAz2vgkRycI+1F3A8VlUG8lwBjqXwzvxZvYzAZYQIDAQAB";
$config['cht']['merchant_private_key'] = "MIIEowIBAAKCAQEAzlwm2yj4lHDuGmBnbgdhMry5kfUmQ2ZeZtuTICi5oUATMlcxjHoVYXe5pN+vcZWM1laC8UuKX1K2gSV+46ax4WcAGjb4eItCmvQyq0REYUua+ybYwWtWn1481NLSPfvW2HwM8O9jXj3XBhfQzJsAJJTikM9lZO++6pC2Wtmhw3FjF+O1gkd015MujRUidXESrIwrmnbO/i1IERblXk1gVnvovWnq6VRB2gC9AfzLdkWo3Pq9rAX+MY/eYto/z8UaYU5BNanVIhQ6pAIQazIMawxqsu28AsPRcM8CwFTYcNktAB3feMRhLMqj9GWzkmDWhjrL3NYR+vsYHDAgj7L5ewIDAQABAoIBAFUxVhlEYNtng+T/x7N0+HupzjKjsphAuthb7fFo3rnjagluVdZY0Frcwpd+gT+zLeGO9aAIP6f6zb2jbS8usmEL1M79wraBR44RIpnyJQjF3cWx0+qGFczVauex4XoVbi0RiYYuTieqAAtT6a+OjhCMJr0B4io5j+fmtmHrVw0IFMmbAesV867EH7sn+MmnJCK79KbL5G7lBxZJZempS9ZhwR18WSGpCk90qHGoI9GlPPDWrN2nAVsGVl501vQKc+fUOQSXmAVc+K87q9SeUmrQdM1GbX5UCj+gMEC7sNAnWthCT2H4AFXxvzGLVhvBzRTLZT1SfmAS8zS8LINDxAECgYEA5gWwtS6Ot96E4MHQxjQEx0cP1+P71uI4huA8Lyx+guPymeM2+u4SiWpkuFyzmoNvMxh2fem3Add3kCNF0PNJRIbI0w2vqF+6gQYVIwcS3kqXUeq9oNN6raqFoad1adAUjGQM1SBwc8ARfF3gw8CkePaxikMzFJ6FS15GeA4SueECgYEA5apZCt3dsFzmMyf+/I/X9Bo+fXhnya6QLN+NsLcwnFpWN//rRHnMR7i9jUpyUUDefz9pLAmTkx3roevoGbI7kikqvWallH1rwkgynQAbyHU1XYjM/tRv9zs2TiorakbqrGvzmTdoClwM+dZOXTT4/TbkmcchvlvXkQWGozaIttsCgYEAqKDxS9Im5Jrn1RGhaTyHaEQrVD0Zyg2sHQzUckzvLivIFZLiIpFX24+46QNk09iZM98yNtqYxGvehjelnipMw0UAguEcrpYHV0FLS5OK/JW4W2B4xidjX1+MedcXF4xpFAbg9XnDlsfuybrU5Q0cRmWsAE2FbA9ObtNdW/QNPGECgYAd44J9EIy2VBC9XZoooku3f+bcC1xueeJXhKx68AxKfNM1rH+gxL0aJGe+yI6CFpAePVFhoslq3vz4cKwfE/v+tI7UYVRxM7Vfbmfv2MDE4MQWLSSIkXsU0Mbrez91ME+AKvhj2zsWBg7GQOan6Knywj8T6D9y957hR7fS69j0+wKBgA1Ph+8DTRbvfXKj95KraLdrPGq6hyK0PaF044pi3u2Z1iys99f7aKM0F19akVE9KG1niR4Zit6S1Hqxx+9V6cLw/xxfEl9t9NK8QxGDqmVk9T6TnyMZvMjAi+FADn3hzbRkp1HGT/XUYe2nFuUaATaNhNuuDcuVZtAr78joA+HV";

@ -0,0 +1,22 @@
<?php
$config['trippest']["method_code"] = 15015;
$config['trippest']['charset'] = "UTF-8";
$config['trippest']['sign_type'] = "RSA2";
$config['trippest']['gatewayUrl'] = "https://openapi.alipay.com/gateway.do";
$config['trippest']['timeout_express'] = "1m";
$config['trippest']['app_id'] = "2021004129643221";
$config['trippest']['seller_id'] = "2088421651051311";
$config['trippest']['return_url'] = "";
$config['trippest']['notify_url'] = "https://callback.chinahighlights.com/webht.php/apps/pay/alipaytradeservice/alipay_notice/trippest";
$config['trippest']['app_public_key'] = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjdTn0IFw9labk5OKOy1EFpZViwFM+IUVN6bLfoSRQI/mk8/mFDgCjZhlGSzg7XxlpZ0/AJzd8Tfovi26GVCB2kJ0HhDwC40sQs3XusMzJZZIzMX2L26y3lUaWx2pbgzXaYmHB+KraTk228xfcJWs/Q1doBiDO8YnZX8KEO51l1eMxQAQtGLM95JGmRc0dqivkagbpaHp1fBW8ngPfWgnUo7J0zqG/+0TPdCXCtfNJHrCw3ChUizMxPTQ71VLzeD3E7QWH/tmnzHgz9jSkU+dMXr+JMHBzjv44ZY/KYWnYk2q3W3SwWUCOTvhYXvqK/CjwAVVWHkvcaQFpyQZOyEzuwIDAQAB";
$config['trippest']['alipay_public_key'] = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3EnlPqzxDSlA8MX2ZP4BnpW7p5CYtauOcfEWnYTA+NleUYFd63gYG3qKh2AVO2waOWHBL3U4KRWXNJI4spzxV8TRYPk0wQZ+ZnenEzWNvr0Gbcm/kdr9euBG5JkagI5u9Dz0OxGcMQiFB1IZiIz/cq7wVN+kMO52hkHxSK4j+pgjk1orXbhMp3B2v1UoK0UEPIBSDaqH10rmfYxaOc/o/4i64Zi+ND2kKPZgtk1632rh7UJ8ZrgTNU/mVWSE10CgTqFwtOgtAARstaE/3dI7jpspSevS8y2qm7Bs4VybJiMnCgAzv9EZutB+LzuoBRlj6NHNvrOeg1ErJLaBhLnsIwIDAQAB";
// PKCS1
$config['trippest']['merchant_private_key'] = "MIIEowIBAAKCAQEAjdTn0IFw9labk5OKOy1EFpZViwFM+IUVN6bLfoSRQI/mk8/mFDgCjZhlGSzg7XxlpZ0/AJzd8Tfovi26GVCB2kJ0HhDwC40sQs3XusMzJZZIzMX2L26y3lUaWx2pbgzXaYmHB+KraTk228xfcJWs/Q1doBiDO8YnZX8KEO51l1eMxQAQtGLM95JGmRc0dqivkagbpaHp1fBW8ngPfWgnUo7J0zqG/+0TPdCXCtfNJHrCw3ChUizMxPTQ71VLzeD3E7QWH/tmnzHgz9jSkU+dMXr+JMHBzjv44ZY/KYWnYk2q3W3SwWUCOTvhYXvqK/CjwAVVWHkvcaQFpyQZOyEzuwIDAQABAoIBAAliyoh42HHk31zPybkK0NOx1S1iw6Y6oGHTbuoLedVM8JRdkLtLzZdzO1WEK8prjgp8snum5eUdrxBO1F7yffVkqmyG8GvDRueQ2bLpUgwtutmaTCVtbPbbqOfYuaqnvOWmDUKPVIqdF61KBBLeRNlmNgjvNlgRT/AejRr7vNpr/mas2NYwHM3chx1zdZhHCW1faRSzgBwOctRgCmCsp0jUKXZrrR2PMdD7Ou/w/FRsHbxBp1gceExFCn8iA3CkoKu9x/5LaOYLg/BqFDALSsVzH1NHV7t2Phb3q0MOE0mO7OTgnCb1RPuOjWP31cJ4hTjqVVBN6ErACjNF1nU7EnECgYEA1l22RBU4wTxNGe1kP0UJ+3xP3Htf1liojo5RhvRL4ytYW7Eqr0BBHeKCVD2/4dpUEISAKxqCvIEIBUKXB4w9EFdMG8XsIXPyYgRbvs48948qdfXMkYBFOCQlMCCbJUwaLWlCUlCEidN898wqAOgHf02bOEKvBt5N1vfJDjAKnFMCgYEAqWDH2cheOeRkdc5umhJbfTkf6IHCxB/OyMF61qUlehNLTv3PphfW94fAEduPQXHotWlMNpmo+hYouMagP0JnUjPKgnap9+9Pq2xlIr9ihXrF1PQvvihsmOJoIdJa7zCxEqBpEKtZAcNy8qSJHhONFBIb1I/2ZL6GWe7s6ilHXfkCgYEAuGhhdWw0KLdxNE6toGgJ0Ff+c5OGvGQEjK4NoGTkK4aMOkTMjXpfChBjQYjlWqtxCcySXYIu2W6+sZe5SPrxRO90P6giHB0cdAl/y0Kr2+NDCbrrwndwFH2zqBVEoe83zbzxGtK9Ubunk5wEvkbcvDzMvLdQzj3LBJSgVx4o4pUCgYAqpXCMWBPJdcUJmGlmp5qbg+eRziIw6WVSTMzWAIzYGMWMZQGEa1o3xtlIZcTDEKAsFRAYa0YNecjVBUXRx7FmFB44DRKsl3eyzL8GKbPvscLf5H+k3F7De7YGVgWJVfQvoW3ywYHOnNxzVZQkm32ZARo6weii4wnG2Q6TwsLyWQKBgG60GnmrJIYuXHD3uoe+tnfPGMgtvtCmz1XYj/V7kFqIs8smyRjWtPn762Qm5xKJQwCLVRCgCtxFztzxlxwpLvEOcUjsvmDxt1oswJFGuK3Nx+PU26m82mArc0WphhLhx+xgMMykAOZjhlAPHGDs1fN60s2d8gv3B+HRAKTfzxeL";
// PKCS8
$config['trippest']['merchant_private_key2'] = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCN1OfQgXD2VpuTk4o7LUQWllWLAUz4hRU3pst+hJFAj+aTz+YUOAKNmGUZLODtfGWlnT8AnN3xN+i+LboZUIHaQnQeEPALjSxCzde6wzMllkjMxfYvbrLeVRpbHaluDNdpiYcH4qtpOTbbzF9wlaz9DV2gGIM7xidlfwoQ7nWXV4zFABC0Ysz3kkaZFzR2qK+RqBuloenV8FbyeA99aCdSjsnTOob/7RM90JcK180kesLDcKFSLMzE9NDvVUvN4PcTtBYf+2afMeDP2NKRT50xev4kwcHOO/jhlj8phadiTardbdLBZQI5O+Fhe+or8KPABVVYeS9xpAWnJBk7ITO7AgMBAAECggEACWLKiHjYceTfXM/JuQrQ07HVLWLDpjqgYdNu6gt51UzwlF2Qu0vNl3M7VYQrymuOCnyye6bl5R2vEE7UXvJ99WSqbIbwa8NG55DZsulSDC262ZpMJW1s9tuo59i5qqe85aYNQo9Uip0XrUoEEt5E2WY2CO82WBFP8B6NGvu82mv+ZqzY1jAczdyHHXN1mEcJbV9pFLOAHA5y1GAKYKynSNQpdmutHY8x0Ps67/D8VGwdvEGnWBx4TEUKfyIDcKSgq73H/kto5guD8GoUMAtKxXMfU0dXu3Y+FverQw4TSY7s5OCcJvVE+46NY/fVwniFOOpVUE3oSsAKM0XWdTsScQKBgQDWXbZEFTjBPE0Z7WQ/RQn7fE/ce1/WWKiOjlGG9EvjK1hbsSqvQEEd4oJUPb/h2lQQhIArGoK8gQgFQpcHjD0QV0wbxewhc/JiBFu+zjz3jyp19cyRgEU4JCUwIJslTBotaUJSUISJ03z3zCoA6Ad/TZs4Qq8G3k3W98kOMAqcUwKBgQCpYMfZyF455GR1zm6aElt9OR/ogcLEH87IwXrWpSV6E0tO/c+mF9b3h8AR249Bcei1aUw2maj6Fii4xqA/QmdSM8qCdqn370+rbGUiv2KFesXU9C++KGyY4mgh0lrvMLESoGkQq1kBw3LypIkeE40UEhvUj/ZkvoZZ7uzqKUdd+QKBgQC4aGF1bDQot3E0Tq2gaAnQV/5zk4a8ZASMrg2gZOQrhow6RMyNel8KEGNBiOVaq3EJzJJdgi7Zbr6xl7lI+vFE73Q/qCIcHRx0CX/LQqvb40MJuuvCd3AUfbOoFUSh7zfNvPEa0r1Ru6eTnAS+Rty8PMy8t1DOPcsElKBXHijilQKBgCqlcIxYE8l1xQmYaWanmpuD55HOIjDpZVJMzNYAjNgYxYxlAYRrWjfG2UhlxMMQoCwVEBhrRg15yNUFRdHHsWYUHjgNEqyXd7LMvwYps++xwt/kf6TcXsN7tgZWBYlV9C+hbfLBgc6c3HNVlCSbfZkBGjrB6KLjCcbZDpPCwvJZAoGAbrQaeaskhi5ccPe6h762d88YyC2+0KbPVdiP9XuQWoizyybJGNa0+fvrZCbnEolDAItVEKAK3EXO3PGXHCku8Q5xSOy+YPG3WizAkUa4rc3H49TbqbzaYCtzRamGEuHH7GAwzKQA5mOGUA8cYOzV83rSzZ3yC/cH4dEApN/PF4s=";

@ -35,12 +35,13 @@ class AlipayTradeService extends CI_Controller
public $timeout_express = "1m";
private $merchant_account = 'cht';
// cht
public function __construct(){
parent::__construct();
$this->load->library('alipay/AopSdk');
// real URL
$this->config->load('alipay');
$this->config->load('alipay', true);
$this->config->load('wxpay', true);
// test URL
// $this->config->load('dev_alipay');
@ -54,38 +55,49 @@ class AlipayTradeService extends CI_Controller
$this->load->helper('payment');
$this->load->model('Online_payment_account_model', 'payment_model');
$this->gateway_url = $this->config->item('gatewayUrl');
$this->appid = $this->config->item('app_id');
$this->seller_id = $this->config->item('seller_id');
$this->private_key = $this->config->item('merchant_private_key');
$this->alipay_public_key = $this->config->item('alipay_public_key');
$this->charset = $this->config->item('charset');
$this->signtype = $this->config->item('sign_type');
$this->timeout_express = $this->config->item('timeout_express');
$this->set_merchant('cht');
$this->return_url = $this->config->item('return_url');
$this->notify_url = $this->config->item('notify_url');
header('Access-Control-Allow-Origin:*');
header('Access-Control-Allow-Methods:POST, GET');
header('Access-Control-Max-Age:0');
header('Access-Control-Allow-Headers:x-requested-with, Content-Type');
}
if(empty($this->appid)||trim($this->appid)==""){
log_message('error','Alipay ERROR appid should not be NULL!');
private function set_merchant($account = 'cht')
{
$this->merchant_account = $account;
$this->ali_site_config = $this->config->item(strtolower($account), 'alipay');
$this->gateway_url = $this->ali_site_config['gatewayUrl'];
$this->appid = $this->ali_site_config['app_id'];
$this->seller_id = $this->ali_site_config['seller_id'];
$this->private_key = $this->ali_site_config['merchant_private_key'];
$this->alipay_public_key = $this->ali_site_config['alipay_public_key'];
$this->charset = $this->ali_site_config['charset'];
$this->signtype = $this->ali_site_config['sign_type'];
$this->timeout_express = $this->ali_site_config['timeout_express'];
$this->return_url = $this->ali_site_config['return_url'];
$this->notify_url = $this->ali_site_config['notify_url'];
if (empty($this->appid) || trim($this->appid) == "") {
log_message('error', 'Alipay ERROR appid should not be NULL!');
}
if(empty($this->private_key)||trim($this->private_key)==""){
log_message('error','Alipay ERROR private_key should not be NULL!');
if (empty($this->private_key) || trim($this->private_key) == "") {
log_message('error', 'Alipay ERROR private_key should not be NULL!');
}
if(empty($this->alipay_public_key)||trim($this->alipay_public_key)==""){
log_message('error','Alipay ERROR alipay_public_key should not be NULL!');
if (empty($this->alipay_public_key) || trim($this->alipay_public_key) == "") {
log_message('error', 'Alipay ERROR alipay_public_key should not be NULL!');
}
if(empty($this->charset)||trim($this->charset)==""){
log_message('error','Alipay ERROR charset should not be NULL!');
if (empty($this->charset) || trim($this->charset) == "") {
log_message('error', 'Alipay ERROR charset should not be NULL!');
}
if(empty($this->gateway_url)||trim($this->gateway_url)==""){
log_message('error','Alipay ERROR gateway_url should not be NULL!');
if (empty($this->gateway_url) || trim($this->gateway_url) == "") {
log_message('error', 'Alipay ERROR gateway_url should not be NULL!');
}
header('Access-Control-Allow-Origin:*');
header('Access-Control-Allow-Methods:POST, GET');
header('Access-Control-Max-Age:0');
header('Access-Control-Allow-Headers:x-requested-with, Content-Type');
}
public function index()
{
$this->note_list();
@ -752,6 +764,7 @@ class AlipayTradeService extends CI_Controller
$response = $this->aopclientRequestExecute ($request);
$response = $response->alipay_trade_query_response;
// log_message('error','test:rrr2 ' . __CLASS__ . PHP_EOL . var_export($response, 1));
return $response;
}
@ -794,6 +807,17 @@ class AlipayTradeService extends CI_Controller
return $this->output->set_content_type('application/json')->set_output(json_encode($response));
}
public function get_billfile($date=NULL)
{
ignore_user_abort(true);
$all_account = array_keys($this->config->item('alipay'));
foreach ($all_account as $key => $account) {
$this->set_merchant($account);
$this->download_billfile($date);
sleep(2);
}
return false;
}
/*!
* 对账单
* 流程:
@ -805,7 +829,7 @@ class AlipayTradeService extends CI_Controller
* @date 2017-10-10
* @param [type] $date 按天yyyy-MM-dd;按月yyyy-MM
*/
public function get_billfile($date=NULL)
public function download_billfile($date=NULL)
{
ignore_user_abort(true);
$request = new AlipayDataDataserviceBillDownloadurlQueryRequest();
@ -822,8 +846,8 @@ class AlipayTradeService extends CI_Controller
}
set_time_limit(0);
$file = file_get_contents($response->$responseNode->bill_download_url);
$file_name = FCPATH.'download_statement\settlement_files\alipay\\' . $date . ".zip";
$target = FCPATH.'download_statement\settlement_files\alipay\\' . $date ;
$file_name = FCPATH.'download_statement\settlement_files\alipay\\' . $this->merchant_account . $date . ".zip";
$target = FCPATH.'download_statement\settlement_files\alipay\\' . $this->merchant_account . $date ;
file_put_contents($file_name, $file);
$biz_detail_table = array();
$biz_data_title = $this->bill_data_title();
@ -855,6 +879,7 @@ class AlipayTradeService extends CI_Controller
}
$row_arr[$title] = trim($row[$key]);
}
$row_arr['app_id'] = $this->appid;
$biz_detail_table[] = $row_arr;
}
@ -869,7 +894,7 @@ class AlipayTradeService extends CI_Controller
foreach ($biz_detail_table as $key => $row) {
$total_amount = 0;$trade_type='';$trade_no = '';$has_charge=null;
if (isset($row['finance_id'])) {
if ($row['biz_type'] !== '其它') {
if ($row['biz_type'] !== '其它' && $row['biz_type'] !== '在线支付') {
continue;
}
$total_amount = floatval($row['income'])>0 ? $row['income'] : $row['expenditure'];
@ -1000,6 +1025,7 @@ class AlipayTradeService extends CI_Controller
* $size生成二维码的尺寸宽度和高度的值
* $lev可选参数纠错等级
* $margin生成的二维码离边框的距离
* @example http://chart.apis.google.com/chart?chs=200x200&cht=qr&chld=L|0&chl=content
*/
function create_erweima($content, $size = '200', $lev = 'L', $margin= '0') {
$content = urlencode($content);
@ -1019,8 +1045,14 @@ class AlipayTradeService extends CI_Controller
if (!empty($data['keywords'])) {
$data['notelist'] = $this->Alipay_note_model->search_key($data['keywords']);
/** 手动查询通过收钱码的收款, 必须输入交易号 */
// if (true) { // debug: 0
if (empty($data['notelist'])) {
$query_pay = $this->query_pay($data["keywords"]);
if (empty($query_pay)) {
$this->set_merchant('trippest');
$query_pay = $this->query_pay($data["keywords"]);
}
$query_pay->app_id = $this->appid;
if ( ! empty($query_pay) && strval($query_pay->code)==="10000"
&& in_array(strval($query_pay->trade_status), array("TRADE_SUCCESS", "TRADE_FINISHED")) ) {
$pay_type = $query_pay->total_amount>0 ? "pay" : "refund";

@ -1307,6 +1307,19 @@ class Index extends CI_Controller {
$this->load->view('n-footer');
}
/**
* 按账户查找
* @author LYT
*/
public function note_account_list($status) {
$this->permission->is_admin(true);
$data = array();
$data['notelist'] = $this->Note_model->noteaccount(200, $status);
$this->load->view('n-header', $data);
$this->load->view('note_list');
$this->load->view('n-footer');
}
//获取note详情修改各项数据
public function note_modal($pn_txn_id, $pn_id=false, $pn_invoice=false) {
$this->permission->is_admin(true);

@ -66,6 +66,15 @@ class Note_model extends CI_Model {
return $this->get_list();
}
public function noteaccount($topnum = 2, $account = '') {
$this->init();
$this->topnum = $topnum;
$x_str = strtolower($account);
$sql4 = " AND (pn_memo like '%\"business\":\"$x_str\"%') ";
$this->pn_send = $sql4;
return $this->get_list();
}
public function search_date($date) {
$this->init();
$search_sql = " AND (pn.pn_datetime BETWEEN '$date 00:00:00' AND '$date 23:59:59' OR isnull(pn_send,'') in ('sendfail','unsend','')) ";
@ -155,7 +164,27 @@ class Note_model extends CI_Model {
return FALSE;
}
} else {
return $query->result();
$result = $query->result();
array_walk($result, 'note_model::set_fundsource');
return $result;
}
}
private $code_fundsource = array(
"pay@trippest.com" => "Trippest", // business":"pay@trippest.com"
"pays@chinahighlights.com" => "", // "CHT",
"paypal@chinahighlights.com" => "2", // "CHT",
"0" => "unknown",
);
public function set_fundsource(&$ele)
{
$ele->fundsource = "";
$raw = json_decode($ele->pn_memo);
$business = isset($raw->business) ? $raw->business : '0';
if ($this->code_fundsource[$business]) {
$ele->fundsource = $this->code_fundsource[$business];
}
if ( ! isset($raw->ipn_track_id) && (isset($raw->id) && strpos($raw->id, "WH-") === 0)) {
$ele->fundsource = '';
}
}

@ -49,6 +49,13 @@
.trigger_export_btn{position: absolute;top: 0;left: 17%;}
.modal-dialog{max-width: 1024px;}
</style>
<style>
.brand_text {color: #fff; padding: 2px 3px; border-radius: 4px;font-style: italic;}
.webhooks-color{background-color: dimgrey; }
.unknown-color{background-color: dimgray; }
.cht-color {background-color: #A31022;}
.trippest-color {background-color: #E83201;}
</style>
<!-- Button trigger modal -->
<button type="button" class="btn btn-primary trigger_export_btn hidden-xs" data-toggle="modal" data-target="#exampleModal">
导出收款记录 &gt;
@ -210,6 +217,9 @@ echo "<option value=\"$vf->TEL_SN@" . strstr($vf->TEL_transactionDate, " ", true
<li class="col-sm-1 nopadding-L" style="overflow:hidden;word-break: break-all;height: 25px;"><?php echo ($key + 1); ?></li>
<li class="col-sm-7 nopadding-L" style="overflow:hidden;word-break: break-all;height: 25px;">
<span class="brand_text <?php echo strtolower(str_replace(" ","",$item->fundsource))."-color"; ?>"><?php echo $item->fundsource; ?></span>
<a class="seen" target="_blank" href="<?php echo site_url('apps/paypal/index/detail_ht/' . $item->pn_txn_id); ?>">
<?php echo htmlentities($item->pn_invoice) . ' / ' . $item->pn_mc_gross . $item->pn_mc_currency . ' / ' . $item->pn_payer; ?>
</a></li>

Loading…
Cancel
Save