123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017 |
- <?php defined('BASEPATH') OR exit('No direct script access allowed');
- class Aa extends Start_Controller {
- public function __construct(){
- parent::__construct();
- $this->load->_model('Model_shop','shop');
- $this->load->_model('Model_fullorder','fullorder');
- $this->load->_model('Model_fullordertt','fullordertt');
- $this->load->_model('Model_fullordersmt','fullordersmt');
- $this->load->_model('Model_fullorderxw','fullorderxw');
- $this->load->_model('Model_fullorder_2020','fullorder2020');
- $this->load->_model('Model_fullordersmt_2020','fullordersmt2020');
- $this->load->_model('Model_customersmt','customersmt');
- $this->load->_model('Model_country','country');
- $this->load->_model('Model_hl','hl');
- $this->load->_model('Model_is','is');
- $this->load->_model('Model_kdniao','kdniao');
- $this->load->_model('Model_typeclass','typeclass');
- $this->load->_model('Model_warehouse','warehouse');
- $this->load->_model('Model_fullorderexcel','fullorderexcel');
- $this->load->_model('Model_dhl','dhl');
- $this->load->_model('Model_usps','usps');
- $this->load->_model('Model_dhltest','dhltest');
- $this->load->_model('Model_customer','customer');
- $this->load->_model('Model_express','express');
- $this->load->_model('Model_notice','notice');
- $this->load->_model('Model_whlabel','whlabel');
- $this->load->_model('Model_productdescribe','productdescribe');
- $this->load->_model('Model_ljg','ljg');
- $this->load->_model('Model_commodityread','commodityread');
- $this->load->_model('Model_service','service');
- $this->load->_model('Model_fedex','fedex');
- $this->load->_model('Model_commodity','commodity');
- $this->load->_model('Model_fullordersmtorder','fullordersmtorder');
- $this->load->_model('Model_ali','ali');
- $this->load->_model('Model_fullordersmthb','fullordersmthb');
- $this->load->_model('Model_fullordersmtbf','fullordersmtbf');
- $this->load->_model('Model_taxzhengzhou','taxzhengzhou');
- $this->load->_model('Model_taxshanghai','taxshanghai');
- $this->load->_model('Model_excel','excel');
- $this->load->_model('Model_ups','ups');
- $this->load->_model('Model_dpd','dpd');
- $this->load->_model('Model_dpdold','dpdold');
- $this->load->_model('Model_dpd_IOSS','dpd_IOSS');
- $this->load->_model('Model_dpdxw','dpdxw');
- $this->load->_model('Model_cne','cne');
- $this->load->_model('Model_outbound','outbound');
- $this->load->_model('Model_api','api');
- $this->load->_model('Model_dhlhz','dhlhz');
- $this->load->_model('Model_apismt','apismt');
- $this->load->_model('Model_specialstock','specialstock');
- $this->load->_model('Model_systemwigsout','systemwigsout');
- $this->load->_model('Model_purchaseorder','purchaseorder');
- $this->load->_model('Model_returns','returns');
- $this->load->_model('Model_whlabellabel','whlabellabel');
- $this->load->_model('Model_whlabelbarcode','whlabelbarcode');
- $this->load->_model('Model_tjadd','tjadd');
- $this->load->_model('Model_stafflist','stafflist');
- $this->load->_model('Model_paypal','paypal');
- $this->load->_model('Model_warehousefactory','warehousefactory');
- $this->load->_model('Model_commodityread_del','commodityreaddel');
- $this->load->_model('Model_als','als');
- $this->load->_model('Model_allocation','allocation');
- $this->load->_model('Model_17track','17track');
- $this->load->_model('Model_hualei','hualei');
- $this->load->_model('Model_ck','ck');
- $this->load->_model('Model_colour','colour');
- $this->load->_model('Model_color','color');
- $this->load->_model('Model_emaildata','emaildata');
- $this->load->_model('Model_wigprint','wigprint');
- $this->load->_model('Model_weight','weight');
- $this->load->_model('Model_whlabeltransport','whlabeltransport');
- $this->load->_model('Model_pay','pay');
- $this->load->_model('Model_orderurl','orderurl');
- $this->load->_model('Model_classid','classid');
- $this->load->_model('Model_apiyy','apiyy');
- $this->load->_model('Model_purchase','purchase');
- $this->load->_model('Model_apitt','apitt');
- $this->load->_model('Model_whlabel_bh','whlabel_bh');
- $this->load->_model('Model_whlabel_fc','whlabel_fc');
- $this->load->_model('Model_systemtransfer','systemtransfer');
- $this->load->_model('Model_systemtransfer_del','systemtransfer_del');
- $this->load->_model('Model_power','power');
- $this->load->_model('Model_fullorderexcel','fullorderexcel');
- $this->load->_model('Model_fullorderexcelclassid','fullorderexcelclassid');
- $this->load->_model('Model_awlgx','awlgx');
- $this->load->_model('Model_shopsku','shopsku');
- }
- //定义方法的调用规则 获取URI第二段值
- public function _remap($arg,$arg_array)
- {
- if($arg == 'a')
- {
- $this->_a($arg_array);
- }
- else if($arg == 'ac')
- {
- $this->_ac($arg_array);
- }
- else if($arg == 'x')
- {
- $this->_x($arg_array);
- }
- else if($arg == 'x2')
- {
- $this->_x2($arg_array);
- }
- else if($arg == 'x3')
- {
- $this->_x3($arg_array);
- }
- else if($arg == 'xx')
- {
- $this->_xx($arg_array);
- }
- else if($arg == 'Token')
- {
- $this->_sku($arg_array);
- }
- }
-
- public function _a()
- {
- // 您的邮箱地址和密码
- $username = 'service@asteriahair.com';
- $password = '1026@asas.$1026';
- // 阿里云邮箱的 IMAP 服务器地址和端口号
- $hostname = '{imap.mxhichina.com:993/imap/ssl}INBOX';
- // 尝试连接到阿里云邮箱的 IMAP 服务器
- $inbox = imap_open($hostname, $username, $password);
- // 获取邮箱中的邮件数量
- $total_emails = imap_num_msg($inbox);
- $data = array();
- // 读取前10封邮件的内容
- for ($i = 1; $i <= min($total_emails, 2); $i++)
- {
- // 获取邮件头信息
- $header = imap_header($inbox, $i);
-
- // 获取邮件内容
- $body = imap_fetchbody($inbox, $i, 1); // 参数2表示获取邮件的第1个部分,通常为邮件正文
-
- // 获取邮件编码类型
- $encoding = isset($header->encoding) ? $header->encoding : null;
-
- // 如果邮件内容是base64编码的,则解码
- if ($encoding == 3)
- {
- $body = base64_decode($body);
- }
- $uid = imap_uid($inbox, $i);
- $data[] = array(
- "id"=>$header->from,
- "UID:"=>$uid,
- "标题:"=>$header->subject,
- "发送人:"=>$header->fromaddress,
- "时间:"=>$header->MailDate,
- "内容:"=>$body); // nl2br() 函数用于将换行符转换为 HTML 的换行标签
- }
- // 关闭连接
- imap_close($inbox);
-
- echo "<pre>";
- print_r($data);
- exit;
- $shop = $this->shop->read(35);
- $url = 'https://open-api.tiktokglobalshop.com';
- $link = '/authorization/202309/shops';
- $time = time();
- $queryParams = array();
- //$queryParams['access_token'] = $shop['token'];
- $queryParams['app_key'] = $shop['app_key'];
- //$queryParams['shop_id'] = $shop['codeid'];
- $queryParams['timestamp'] = $time;
- //$queryParams['version'] = '202309';
- $link .= '?' . http_build_query($queryParams);
- $sign = $this->apitt->sign($link,$shop['token'],$shop['app_secret']);
- $url .= $link.'&sign='.$sign;
- $headers = array('x-tts-access-token:'.$shop['token']);
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
- curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
- $res = curl_exec($ch);
- curl_close($ch);
- $res = json_decode($res,true);
- echo "<pre>";
- print_r($res);
- exit;
- $d = $this->fullordertt->get_number("TT-WK-40402-169");
- $shop = $this->shop->read($d['shop']);
- $url = 'https://open-api.tiktokglobalshop.com';
- $link = '/customer_service/202309/conversations';
- $time = time();
- $post['buyer_user_id'] = $d['user_id'];
- $queryParams['shop_cipher'] =$shop['shop_cipher'];
- //$queryParams['shop_id'] =$shop['codeid'];
- $queryParams['app_key'] =$shop['app_key'];
- $queryParams['timestamp'] =$time;
- $link .= '?'.http_build_query($queryParams);
- $sign = $this->sign($link,$shop['app_secret'],$post);
- $url .= $link.'&sign='.$sign;
- $headers = array('Content-Type: application/json','x-tts-access-token:'.$shop['token']);
- $res = $this->su_curl($post,$url,$headers);
- $res = json_decode($res,true);
- echo "<pre>";
- print_r($res);
- exit;
-
- $data = '{"url":"http:\/\/a33.wepolicy.cn\/api\/wlfs?v=158","data":{"where":{"shop":"3","expressstate":"4","wlcontent":"AP-\u5373\u5c06\u6d3e\u9001\u3001\u63d0\u9192\u7b7e\u6536\u6a21\u677f"},"var":{"id":"158","shop":"3","title":"AP-\u5373\u5c06\u6d3e\u9001\u3001\u63d0\u9192\u7b7e\u6536\u6a21\u677f","type":"2","message":"1","email":"3","ordertatus":"0","logisticstatus":"4","marketing":"0","carried":"0","repeattime":"0","sending":"0","timeinterval":"0","ktime":"1713888000","jtime":"1751212800","state":"1","statetime":"1713951981","emailtitle":"Your Alipearl hair\u00a0package will\u00a0be\u00a0delivered\u00a0ASAP","tab":"0","thq":"","thh":"","content":"Hey dear $firstName,Sorry for bothering you.<\/span><\/p>Your order has been shipped out by $expressCompany , the tracking number is $trackingNumber.<\/span><\/p>According to the tracking information, it has arrived in your country.Normally, the carrier company will arrange the final delivery for you in about 1 day. Please note that package delivery.<\/span><\/p>Note: It is better to schedule the delivery time and sign for the package so that you can get it safe and sound.<\/span><\/span><\/p>Have a good day. \u2765<\/span><\/p>","js":"","express":""}}}';
- $data = json_decode($data,true);
- $data = $data['data'];
- $webhookregister = 0;$cs = array();
- $where = $data['where'];
- $var = $data['var'];
- $wlfs = array();
- $shopid = $where['shop'];
- @$this->allocation->insert(array('title'=>date('Y-m-d',time()).'-'.$shopid));
- $where = "shop = '".$where['shop']."' and waybill != '' and library = '2' and expressstate <= '".$where['expressstate']."' and librarytime > '".(time()-22*24*3600)."' and wlcontent not like '%".$where['wlcontent']."%'";//正式发送的时候开启这个"'
- //$where = "shop = '".$where['shop']."' and waybill != '' and library = '2' and express = '3' and librarytime > '1636300800' and wlcontent not like '%".$where['wlcontent']."%'";//正式发送的时候开启这个"'
- $data = $this->fullorder->find_all("number = 'ALIP-40410-155'");
- $csck = array();
- foreach ($data as $k=>$v)
- {
- $vexpress = $v['express'];
- $shop = $this->shop->read($v['shop']);
- $express = $this->express->read($v['express']);
- $service = $this->service->read($express['service']);
- $country = $this->country->read($v['country']);
- $v['country'] = $country['ename'];
- $express['servicename'] =$service['title'];//增加快递名称
- $v['cxcode'] = strtolower($express['cxcode']);//增加快递服务商码
- if($v['expressstate'] == $var['logisticstatus'] && $v['wlyc'] == '0' && $v['wltype'] != '1' && $v['source'] != '1')//获取快递状态等于模板状态、订单状态等于模板状态、出库时间大于-、未加入物流异常、允许发送邮件状态、非线下单
- {
- if($v['shop'] < '7')// && $v['shouldmoney'] > 100)
- {
- $wlfs[] = array('v'=>$v,'id'=>$var['id']);
- //$go = $this->_sdfs($v,$var['id']);//更新顺带发送
- }
- continue;
- }
- if(($express['cxcode'] == '' && $v['exstateerror'] == '') || ($express['cxcode'] == '' && $v['exstateerror'] != ''))
- {
- continue;
- }
- else if($express['cxcode'] == 'fedex' || $express['cxcode'] == 'usps' || $express['cxcode'] == 'dhl')// || $express['cxcode'] == 'cne' || $express['cxcode'] == 'dpex' || $express['cxcode'] == 'dpd'
- {
- /**
- if($express['cxcode'] == 'dpex' || $express['cxcode'] == 'dpd')
- {
- $express['cxcode'] = 'cne';
- }
- **/
- $logistics = $express['cxcode'];
- }
- else if(($express['cxcode'] == 'ups' || $express['cxcode'] == '17track') && $v['webhookregister'] == 1)
- {
- continue;
- }
- else if(($express['cxcode'] == 'ups' || $express['cxcode'] == '17track') && $v['webhookregister'] < 1)//使用webhook注册模式 || $express['cxcode'] == '17track'
- {
- $logistics = $express['cxcode'];
- $webhookregister = 1;
- }
- else
- {
- //暂时不启用第三方,这里直接跳出
- $this->fullorder->save(array('expressstate'=>'99'),$v['id']);
- continue;
- //$logistics = 'apismt';
- //$v['express'] = strtolower($express['cxcode']);//替换为快递服务商码
- }
- $v['servicename'] =$service['title'];//增加快递名称
- $v['url'] = $express['url'];//增加快递链接
- @$fs = $this->$logistics->get_logistics($v);
- $csck[] = array($v['number'],$fs['f']);
- if(!isset($fs['f']))
- {
- $fs = $this->$logistics->get_logistics($v);
- if(!isset($fs['f']))
- {
- continue;
- }
- if($fs['f'] == '1')
- {
- $v['express'] = $vexpress;
- if($fs['exstate'] > $v['expressstate'] || isset($fs['webhookregister']))
- {
- $this->fullorder->save(array('expressstate'=>$fs['exstate'],'excontent'=>$fs['data'],'webhookregister'=>$webhookregister),$v['id']);
- }
- if($fs['exstate'] == $var['logisticstatus'] && $v['wlyc'] == '0' && $v['wltype'] != '1' && $v['source'] != '1')//获取快递状态等于模板状态、订单状态等于模板状态、出库时间大于-、未加入物流异常、允许发送邮件状态、非线下单
- {
- if($v['shop'] < '7')// && $v['shouldmoney'] > 100)
- {
- $wlfs[] = array('v'=>$v,'id'=>$var['id']);
- //$go = $this->_sdfs($v,$var['id']);//更新顺带发送
- }
- }
- }
- /**
- if($logistics == 'apismt')//第三方未购买,第三方查询直接进入无法查询状态
- {
- $this->fullorder->save(array('expressstate'=>'99'),$v['id']);
- }
- **/
- }
- else
- {
- if($fs['f'] == '1')
- {
- $v['express'] = $vexpress;
- if($fs['exstate'] > $v['expressstate'])
- {
- $this->fullorder->save(array('expressstate'=>$fs['exstate'],'excontent'=>$fs['data'],'webhookregister'=>$webhookregister),$v['id']);
- }
- if($fs['exstate'] == $var['logisticstatus'] && $v['wlyc'] == '0' && $v['wltype'] != '1' && $v['source'] != '1')//获取快递状态等于模板状态、订单状态等于模板状态、出库时间大于-、未加入物流异常、允许发送邮件状态、非线下单
- {
- if($v['shop'] < '7')// && $v['shouldmoney'] > 100)
- {
- $wlfs[] = array('v'=>$v,'id'=>$var['id']);
- //$go = $this->_sdfs($v,$var['id']);//更新顺带发送
- }
- }
- }
- }
- }
-
- @$this->allocation->insert(array('title'=>$shopid.'-'.json_encode($csck)));
- if($wlfs)
- {
- foreach ($wlfs as $k=>$v)
- {
- $t1 = microtime(true);
- $this->_sdfs($v['v'],$v['id']);
- $t2 = microtime(true);
- $t3 = (40-($t2-$t1) < 1)?1:round(40-($t2-$t1));
- sleep($t3);
- echo 1;
- }
- }
- }
-
-
-
- public function _xx($arg_array)
- {
- $post = $this->input->post(NULL, TRUE);
- $api = $this->input->get('api',true);
- $dshop = $this->input->get('dshop',true);
- $gethl = array();
- /* 匹配加入 */
- $dictionaries = $this->typeclass->find_all('spare!= "" and classid != 1 and classid != 2 and classid != 3 and classid != 4 and classid != 5 and classid != 11 and classid != 16 and classid != 17 and classid != 20 and classid != 21 and classid != 23 and classid != 24 and classid != 29 and classid != 30 and classid != 31 and classid != 32 and classid != 36');
- // and (classid=13 or classid=22 or classid=8 or classid=15 or classid=27 or classid=25 or classid=26 or classid=18 or classid=14 or classid=9 or classid=12 or classid=10 or classid=6 or classid=100 or classid=999)
- $dtc = array();
- foreach ($dictionaries as $v)
- {
- if(stripos($v['spare'],'|') !== false)//如果有多个值
- {
- $v['spare'] = explode('|',$v['spare']);
- foreach ($v['spare'] as $k=>$vs)
- {
- if(stripos($v['zh'],'|') !== false)
- {
- $vzh = explode('|',$v['zh']);
- $dtc[strtolower($vs)] = array('classid'=>$v['classid'],'zh'=>$vzh[$k],'id'=>$v['id'],'jm'=>$v['jm'],'spare'=>$vs);
- }
- else
- {
- $dtc[strtolower($vs)] = array('classid'=>$v['classid'],'zh'=>$v['zh'],'id'=>$v['id'],'jm'=>$v['jm'],'spare'=>$vs);
- }
- }
- }
- else
- {
- $dtc[strtolower($v['spare'])] = array('classid'=>$v['classid'],'zh'=>$v['zh'],'id'=>$v['id'],'jm'=>$v['jm'],'spare'=>$v['spare']);
- }
-
- }
- $dictionaries2 = $this->typeclass->find_all();
- foreach ($dictionaries2 as $v)
- {
- $dtctitle[$v['id']] = $v['title'];
- }
- /* 匹配结束 */
- /* 价格加入 */
- $money = array();
- /**
- $productdescribe = $this->productdescribe->find_all('1=1','number,purchase,cost,salesprice,title');
- foreach ($productdescribe as $v)
- {
- $money[$v['number']] = array('purchase'=>$v['purchase'],'cost'=>$v['cost'],'salesprice'=>$v['salesprice'],'title'=>$v['title']);
- }
- **/
- /* 价格加入 */
- /* 匹配ID加入 */
- $int = array();
- $intdata = $this->typeclass->find_all('classid=14','id,spare');
- foreach ($intdata as $v)
- {
- $v['spare'] = explode('|',$v['spare']);
- $int[$v['id']] = $v['spare'][0];
- }
- /* 匹配ID结束 */
- /* 国家加入键值-k */
- $cuy = array();
- $cuydata = $this->country->find_all('1=1','lb,id');
- foreach ($cuydata as $v)
- {
- $cuy[$v['lb']] = $v['id'];//获取到国家ID
- }
- /* 国家加入键值-j */
- $typeclass = array();
- $tdata = $this->typeclass->find_all('classid=30','id,title');
- foreach ($tdata as $v)
- {
- $typeclass[$v['title']] = $v['id'];
- }
- $ex = array();
- $express = $this->express->find_all('1=1','id,title');
- foreach ($express as $v)
- {
- $ex[$v['title']] = array('id'=>$v['id']);
- }
- /* 币种加入键值-j */
- $zjsku = array();
- $shopsku = $this->shopsku->find_all();
- foreach ($shopsku as $val)
- {
- $ss = explode(',',trim($val['shop'],','));
- foreach ($ss as $v)
- {
- if(isset($zjsku[$v]))
- {
- $zjsku[$v] .= ','.trim($val['sku'],',');
- }
- else
- {
- $zjsku[$v] = trim($val['sku'],',');
- }
- }
- }
- /* 支付方式-k */
- $pay = array();$sd = array();
- $tdata = $this->typeclass->find_all('classid=4','id,spare');
- foreach ($tdata as $v)
- {
- $paytype = $this->pay->get_typeclass($v['id']);
- if(isset($paytype['estimaterate']))
- {
- $estimaterate = $paytype['estimaterate'];
- }
- else
- {
- $estimaterate = 0;
- }
- if(stripos($v['spare'],'|') !== false)//如果有多个值
- {
- $v['spare'] = explode('|',$v['spare']);
- foreach ($v['spare'] as $k=>$vs)
- {
- $pay[$vs] = array('id'=>$v['id'],'estimaterate'=>$estimaterate);
- }
- }
- else
- {
- $pay[$v['spare']] = array('id'=>$v['id'],'estimaterate'=>$estimaterate);
- }
- }
- $time = time();
- $value = $this->shop->read($arg_array[0]);//TT店铺
-
- $setting = $this->setting->get_settings();
- $sjc = 15*3600+$setting['sctime'];//时间差
- $num = $this->fullordertt->find_count('gtime = "'.date('Ymd',$time).'" and shop = "'.$value['id'].'"');
- //$this->db->trans_begin();
- $res = $this->get_list($value,$time-5*24*3600,$time,'AWAITING_SHIPMENT',$cuy,$num,$dtc,$money,$int,$dtctitle,$pay,$typeclass,$ex,$sjc,$zjsku);//装运 AWAITING_SHIPMENT(111) ;-等待收集 AWAITING_COLLECTION (112);在途 IN_TRANSIT (121);-已交付 DELIVERED (122);- DELIVERED COMPLETED
- echo "<pre>";
- print_r($res);
- }
-
-
-
- public function get_list($shop,$from,$to,$order_status,$cuy,$num,$dtc,$money,$int,$dtctitle,$pay,$typeclass,$ex,$sjc,$zjsku)//获取订单列表
- {
- $url = 'https://open-api.tiktokglobalshop.com';
- $link = '/order/202309/orders/search';
- $time = time();
- $post['create_time_ge'] = $from;
- $post['create_time_lt'] = $to;
- $post['order_status'] = $order_status;
- $queryParams['page_size'] = 100;
- $queryParams['sort_order'] = 'ASC';
- $queryParams['sort_field'] = 'create_time';
- $queryParams['shop_cipher'] =$shop['shop_cipher'];
- $queryParams['shop_id'] =$shop['codeid'];
- $queryParams['app_key'] =$shop['app_key'];
- $queryParams['shop_cipher'] =$shop['shop_cipher'];
- $queryParams['timestamp'] =$time;
- $link .= '?'.http_build_query($queryParams);
- $sign = $this->sign($link,$shop['app_secret'],$post);
- $url .= $link.'&sign='.$sign;
- $headers = array('Content-Type: application/json','x-tts-access-token:'.$shop['token']);
- $res = $this->su_curl($post,$url,$headers);
- $res = json_decode($res,true);
- $list = array();$page_token = '';$arr = array();
- if(isset($res['data']['orders']))
- {
- if($res['data']['total_count'] > 100)
- {
- $n = ceil($res['data']['total_count']/100);
- for($i=0;$i<$n;$i++)
- {
- $net_date = $this->get_next_list($shop,$from,$to,$order_status,$page_token);
- $page_token = $net_date[1];
- foreach ($net_date['0'] as $val)
- {
-
- $list[] = $val['id'];
-
- }
- }
- }
- else
- {
- foreach ($res['data']['orders'] as $val)
- {
-
- $list[] = $val['id'];
-
- }
- }
- $cs = array();
- if(count($list) > 50)
- {
- $n = ceil(count($list)/50);$x = 0;
- for($i=0;$i<$n;$i++)
- {
- $k = ($i<1)?0:$i*50;
- $data = array_slice($list,$k,50);
- $d = $this->get_data($data,$shop);
- $cs[] = $d;
- if(isset($d['data']))
- {
- foreach ($d['data']['orders'] as $val)
- {
- $arr[$x] = $val;
- $x++;
- }
- }
- }
- }
- else
- {
- $d = $this->get_data($list,$shop);
- if(isset($d['data']))
- {
- foreach ($d['data']['orders'] as $val)
- {
- $arr[] = $val;
- }
- }
- }
- }
- $read = array();
- $gnum = array();
- foreach ($arr as $val)
- {
- $create_time = substr($val['create_time'],0,10)-$sjc;
- if(isset($gnum[date('ymd',$create_time)]))
- {
- $gnum[date('ymd',$create_time)] += 1;
- }
- else
- {
- $num = $this->fullordertt->find_count('gtime = "'.date('Ymd',$create_time).'" and shop = "'.$shop['id'].'"');
- $gnum[date('ymd',$create_time)] = $num+1;
- }
- $read[] = $val;
- }
- return array($read,$list);
- }
-
- public function get_next_list($shop,$from,$to,$order_status,$page_token='')//获取订单列表
- {
- $url = 'https://open-api.tiktokglobalshop.com';
- $link = '/order/202309/orders/search';
- $time = time();
- $post['create_time_ge'] = $from;
- $post['create_time_lt'] = $to;
- $post['order_status'] = $order_status;
- $queryParams['page_size'] = 100;
- $queryParams['sort_order'] = 'ASC';
- $queryParams['sort_field'] = 'create_time';
- $queryParams['shop_cipher'] =$shop['shop_cipher'];
- $queryParams['shop_id'] =$shop['codeid'];
- $queryParams['app_key'] =$shop['app_key'];
- $queryParams['shop_cipher'] =$shop['shop_cipher'];
- $queryParams['timestamp'] =$time;
- if($page_token)
- {
- $queryParams['page_token'] = $page_token;
- }
- $link .= '?'.http_build_query($queryParams);
- $sign = $this->sign($link,$shop['app_secret'],$post);
- $url .= $link.'&sign='.$sign;
- $headers = array('Content-Type: application/json','x-tts-access-token:'.$shop['token']);
- $res = $this->su_curl($post,$url,$headers);
- $res = json_decode($res,true);
- if(isset($res['data']['orders']))
- {
- return array($res['data']['orders'],$res['data']['next_page_token']);
- }
- }
-
- public function get_data($list,$shop)
- {
- $url = 'https://open-api.tiktokglobalshop.com';
- $link = '/order/202309/orders';
- $time = time();
- $ids = implode(",",$list);
- $link .= '?shop_cipher='.$shop['shop_cipher'].'&app_key='.$shop['app_key'].'×tamp='.$time.'&ids='.$ids;
- $sign = $this->sign($link,$shop['app_secret'],'');
- $url .= $link.'&sign='.$sign;
- $headers = array('Content-Type: application/json','x-tts-access-token:'.$shop['token']);
- $res = $this->su_curl('',$url,$headers,$date_type='json',$timeout=300,$httptype="GET");
- $res = json_decode($res,true);
- return $res;
- }
-
- public function get_read($data,$time,$shop,$cuy,$num,$dtc,$money,$int,$dtctitle,$pay,$typeclass,$ex,$sjc,$zjsku)
- {
- $purl = 'https://shop.tiktok.com/view/product/';
- $link = '';$product = '';$sku = '';$quantity = '';
- $lpsq = array();
- foreach ($data['line_items'] as $v)
- {
- if(isset($lpsq[$v['seller_sku']]))
- {
- $lpsq[$v['seller_sku']]['quantity'] += 1;
- }
- else
- {
- $lpsq[$v['seller_sku']] = array('link'=>$purl.$v['product_id'],'product'=>$v['product_name'],'sku'=>$v['seller_sku'],'quantity'=>1);
- }
- }
- foreach ($lpsq as $v)
- {
- $link .= $v['link'].',';
- $product .= $v['product'].',';
- $sku .= $v['sku'].',';
- $quantity .= $v['quantity'].';';
- }
- if($data['status'] == 'DELIVERED' || $data['status'] == 'IN_TRANSIT' || $data['status'] == 'COMPLETED')
- {
- $s = 216;
- }
- else if($data['status'] == 'AWAITING_SHIPMENT')
- {
- $s = 207;
- }
- else if($data['status'] == 'CANCELLED')
- {
- $s = 217;
- }
- else
- {
- $s = 283;
- }
- if(isset($zjsku[$shop['id']]))//判断是否找到店铺SKU
- {
- $sku = rtrim($sku,',').','.$zjsku[$shop['id']];
- }
- $post['user_id'] = $data['user_id'];
- $post['state'] = $s;
- $post['shop'] = $shop['id'];//店铺ID
- $post['user'] = $shop['shopuser'];//店铺负责人
- $post['product'] = rtrim($product,',');//产品名称
- $post['link'] = rtrim($link,',');//产品链接
- $post['issku'] = rtrim($sku,',');
- $post['quantity'] = rtrim($quantity,';');
- $post['clientremarks'] = $data['buyer_message'];//客户备注
- $post['paypal'] = '';//交易号
- $post['guarantee'] = '';//卖家保障
- $post['parameter'] = '';//属性
- $post['shippingmethod'] = $data['delivery_option_name'].' '.$data['payment']['shipping_fee'];//用户选择快递方式及运费金额
- $post['source'] = 2;//订单类型
- $post['type'] = 1;//发货仓库
- $post['capital'] = 3;//资金支付状况,全部付款
- $post['number'] = $shop['shortname'].'-'.substr(date('ymd',substr($data['create_time'],0,10)-$sjc),1).'-'.(substr(strval($num+1000),1,3));//编号
- $post['orderinfo'] = $data['id'];//订单号
- $post['insurance'] = 0;//运输保险费用
- $address = $data['recipient_address']['address_detail'];
- $post['baddress'] = $address.','.$data['recipient_address']['district_info'][3]['address_name'].','.$data['recipient_address']['district_info'][1]['address_name'].','.$data['recipient_address']['postal_code'].','.$data['recipient_address']['region_code'].','.$data['recipient_address']['phone_number'];
- $post['saddress'] = $address.','.$data['recipient_address']['district_info'][3]['address_name'].','.$data['recipient_address']['district_info'][1]['address_name'].','.$data['recipient_address']['postal_code'].','.$data['recipient_address']['region_code'].','.$data['recipient_address']['phone_number'];
- $post['country'] = $cuy[$data['recipient_address']['region_code']];//此国家的ID
- $post['al'] = $data['recipient_address']['region_code'];//联邦名称
- $post['bname'] = preg_replace('/( | | |\s)/',' ',$data['recipient_address']['name']);//名称
- $post['sname'] = preg_replace('/( | | |\s)/',' ',$data['recipient_address']['name']);//名称
- $post['client'] = preg_replace('/( | | |\s)/',' ',$data['recipient_address']['name']);//公司名称
- $post['name'] = preg_replace('/( | | |\s)/',' ',$data['recipient_address']['name']);//收件人名称
- $post['phone'] = preg_replace('/\D/s','',$data['recipient_address']['phone_number']);//收件人电话
- $post['email'] = preg_replace('/( | | |\s)+/','',$data['buyer_email']);//客户邮箱
- $post['zipcode'] = $data['recipient_address']['postal_code'];//收件人邮编
- $post['province'] = $data['recipient_address']['district_info'][1]['address_name'];//收件人省份
- $post['city'] = $data['recipient_address']['district_info'][3]['address_name'];//收件人城市
- $post['address'] = $address;//收件人地址
- $post['shouldmoney'] = $data['payment']['total_amount'];//应收金额
- $post['skje'] = $post['shouldmoney'];//收款金额
- $post['ismoney'] = $data['payment']['currency'].$post['shouldmoney'];//支付币种金额
- $yga = $post['shouldmoney'];//金额
- $post['cf'] = ($data['shipping_type']=='SELLER')?0:1;//是否仓发TIKTOK平台仓发 SELLER商家发,ERP中1平台仓发,0商家发
- $post['budget'] = 0;
- if(isset($data['pay']) && $yga > 0)
- {
- $post['pay'] = $pay[$data['pay']]['id'];
- $ygc = $pay[$data['pay']]['estimaterate'];//预估到账公式
- $post['estimaterate'] = $pay[$data['pay']]['estimaterate'];
- $ifbudget = eval("return $yga*1.$ygc;");
- if($ifbudget > 0)
- {
- $post['budget'] = eval("return $yga*1.$ygc;");//预估到帐金额
- }
- }
- else if($yga > 0)
- {
- $post['pay'] = 0;
- $ygb = $shop['estimaterate'];//店铺默认到账公式
- $post['estimaterate'] = $shop['estimaterate'];
- $ifbudget = eval("return $yga*1.$ygb;");
- if($ifbudget > 0)
- {
- $post['budget'] = eval("return $yga*1.$ygb;");//预估到帐金额
- }
- }
- $post['overtime'] = $data['shipping_due_time']-$sjc;//超时时间
- $post['buytime'] = substr($data['paid_time'],0,10)-$sjc;//格式化付款时间
- $post['dtime'] = substr($data['create_time'],0,10)-$sjc;//订单时间
- $post['gtime'] = date('Ymd',substr($data['create_time'],0,10)-$sjc);//格式化订单时间
- $post['currencytitle'] = $data['payment']['currency'];//结算币种名称
- $post['currency'] = $typeclass[$data['payment']['currency']];//钱币ID
- $post['time'] = time();//同步时间
- $post['hl'] = '6.4';//汇率
- if(isset($data['delivery_option_name']))
- {
- $post['express'] = (isset($ex[$data['delivery_option_name']]))?$ex[$data['delivery_option_name']]['id']:0;//快递方式
- }
- if(isset($data['line_items'][0]['tracking_number']))
- {
- $post['waybill'] = $data['line_items'][0]['tracking_number'];
- }
- $matching = $this->api->matching($post['quantity'],$post['issku'],$dtc,$money,$int,$dtctitle);
- $post['shipremarks'] = $matching['title'];
- $post['cost'] = $matching['cost'];
- $post['purchase'] = $matching['purchase'];
- $post['fpdata'] = $matching['product'];
- $post['whlabel'] = $matching['whlabel'];
- $post['slpx'] = $matching['wcslpx'];
- return $post;
- }
-
- public function sign($url,$appSecret,$body='')
- {
- // 解析URL获取查询参数
- $queryParams = array();
- parse_str(parse_url($url, PHP_URL_QUERY), $queryParams);
- // 排除'sign'和'access_token'
- unset($queryParams['sign'], $queryParams['access_token']);
- // 按字典顺序排序查询参数
- ksort($queryParams);
- // 拼接参数为{key}{value}格式
- $input = '';
- foreach ($queryParams as $key => $value)
- {
- $input .= $key . $value;
- }
- // 追加请求路径
- $path = parse_url($url, PHP_URL_PATH);
- $input = $path . $input;
- if ($body)
- {
- $input .= json_encode($body);
- }
- // 使用app_secret包裹生成的字符串
- $input = $appSecret . $input . $appSecret;
- // 生成签名
- $sign = hash_hmac('sha256', $input,$appSecret);
- return $sign;
- }
-
-
- public function _aasd($arg_array)//DHL
- {
- $token_header = array(
- 'x-request-id: 605062090',
- 'Content-Type: application/json'
- );
- $ch = curl_init();
- $url = 'https://webhub.cndhl.com/dps/dps-auth-server/api/gateway-token/generate';
- curl_setopt($ch,CURLOPT_URL,$url);
- curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
- curl_setopt($ch, CURLOPT_HTTPHEADER, $token_header);
- //curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //TRUE 将curl_exec()获取的信息以字符串返回,而不是直接输出。
- //curl_setopt($ch, CURLOPT_HEADER, true); //返回response头部信息
- curl_setopt($ch,CURLOPT_POST, 1);
- curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,600);
- //设置post数据
- $post = array();
- $post['consumerCode'] = 'P_f7yzl4675s';
- $post['key'] = 'wt)!ftX{1Co$/i{|';
- $data = json_encode($post);
- curl_setopt($ch, CURLOPT_POSTFIELDS,$data);
- $res = curl_exec($ch);
- curl_close($ch);
- echo $res;
- exit;
-
- $y = $this->fullorder->get_number($arg_array[0]);
- $fpdata = $y['fpdata'];
- $weight = 0;
- $fpdataweight = str_replace(array('-163-','-164-','-165-','-166-'),'-',$fpdata);
- $list = $fpdataweight;
- $list = explode(';',trim($list,';'));
- $cs = array();
- foreach ($list as $vv)
- {
- $asd = explode('|',trim($vv,'|'));
- $c = explode(',',trim($asd[0],','));
- if(!isset($c[1]))
- {
- continue;
- }
- else
- {
- $dweight = $this->weight->get_cc($c);
- $cs[] = array($vv,$dweight);
- $weight += $dweight*$asd[2];
- }
- }
- echo "<pre>";
- print_r($cs);
- exit;
-
- $w = $this->dhl->get_logistics($y);
-
- echo "<pre>";
- print_r($w);
- echo "<pre>";
- print_r($y);
-
-
- exit;
- $y = $this->fullorder->get_number("KISS-40318-068");
- $express = $this->express->read($y['express']);
- if($express['printcode'] == "DHLUSA" && $y['waybill'] != '')
- {
- $d = $this->dhl->get_data_9610($y);
- if($d != 1)
- {
- $this->allocation->insert(array('order'=>1,'title'=>$y['number'],'content'=>$d));
- return '9610失败,'.$d;exit;
- }
- $this->allocation->insert(array('order'=>9610,'title'=>$y['number']));
- }
-
- exit;
-
- $d = $this->dhl->get_data_9610($data);
- echo "<pre>";
- print_r($d);
- exit;
-
-
-
- $list = $this->whlabel->find_pc("type != 0",'sku,features,warehouse','id,warehouse,sku,type,features');
- foreach ($list as $v)
- {
- $a += $this->whlabel->find_count("sku = '".$v['sku']."' and features = '".$v['features']."' and warehouse = '".$v['warehouse']."' and type = '0'");
-
- }
- echo $a;
- exit;
- $t = $this->shop->token(2);
- $data = '?';
- //$data .= 'searchCriteria[filterGroups][0][filters][0][field]=Field';//字段名称
- //$data .= '&searchCriteria[filterGroups][0][filters][0][value]=Value';//字段内容
- //$data .= '&searchCriteria[filterGroups][0][filters][0][conditionType]=ConditionType';//字段类型
- //$data .= '&';
- $data .= 'searchCriteria[sortOrders][0][field]=created_at';
- $data .= '&searchCriteria[sortOrders][0][direction]=DESC';
- $data .= '&searchCriteria[pageSize]=10';
- $data .= '&searchCriteria[currentPage]=1';
- //$url = 'http://pc.hnwmzp.cn/rest/all/V1/orders/items'.$data;
- $url = 'http://pc.hnwmzp.cn/rest/V1/orders/109933';
- $a = $this->api->su_curl('',$url,$header=array("Authorization: Bearer ".$t,"Content-Type: application/json"),$date_type='json',$timeout=300,$httptype="GET",$userpwd='');
- $a = json_decode($a,true);
- echo "<pre>";
- print_r($a);
- exit;
-
-
- /**
- $ch = curl_init();
- $post = array();
- $ai['username'] = 'longyiapi';
- $ai['password'] = 'longyi123';
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, 'http://pc.hnwmzp.cn/rest/V1/integration/admin/token');
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_HEADER, 0);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
- curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
- curl_setopt($ch, CURLOPT_POSTFIELDS,$ai);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,900);
- $res = curl_exec($ch);
- curl_close($ch);
- $res = json_decode($res ,true);
- echo "<pre>";
- print_r($res);
-
- //echo $c['data']['order_list']['0']['order_line_list']['0']['tracking_number'];
- /**
- $y = $this->fullordertt->find_all("dtime < 1708012800 and (whlabel like '%x|%' or whlabel like '%u|%')",'number');
- foreach ($y as $v)
- {
- $a = $this->whlabel->find_all("z");
- }
-
- $asd = '';
- $a = $this->whlabel->find_all("zd like '%TT-%' and state = 0",'id,zd');
- foreach ($a as $v)
- {
- $c = explode('-',$v['zd']);
- if($c[2] < 40215)
- {
- //$this->whlabel->save(array('zd'=>''),$v['id']);
- }
- }
- echo "<pre>";
- print_r($asd);
- **/
- }
-
- public function su_curl($data,$url,$header=array(),$date_type='json',$timeout=300,$httptype="POST",$userpwd='')
- {
-
- if ($date_type == 'http_build_query')
- {
- $data = http_build_query($data);
- }
- else if ($date_type == 'json')
- {
- $data = json_encode($data);
- }
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_POSTFIELDS,$data);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($ch, CURLOPT_HEADER, false);
- switch ($httptype)
- {
- case "GET":
- curl_setopt($ch, CURLOPT_HTTPGET, true);
- curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
- break;
-
- case "POST":
- curl_setopt($ch, CURLOPT_POST, true);
- curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
- break;
-
- case "PUT":
- curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
- break;
-
- case "DELETE":
- curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
- break;
- }
- $isSecure = strpos($url, "https://");
- if ($isSecure === 0)
- {
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
- }
- if(!empty($header))
- {
- curl_setopt($ch, CURLOPT_SSLVERSION , 6); //NEW ADDITION
- curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
- }
- if(!empty($userpwd))
- {
- curl_setopt($ch,CURLOPT_USERPWD,$userpwd);
- }
- curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
- curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
- $result = curl_exec($ch);
- curl_close($ch);
- return $result;
- }
- }
|