```
<?php
// +------------------------------------------------------------------------------------------------
// | 【使用說明】請將本文件上傳至老虎系統網站服務器:/addons/對應標識/inc/mobile/ 目錄下。
// +------------------------------------------------------------------------------------------------
// | [18淘客助手api文件(老虎微信淘寶客專用-兼容所有新老版本的老虎系統)] Copyright (c) 18.LA
// +------------------------------------------------------------------------------------------------
// | 最后修改:2020年03月21日
// +------------------------------------------------------------------------------------------------
// | 官網:http://taoke.18.la/
// +------------------------------------------------------------------------------------------------
global $_W, $_GPC, $return, $cfg;
$cfg = $this->module['config'];
$return = array('state'=>'ok','code'=>1,'message'=>'','version'=>'6.1','system'=>urlencode('老虎微信淘寶客'),'updatetime'=>urlencode('2020年03月21日'));
//如果未傳入有效參數
if (!isset($_GPC['key']) || !isset($_GPC['api'])) {
$return['code']=0;
$return['message']=urlencode('API接口正常');
exit(urldecode(json_encode($return)));
}
//判斷密鑰
if($cfg['miyao']!=$_GPC['key']){
$return['code']=0;
$return['message']=urlencode('密鑰錯誤');
exit(urldecode(json_encode($return)));
}
//設置常用變量
$_W['uniacid']=$_GPC['i'];//公眾號id
$api=$_GPC['api'];//api名稱
$op=$_GPC['op'];
$dtime=time();//當前時間
$message="";
//接口驗證
if($api=='verify'){
$return['code']=1;
$return['message']=urlencode('驗證成功');
exit(urldecode(json_encode($return)));
}
//【訂單同步】
elseif($api=='postorder'){
//獲取post過來的訂單內容
$content=htmlspecialchars_decode($_GPC['content']);
//json解碼
$contentArr=@json_decode($content, true);
//如果數組不為空
if(!empty($contentArr)){
$orderDbTable=$this->modulename."_tkorder";//訂單數據庫表名
$field=tableField(tablename($orderDbTable));//獲取訂單表的所有字段
$resultStr="";//記錄訂單入庫結果字符串
//遍歷訂單數組
foreach($contentArr as $orderID=>$orderData)
{
//查詢數據庫
$ord=pdo_fetch('select * from '.tablename($orderDbTable)." where weid='{$_W['uniacid']}' and orderid='{$orderID}'");
if(count($orderData)>1){//訂單號相同的多個訂單集合
//如果已存在
if (!empty($ord)){
$result=pdo_delete($orderDbTable,array ('orderid'=>$orderID,'weid'=>$_W['uniacid']));//刪除該訂單id的所有訂單
}
//將所有訂單ID相同的訂單添加到數據庫
$resultTem=1;
foreach($orderData as $data){
$newdata=orderFormat($data,$field);//格式化訂單數據
//原有字段值保持不變
if (!empty($ord)){
if (!empty($ord['type'])) $newdata['type']=$ord['type'];
if (!empty($ord['zdgd'])) $newdata['zdgd']=$ord['zdgd'];
}
//添加到數據
$result=pdo_insert($orderDbTable,$newdata);
if (!empty($result)) {//添加成功
$resultTem = ($resultTem==1) ? 1 : 0;//如果上次狀態為1,這次也標記為1,否則設置為0
}else{//添加失敗
//嘗試修改唯一索引為普通索引
orderIndex(tablename($orderDbTable));
//再重新添加一次數據
$result=pdo_insert($orderDbTable,$newdata);
if (!empty($result)){
$resultTem = ($resultTem==1) ? 1 : 0;//如果上次狀態為1,這次也標記為1,否則設置為0
}else{
$resultTem=0;//將狀態標記為失敗
}
}
}
$resultStr=resultState($resultStr,$orderID,$resultTem);//記錄訂單入庫狀態
}else{//訂單號不同的單個訂單
$newdata=orderFormat($orderData[0],$field);
if (!empty($ord)){//如果已存在
if($ord['orderzt']=='訂單失效'){
$resultStr=resultState($resultStr,$orderID,"1");//失效訂單,無需更新,也返回更新成功
continue;//跳過本次循環
}
$result=pdo_update($orderDbTable,$newdata,array('orderid' =>$orderID,'weid'=>$_W['uniacid']));//更新數據庫
if (!empty($result)) {
//更新成功
$resultStr=resultState($resultStr,$orderID,"1");
}else{
//更新失敗
$resultStr=resultState($resultStr,$orderID,"0");
}
}else{
//如果不存在,添加到數據
$result=pdo_insert($orderDbTable,$newdata);
if (!empty($result)) {
//添加成功
$resultStr=resultState($resultStr,$orderID,"1");
}else{
//添加失敗
$resultStr=resultState($resultStr,$orderID,"0");
}
}
}
}
returnExit($return,1,"result:".$resultStr);//code值設置為1,表示成功
}else{
returnExit($return,0,"傳入訂單數據不正確");//code值設置為0,表示失敗
}
}
//【商品采集】
elseif($api=='postgoods'){
//獲取post過來的訂單內容
$content=htmlspecialchars_decode($_GPC['content']);
//json解碼
$contentArr=@json_decode($content, true);
//如果數組不為空
if(!empty($contentArr['cat']) && !empty($contentArr['goods'])){
//商品分類
$cat=goodsCat(tablename($this->modulename."_fztype"),$contentArr['cat']);
if(empty($cat)){
returnExit($return,0,"分類綁定不正確");//code值設置為0,表示失敗
}
//商品數據
$goodsDbTable=$this->modulename."_newtbgoods";//訂單數據庫表名
$field=tableField(tablename($goodsDbTable));//獲取訂單表的所有字段
$resultStr="";//記錄訂單入庫結果字符串
foreach($contentArr['goods'] as $data)
{
$itemid=$data['商品ID'];
//格式化商品數據
$newdata=goodsFormat($cat,$data,$field);
//print_r($newdata);
//查詢是否存在
$goodsid=pdo_fetch('select itemid from '.tablename($goodsDbTable)." where weid='{$_W['uniacid']}' and itemid='{$itemid}'");
if (empty($goodsid)){
//如果不存在,新增
$result=pdo_insert($goodsDbTable,$newdata);
}else{
//如果已存在,更新
$result=pdo_update($goodsDbTable,$newdata,array('itemid' =>$itemid,'weid'=>$_W['uniacid']));
}
//記錄入庫結果
if (!empty($result)) {
//添加成功
$resultStr=resultState($resultStr,$itemid,"1");
}else{
//添加失敗
$resultStr=resultState($resultStr,$itemid,"0");
}
}
returnExit($return,1,"result:".$resultStr);//code值設置為1,表示成功
}else{
returnExit($return,0,"傳入商品數據不正確");//code值設置為0,表示失敗
}
}
//【商品管理】
elseif($api=='delgoods'){
//獲取post過來的訂單內容
$content=htmlspecialchars_decode($_GPC['content']);
//json解碼
$contentArr=@json_decode($content, true);
//訂單數據庫表名
$goodsDbTable=$this->modulename."_newtbgoods";
//如果where數組不為空
if(!empty($contentArr['where']) ){
$whereArr=$contentArr['where'];
//print_r($whereArr);
//構造sql語句
if(!empty($whereArr['銷量小于']) )
{
if(!empty($where)) $where.=" or ";
$where.=" itemsale<'{$whereArr['銷量小于']}' ";
}
if(!empty($whereArr['價格小于'])){
if(!empty($where)) $where.=" or ";
$where.=" itemendprice<'{$whereArr['價格小于']}' ";
}
if(!empty($whereArr['價格大于'])){
if(!empty($where)) $where.=" or ";
$where.=" itemendprice>'{$whereArr['價格大于']}' ";
}
if(!empty($whereArr['傭金小于']) )
{
if(!empty($where)) $where.=" or ";
$where.=" tkmoney<'{$whereArr['傭金小于']}' ";
}
if(!empty($whereArr['傭金比例']) )
{
if(!empty($where)) $where.=" or ";
$where.=" tkrates<'{$whereArr['傭金比例']}' ";
}
if(!empty($whereArr['非天貓']) )
{
if(!empty($where)) $where.=" or ";
$where.=" shoptype!='B' ";
}
if(!empty($whereArr['非視頻單']) )
{
if(!empty($where)) $where.=" or ";
$where.=" videoid='0' ";
}
if(!empty($whereArr['優惠券過期']) )
{
if(!empty($where)) $where.=" or ";
$where.="(couponendtime<>'' and couponendtime<='{$dtime}') ";
}
if(!empty($whereArr['無優惠券']) )
{
if(!empty($where)) $where.=" or ";
$where.=" (quan_id='' and couponurl='') ";
}
//echo $where;
if(!empty($where)){
//執行刪除語句
$result=pdo_query("DELETE FROM " . tablename($goodsDbTable) . " WHERE weid = '{$_W['uniacid']}' and ".$where);
if(!empty($result)){
returnExit($return,1,'成功刪除'.$result.'件商品');//code值設置為1,表示成功
}else{
returnExit($return,1,'暫無符合條件商品');//code值設置為1,表示成功
}
}else{
returnExit($return,0,'傳入條件數據不正確');//code值設置為1,表示成功
}
}
//如果goodsid數組不為空
elseif(!empty($contentArr['goodsid']) ){
$count=0;
//遍歷訂單ID數組
foreach($contentArr['goodsid'] as $goodsid)
{
//查詢是否存在
$itemid=pdo_fetch('select itemid from '.tablename($goodsDbTable)." where weid='{$_W['uniacid']}' and itemid='{$goodsid}'");
if (!empty($itemid)){
//如果已存在,刪除
$result=pdo_delete($goodsDbTable,array('itemid' =>$itemid,'weid'=>$_W['uniacid']));
if(!empty($result)){
$count+=$result;
}
}
}
if($count>0){
returnExit($return,1,'成功刪除'.$count.'件商品');//code值設置為1,表示成功
}else{
returnExit($return,1,'暫無符合條件商品');//code值設置為1,表示成功
}
}
//刪除全部商品
elseif(!empty($contentArr['all']) ){
$result=pdo_delete($goodsDbTable,array('weid'=>$_W['uniacid']));
if(!empty($result)){
returnExit($return,1,'成功刪除'.$result.'件商品');//code值設置為1,表示成功
}else{
returnExit($return,1,'暫無商品');//code值設置為1,表示成功
}
//無有效參數
}else{
returnExit($return,0,'傳入條件數據不正確');//code值設置為1,表示成功
}
}
//【代理管理】
elseif($api=='agentadmin'){
//訂單數據庫表名
$agentDbTable=$this->modulename."_share";
//獲取代理信息
if($_GPC['op']=='getrequest'){
//查詢待審核的代理信息(一次最多查詢88條)
$list=pdo_fetchall('select * from '.tablename($agentDbTable)." where weid='{$_W['uniacid']}' and dltype=2 LIMIT 88");
if (!empty($list)){
foreach($list as $key=>$data)
{
$newdata[$key]['id']=$data['from_user'];
$newdata[$key]['name']=$data['tname'];//代理姓名:tname,代理微信昵稱:nickname
}
returnExit($return,1,'獲取未審核代理數據成功',$newdata);//code值設置為1,表示成功
}else{
returnExit($return,1,'暫無未審核代理數據');//code值設置為1,表示成功
}
//審核代理
}elseif($_GPC['op']=='check'){
$dailimodulename="tiger_wxdaili";//代理模塊名稱
//獲取post過來的訂單內容
$content=htmlspecialchars_decode($_GPC['content']);
//json解碼
$contentArr=@json_decode($content, true);
if(empty($contentArr['id']))
{
returnExit($return,0,'傳入數據不正確');//code值設置為1,表示成功
}
//讀取相關參數
$openid=$contentArr['id'];//用戶微信ID
//設置審核數據
$data = array(
'dltype' =>1,// 代理類型 1為代理 2為未審核
'cqtype'=>1,//是否開啟查券 1為開啟,0為不開
'updatetime'=>time(),
);
//查詢代理信息
$sharedata=pdo_fetch("select * from ".tablename($agentDbTable)." where weid='{$_W['uniacid']}' and from_user='{$openid}' ");
//讀取淘寶用戶ID
$memberid=(!empty($contentArr['memberid'])) ? $contentArr['memberid'] : '' ;
if(!empty($contentArr['adzoneid']) && !empty($contentArr['pid'])){
//判斷普通PID是否為空
if(empty($sharedata['dlptpid']))//當普通pid為空時,才分配新的pid,防止已有pid被覆蓋
{
//將pid數據追加到數組
$data['tgwid']=($contentArr['type']==2)?time():$contentArr['adzoneid'];//推廣位ID(根據用戶咨詢了老虎系統的作者,所反饋的情況,使用渠道模式時,pid必須分配一個固定的默認pid,推廣位id要填一個不存在的數字,老虎系統才能正常使用渠道id匹配訂單,此處取填時間戳,如果想使用默認pid中的推廣位id,請自行修改代碼)
//$data['tgwid']=$contentArr['adzoneid'];//推廣位ID
$data['dlptpid']=$contentArr['pid'];//普通pid,三段式,類似:mm_181818818_68516333_68516333格式
$data['dlqqpid']=$contentArr['pid'];//鵲橋pid,取普通pid一樣即可
}
$memberid=explode('_',$contentArr['pid'])[1];//提取pid中的memberid
}
//查詢pid對應的淘寶賬號id
$tksignsql="select * from ".tablename($this->modulename."_tksign")." where weid='{$_W['uniacid']}' ";
if(!empty($memberid)) $tksignsql=$tksignsql."and memberid='{$memberid}' ";
$tksigndata=pdo_fetch($tksignsql);//根據memberid從數據庫內查詢
if(!empty($tksigndata['tbuid']))//如果查詢到了tbuid
{
//將pid數據追加到數組
$data['tbkpidtype']=1;//1代表已綁定,0代表未綁定
$data['tbuid']=$tksigndata['tbuid'];//淘寶用戶數字id
}
/****************申請拼多多PID開始****************/
$pddsdkfilename = IA_ROOT . "/addons/tiger_newhu/inc/sdk/tbk/pdd.php";
//判斷sdk文件是否存在并且當前拼多多的pid值是否為空
if (file_exists($pddsdkfilename) !== false && empty($sharedata['pddpid'])) {
include $pddsdkfilename;
$pddset=pdo_fetch("select * from ".tablename('tuike_pdd_set')." where weid='{$_W['uniacid']}'");
$owner_name=$pddset['ddjbbuid'];
$pidlist=pddtgw($owner_name,1);
$datalist=$pidlist['p_id_generate_response']['p_id_list'];//p_id
$pdd_pid=$datalist[0]['p_id'];
//判斷拼多多pid是否創建成功
if (!empty($pdd_pid)){
//將拼多多pid添加到數組
$data['pddpid']=$pdd_pid;
//*******保存拼多多pid到數據庫*********
$pdd_pidres = pdo_fetch("SELECT * FROM " . tablename($dailimodulename."_pddpid") . " weid='{$_W['uniacid']}' and pid='{$pdd_pid}'");//查詢數據庫中pid是否存在
$pdd_data=array(
'weid'=>$_W['uniacid'],
'pid'=>$pdd_pid,
'createtime'=>time(),
'type'=>1,
'uid'=>$sharedata['id'],
'nickname'=>$sharedata['nickname'],
);
if(empty($pdd_pidres)){
pdo_insert($dailimodulename."_pddpid", $pdd_data);//寫入到數據庫
}else{
pdo_update($dailimodulename."_pddpid",$pdd_data, array('pid' => $pdd_pid));//更新
}
//*******保存拼多多pid到數據庫*********
}
}
/****************申請拼多多PID結束****************/
/****************申請京東PID開始****************/
$jdsdkfilename = IA_ROOT . "/addons/tiger_newhu/inc/sdk/tbk/jd.php";
//判斷sdk文件是否存在并且當前京東的pid值是否為空
if (file_exists($jdsdkfilename) !== false && empty($sharedata['jdpid'])) {
include $jdsdkfilename;
$jdset=pdo_fetch("select * from ".tablename('tuike_jd_jdset')." where weid='{$_W['uniacid']}' order by id desc");
$jdsign=pdo_fetch("select * from ".tablename('tuike_jd_jdsign')." where weid='{$_W['uniacid']}' order by id desc");
if(!empty($jdset) && !empty($jdsign)){//判斷配置值是否為空
$jd_tgwname=$sharedata['id']."_".time();//京東推廣位名稱
$jd_cjgetarr=array();
$jd_cjgetarr['unionId']=$jdset['unionid'];
$jd_cjgetarr['key']=$jdset['jdkey'];
$jd_cjgetarr['unionType']="1";
$jd_cjgetarr['type']="4";
$jd_cjgetarr['spaceNameList']=array($jd_tgwname);
$jd_cjgetarr=array(
'positionReq'=>$jd_cjgetarr
);
$jd_tgwlist=$this->cjget("jd.union.open.position.create",$jd_cjgetarr);//生成京東推廣位
$jd_tgwlist=json_decode($jd_tgwlist,true);
$jd_tgw=json_decode($jd_tgwlist['jd_union_open_position_create_response']['result'],true);
$jd_pid=$jd_tgw['data']['resultList'][$jd_tgwname];//對應代理推廣位
//判斷京東pid是否創建成功
if (!empty($jd_pid) && $jd_pid!='-1'){
//將京東pid添加到數組
$data['jdpid']=$jd_pid;
//*******保存京東pid到數據庫*********
$jd_pidres=pdo_fetch("select * from ".tablename($dailimodulename."_jdpid")." where weid='{$_W['uniacid']}' and pid='{$jd_pid}' order by id desc "); //查詢pid是否存在
$jd_data = array(
'weid' => $_W['weid'],
'type' =>1,
'nickname' => $sharedata['nickname'],
'uid'=>$sharedata['id'],
'pid' =>$jd_pid,
'tgwname' =>$jd_tgwname,
'fptime' =>time(),
'createtime' => TIMESTAMP
);
if(empty($jd_pidres)){
pdo_insert($dailimodulename."_jdpid", $jd_data);//新增
}else{
pdo_update($dailimodulename."_jdpid",$jd_data, array('pid' => $jd_pid));//更新
}
//*******保存京東pid到數據庫*********
}
}
}
/****************申請京東PID結束****************/
/****************申請唯品會PID開始****************/
$wphsdkfilename = IA_ROOT."/addons/tiger_newhu/inc/sdk/wph/com/vip/adp/api/open/service/UnionPidServiceClient.php";
//判斷sdk文件是否存在并且當前唯品會的pid值是否為空
if (file_exists($wphsdkfilename) !== false && empty($sharedata['wphpid'])) {
include $wphsdkfilename;
$wphsignset=pdo_fetch("select * from ".tablename('tiger_newhu_wphsign')." where weid='{$_W['uniacid']}'");
$whpsign=$wphsignset['access_token'];
if(!empty($whpsign)){//判斷配置值是否為空
$pidname[0]=$sharedata['id']."_".time();//唯品會推廣位名稱
//生成唯品會推廣位
try {
$service=\com\vip\adp\api\open\service\UnionPidServiceClient::getService();
$ctx=\Osp\Context\InvocationContextFactory::getInstance();
$ctx->setAppKey("2bc54d13");
$ctx->setAppSecret("E80CC551126603A3F53AA84F366527F3");
$ctx->setAppURL("https://gw.vipapis.com/");
$ctx->setAccessToken($whpsign);
$ctx->setLanguage("zh");
$pidGenRequest1=new \com\vip\adp\api\open\service\PidGenRequest();
$pidNameList2=$pidname;
$pidGenRequest1->pidNameList=$pidNameList2;
$pidGenRequest1->requestId="requestIdsdddd";
$res=(array)$service->genPidWithOauth($pidGenRequest1);
$res=(array)$res['pidInfoList'];
// echo "<pre>";
//print_r($res);
// exit;
} catch(\Osp\Exception\OspException $e){
//var_dump($e);
}
$wph_tgw=(array)$res[0];
$wph_tgwpid=$wph_tgw['pid'];
$wph_tgwname=$wph_tgw['pidName'];//推廣位名稱
$wph_tgwcreateTime=$wph_tgw['createTime'];//推廣位創建時間
//判斷唯品會pid是否創建成功
if (!empty($wph_tgwpid) && !empty($wph_tgwname)){
//將唯品會pid添加到數組
$data['wphpid']=$wph_tgwpid;
//*******保存唯品會pid到數據庫*********
$vip_pidres=pdo_fetch("select * from ".tablename($dailimodulename."_wphpid")." where weid='{$_W['uniacid']}' and pid='{$wph_tgwpid}'"); //查詢pid是否存在
$vip_data = array(
'weid'=>$_W['uniacid'],
'pid'=>$wph_tgwpid,
'tgwname'=>$wph_tgwname,
'createtime'=>time(),
'type'=>1,
'nickname' => $sharedata['nickname'],
'uid'=>$sharedata['id'],
'fptime' =>time(),
);
if(empty($vip_pidres)){
pdo_insert($dailimodulename."_wphpid", $vip_data);//新增
}else{
pdo_update($dailimodulename."_wphpid",$vip_data, array('pid' => $vip_pid));//更新
}
//*******保存唯品會pid到數據庫*********
}
}
}
/****************申請唯品會PID結束****************/
//更新到數據庫
$result=pdo_update($agentDbTable, $data, array('id' =>$sharedata['id'],'weid'=>$_W['uniacid']));//更新代理信息
//判斷結果
if(!empty($result)){
//跨模塊讀取tiger_wxdaili配置
$wxdaili=pdo_fetch("select value from ".tablename('core_cache')." where `key`='we7:module_setting:{$_W['uniacid']}:tiger_wxdaili'");
if(!empty($wxdaili)){
$value=unserialize($wxdaili['value']);
$wxdaili_cfg=unserialize($value['settings']);
}else{
//微擎1.7以上版本模塊配置文件保存的地方不一樣
$wxdaili=pdo_fetch("select settings from ".tablename('uni_account_modules')." where `module`='tiger_wxdaili' and `uniacid`='{$_W['uniacid']}'");
$wxdaili_cfg=unserialize($wxdaili['settings']);
}
//審核成功
if(!empty($wxdaili_cfg['dlshtgtx'])){//管理員訂單提交提醒
$fans=pdo_fetch("select m.uid,m.nickname,m.avatar,f.openid,m.uid,f.followtime,f.follow,m.resideprovince,m.residecity,m.gender from ".tablename('mc_members')." m inner join ".tablename('mc_mapping_fans')." f on m.uid=f.uid and f.openid='{$openid}' and f.uniacid='{$_W['uniacid']}'");
//查詢代理信息
$share=pdo_fetch("select * from ".tablename($agentDbTable)." where weid='{$_W['uniacid']}' and from_user='{$openid}'");
//查詢模版信息
$mb=pdo_fetch("select * from ".tablename($this->modulename."_mobanmsg")." where weid='{$_W['uniacid']}' and id='{$wxdaili_cfg['dlshtgtx']}'");
//設置消息數據
$valuedata=array(
'rmb'=>'',
'txzhanghao'=>'',//提現支付帳帳號
'dlmsg'=>$share['dlmsg'],//申請理由
'tname'=>$share['tname'],//申請人姓名
'dlsqjj'=>$_GPC['glymsg'],//代理申請拒絕原因
'tel'=>$share['tel'],
'weixin'=>$share['weixin'],
'shenhe'=>'',//'審核通過|審核不通過|資料有誤請重新提交審核',
'goodstitle'=>''//'積分商城,商品名稱'
);
//發送提醒消息
$msg=$this->mbmsg($openid,$mb,$mb['mbid'],$mb['turl'],$fans,'',$wxdaili_cfg,$valuedata);
}
returnExit($return,1,'代理審核成功');//code值:1成功 0失敗
}else{
returnExit($return,0,'代理審核失敗');//code值:1成功 0失敗
}
}else{
returnExit($return,0,'傳入條件數據不正確');//code值:1成功 0失敗
}
}
//【拼多多訂單入庫】
elseif($api=='postpddorder'){
//獲取post過來的訂單內容
$content = htmlspecialchars_decode($_GPC['content']);
$contentArr = @json_decode($content, true);
//json解碼
//判斷傳入訂單數據是否為空
if (!empty($contentArr)) {
//定義記錄訂單入庫結果的變量
$resultStr = "";
$goodsDbTable=$this->modulename."_pddorder";//訂單數據庫表名
//遍歷訂單數據
foreach ($contentArr as $orderid => $orderdata) {
//格式化訂單數據
$newdata = orderFormatPdd($orderdata);
//查詢是否存在
$row = pdo_fetch("SELECT * FROM " . tablename($goodsDbTable) . " WHERE weid='{$_W['uniacid']}' and order_sn='{$orderid}'");
if (empty($row)) {
//如果不存在,新增數據
$result = pdo_insert($goodsDbTable, $newdata);
} else {
//如果存在,更新數據
$result = pdo_update($goodsDbTable, $newdata, array('order_sn' => $orderid,'weid'=>$_W['uniacid']));
}
//記錄入庫結果
if (!empty($result)) {
$resultStr = resultState($resultStr, $orderid, "1");//成功
} else {
$resultStr = resultState($resultStr, $orderid, "0");//失敗
}
}
returnExit($return, 1, "result:" . $resultStr);
//code值設置為1,表示成功
} else {
returnExit($return, 0, "傳入訂單數據不正確");
//code值設置為0,表示失敗
}
}
//【京東訂單入庫】
elseif($api=='postjdorder'){
//獲取post過來的訂單內容
$content = htmlspecialchars_decode($_GPC['content']);
$contentArr = @json_decode($content, true);
//json解碼
//判斷傳入訂單數據是否為空
if (!empty($contentArr)) {
//定義記錄訂單入庫結果的變量
$resultStr = "";
$goodsDbTable=$this->modulename."_jdorder";//訂單數據庫表名
//遍歷訂單數據
foreach ($contentArr as $orderid => $orderdata) {
$resultTem=1;
//遍歷子訂單數據
foreach($orderdata as $data){
//處理參數
$orderTime=strtotime($data['orderTime']);//下單時間
$finishTime=$data['finishTime'];//結算時間
$finishTime=($finishTime == 0 || $finishTime == "0")?0:strtotime($finishTime);
//格式化訂單數據
$newdata=array(
'weid'=>$_W['uniacid'],
'finishTime'=>substr($finishTime , 0 , 10),
'orderEmt'=>$data['orderEmt'],
'orderId'=>$data['orderId'],
'orderTime'=>substr($orderTime , 0 , 10),
'parentId'=>$data['parentId'],
'payMonth'=>$data['payMonth'],
'plus'=>$data['plus'],
'popId'=>$data['popId'],
'actualCommission'=>$data['actualCommission'],
'actualCosPrice'=>$data['actualCosPrice'],
'actualFee'=>$data['actualFee'],
'commissionRate'=>$data['commissionRate'],
'estimateCommission'=>$data['estimateCommission'],
'estimateCosPrice'=>$data['estimateCosPrice'],
'estimateFee'=>$data['estimateFee'],
'finalRate'=>$data['finalRate'],
'firstLevel'=>$data['firstLevel'],
'frozenSkuNum'=>$data['frozenSkuNum'],
'payPrice'=>$data['payPrice'],
'pid'=>$data['pid'],
'price'=>$data['price'],
'secondLevel'=>$data['secondLevel'],
'siteId'=>$data['siteId'],
'skuId'=>$data['skuId'],
'skuName'=>$data['skuName'],
'skuNum'=>$data['skuNum'],
'skuReturnNum'=>$data['skuReturnNum'],
'spId'=>$data['positionId'],
'subSideRate'=>$data['subSideRate'],
'subUnionId'=>$data['subUnionId'],
'subsidyRate'=>$data['subsidyRate'],
'thirdLevel'=>$data['thirdLevel'],
'traceType'=>$data['traceType'],
'unionAlias'=>$data['unionAlias'],
'unionTrafficGroup'=>$data['unionTrafficGroup'],
'unionTag'=>$data['unionTag'],
'validCode'=>$data['validCode'],
'unionId'=>$data['unionId'],
'unionUserName'=>$data['unionUserName'],
'createtime'=>time()
);
//查詢是否存在
$row = pdo_fetch("SELECT * FROM " . tablename($goodsDbTable) . " WHERE weid='{$_W['uniacid']}' and orderId='{$data['orderId']}' and skuId='{$data['skuId']}'" );
if (empty($row)) {
//如果不存在,新增數據
$result = pdo_insert($goodsDbTable, $newdata);
} else {
//如果存在,更新數據
$result = pdo_update($goodsDbTable, $newdata, array('weid'=>$_W['uniacid'],'orderId' => $data['orderId'],'skuId' => $data['skuId']));
}
//判斷入庫結果
if (!empty($result)){
$resultTem = ($resultTem==1) ? 1 : 0;//如果上次狀態為1,這次也標記為1,否則設置為0
}else{
$resultTem=0;//將狀態標記為失敗
}
}
//記錄入庫結果
$resultStr = resultState($resultStr, $orderid, $resultTem);
}
returnExit($return, 1, "result:" . $resultStr);
//code值設置為1,表示成功
} else {
returnExit($return, 0, "傳入訂單數據不正確");
//code值設置為0,表示失敗
}
}
//【唯品會訂單入庫】
elseif($api=='postviporder'){
//獲取post過來的訂單內容
$content = htmlspecialchars_decode($_GPC['content']);
$contentArr = @json_decode($content, true);
//json解碼
//判斷傳入訂單數據是否為空
if (!empty($contentArr)) {
//定義記錄訂單入庫結果的變量
$resultStr = "";
$orderDbTable=$this->modulename."_wphorder";//訂單數據庫表名
//遍歷訂單數據
foreach ($contentArr as $orderid => $orderdata) {
//格式化訂單數據
$newdata=array(
'weid'=>$_W['uniacid'],
'orderSn'=>$orderdata['orderSn'],
'status'=>$orderdata['status'],
'newCustomer'=>$orderdata['newCustomer'],
'channelTag'=>$orderdata['channelTag'],
'orderTime'=>strtotime($orderdata['orderTime']),//
'signTime'=>strtotime($orderdata['signTime']),//
'settledTime'=>strtotime($orderdata['settledTime']),//
'lastUpdateTime'=>strtotime($orderdata['lastUpdateTime']),//
'settled'=>$orderdata['settled'],
'selfBuy'=>$orderdata['selfBuy'],
'orderSubStatusName'=>$orderdata['orderSubStatusName'],
'commission'=>$orderdata['commission'],
'afterSaleChangeCommission'=>$orderdata['afterSaleChangeCommission'],
'afterSaleChangeGoodsCount'=>$orderdata['afterSaleChangeGoodsCount'],
'commissionEnterTime'=>$orderdata['commissionEnterTime'],
'orderSource'=>$orderdata['orderSource'],
'pid'=>$orderdata['pid'],
'isPrepay'=>0,//$orderdata['isPrepay']
'goodsId'=>$orderdata['goodsId'],
'goodsName'=>$orderdata['goodsName'],
'goodsThumb'=>$orderdata['goodsThumb'],
'goodsCount'=>$orderdata['goodsCount'],
'commissionTotalCost'=>$orderdata['commissionTotalCost'],
'commissionRate'=>$orderdata['commissionRate'],
'commCode'=>$orderdata['commCode'],
'commName'=>$orderdata['commName'],
'afterSaleInfo'=>$orderdata['afterSaleInfo'],
'sizeId'=>$orderdata['sizeId'],
'createtime'=>time()
);
//查詢是否存在
$row = pdo_fetch("SELECT * FROM " . tablename($orderDbTable) . " WHERE weid='{$_W['uniacid']}' and orderSn='{$orderdata['orderSn']}' and goodsId='{$orderdata['goodsId']}' and sizeId='{$orderdata['sizeId']}'" );
if (empty($row)) {
//如果不存在,新增數據
$result = pdo_insert($orderDbTable, $newdata);
if (!empty($result)) {
$resultStr = resultState($resultStr, $orderid, "1");//成功
} else {
$resultStr = resultState($resultStr, $orderid, "0");//失敗
}
} else {
//如果存在,更新數據
$result = pdo_update($orderDbTable, $newdata, array('weid'=>$_W['uniacid'],'orderSn' => $orderdata['orderSn'],'goodsId' => $orderdata['goodsId'],'sizeId' => $orderdata['sizeId']));
$resultStr = resultState($resultStr, $orderid, "1");
}
}
returnExit($return, 1, "result:" . $resultStr);
//code值設置為1,表示成功
} else {
returnExit($return, 0, "傳入訂單數據不正確");
//code值設置為0,表示失敗
}
}
//【定時任務】
elseif ($api == 'timetask') {
//【加載定時任務插件文件】
if (!empty($op)) {
$timetaskfilename = IA_ROOT . "/addons/tiger_newhu/inc/mobile/18timetask_" . $op . ".inc.php";
if (file_exists($timetaskfilename) !== false) {
include $timetaskfilename;
}
}
//【京東訂單同步】
if ($op == "jdorder") {
/****************京東訂單同步開始****************/
//【接收參數】
$start = empty($_GPC['start']) ? 0 : trim($_GPC['start']);//開始天數(默認為0,即從當天開始)
$day = empty($_GPC['day']) ? 1 : trim($_GPC['day']);//要同步的天數(默認同步1天)
$hour=empty($_GPC['hour']) ? 24 : trim($_GPC['hour']);//每次同步幾小時的訂單(默認每次同步24小時)
$progress=empty($_GPC['progress']) ? 0 : trim($_GPC['progress']);//同步進度參數(默認從0開始,程序自動處理,請勿手工傳入此參數)
$allcount=empty($_GPC['allcount']) ? 0 : trim($_GPC['allcount']);//記錄獲取訂單總數的參數(默認從0開始,程序自動處理,請勿手工傳入此參數)
$sleep=empty($_GPC['sleep']) ? 1 : trim($_GPC['sleep']);//執行完當前頁后執行下一頁的間隔時間
//【計算相關時間】
$startTime=date("Y-m-d H:i:s",strtotime("-".$start." day"));//計算開始時間
$endTime=date("Y-m-d H:i:s",strtotime("-".$day." day", strtotime($startTime)));//計算結束時間(strtotime可以接受第二個參數,類型timestamp,為指定日期)
$allHour=abs(floor((strtotime($endTime)-strtotime($startTime))/3600));//開始時間和結束時間相差小時數
$progressTime=date("Y-m-d H:i:s",strtotime("-".$progress." hours", strtotime($startTime)));//計算進度時間
//echo '開始時間:'.$startTime.' 結束時間:'.$endTime.' 相差小時數:'.$allHour.' 進度:'.$progress.'/'.$allHour;
//exit;
//【引用京東api文件】
$jdsdkfilename=IA_ROOT . "/addons/tiger_newhu/inc/sdk/tbk/jd.php";
if (file_exists($jdsdkfilename) == false) returnExit($return, 0, '你的淘客系統缺少:'.$jdsdkfilename.'文件');//判斷文件是否存在
include $jdsdkfilename;
//【讀取京東相關配置】
$jdset=pdo_fetch("select * from ".tablename('tuike_jd_jdset')." where weid='{$_W['uniacid']}' order by id desc");
$jdsign=pdo_fetch("select * from ".tablename('tuike_jd_jdsign')." where weid='{$_W['uniacid']}' order by id desc");
if(empty($jdset) || empty($jdsign)) returnExit($return, 0, '讀取京東模塊配置失敗');
$thisStartTime=date("Y年m月d日H時",strtotime($progressTime));
$count=0;
//【每次同步小時數循環獲取訂單】
for ($i=0; $i<$hour; $i++) {
if($i>0) $progressTime=date('Y-m-d H:i:s', strtotime ("-1 hours", strtotime($progressTime)));//計算進度時間
$orderTime=date("YmdH",strtotime($progressTime));//計算要同步的訂單時間(格式:年月日時,例如:2018080808)
/*獲取京東訂單并入庫開始*/
//【通過API接口獲取訂單數據】
$page=1;
$res=getkhorder($jdsign['access_token'],$jdset['unionid'],$orderTime,$jdset['appkey'],$jdset['appsecret'],$page);
//【判斷是否獲取到數據】
if(!empty($res)){
foreach($res as $k=>$v){
$data=array(
'weid'=>$_W['uniacid'],
'finishTime'=>substr($v['finishTime'] , 0 , 10),
'orderEmt'=>$v['orderEmt'],
'orderId'=>$v['orderId'],
'orderTime'=>substr($v['orderTime'] , 0 , 10),
'parentId'=>$v['parentId'],
'payMonth'=>$v['payMonth'],
'plus'=>$v['plus'],
'popId'=>$v['popId'],
'actualCommission'=>$v['skuList'][0]['actualCommission'],
'actualCosPrice'=>$v['skuList'][0]['actualCosPrice'],
'actualFee'=>$v['skuList'][0]['actualFee'],
'commissionRate'=>$v['skuList'][0]['commissionRate'],
'estimateCommission'=>$v['skuList'][0]['estimateCommission'],
'estimateCosPrice'=>$v['skuList'][0]['estimateCosPrice'],
'estimateFee'=>$v['skuList'][0]['estimateFee'],
'finalRate'=>$v['skuList'][0]['finalRate'],
'firstLevel'=>$v['skuList'][0]['firstLevel'],
'frozenSkuNum'=>$v['skuList'][0]['frozenSkuNum'],
'payPrice'=>$v['skuList'][0]['payPrice'],
'pid'=>$v['skuList'][0]['pid'],
'price'=>$v['skuList'][0]['price'],
'secondLevel'=>$v['skuList'][0]['secondLevel'],
'siteId'=>$v['skuList'][0]['siteId'],
'skuId'=>$v['skuList'][0]['skuId'],
'skuName'=>$v['skuList'][0]['skuName'],
'skuNum'=>$v['skuList'][0]['skuNum'],
'skuReturnNum'=>$v['skuList'][0]['skuReturnNum'],
'spId'=>$v['skuList'][0]['spId'],
'subSideRate'=>$v['skuList'][0]['subSideRate'],
'subUnionId'=>$v['skuList'][0]['subUnionId'],
'subsidyRate'=>$v['skuList'][0]['subsidyRate'],
'thirdLevel'=>$v['skuList'][0]['thirdLevel'],
'traceType'=>$v['skuList'][0]['traceType'],
'unionAlias'=>$v['skuList'][0]['unionAlias'],
'unionTrafficGroup'=>$v['skuList'][0]['unionTrafficGroup'],
'unionTag'=>$v['skuList'][0]['unionTag'],
'validCode'=>$v['skuList'][0]['validCode'],
'unionId'=>$v['unionId'],
'unionUserName'=>$v['unionUserName'],
'createtime'=>time()
);
//print_r($data);
//exit;
/*訂單入庫開始*/
$ord=pdo_fetchall ( 'select * from ' . tablename ( $this->modulename . "_jdorder" ) . " where weid='{$_W['uniacid']}' and orderId='{$v['orderId']}'" );
if(empty($ord)){
if(!empty($data['orderId'])){
//插入數據
$a=pdo_insert ($this->modulename . "_jdorder", $data );
$count++;
}
}else{
if(!empty($v['orderId'])){
//更新數據
$b=pdo_update($this->modulename . "_jdorder",$data, array ('orderId' =>$v['orderId'],'weid'=>$_W['uniacid']));
$count++;
}
}
/*訂單入庫結束*/
}
}
/*獲取京東訂單并入庫結束*/
$progress++;//進度加1
}
$thisEndTime=date("Y年m月d日H時",strtotime($progressTime));
//計算同步進度百分比
$percent=round(($progress/$allHour)*100,2);
if($percent>100) $percent=100;
//計算本輪同步成功的總數
$allcount+=$count;
//判斷是否同步完成所有任務
if($progress<$allHour){
$message=($count>0)? "成功同步".$count."個京東訂單(進度:".$percent."% 時間段:".$thisStartTime."-".$thisEndTime.")" : "同步京東訂單成功(進度:".$percent."% 時間段:".$thisStartTime."-".$thisEndTime.")";
$return['timetaskdata'] = array('param' => 'progress=' . $progress.'&allcount='.$allcount, 'sleep' => $sleep);//返回回傳參數
}else{
$message=$startTime."到".$endTime."共".$day."天的京東訂單同步完畢,累計獲取".$allcount."個訂單!";
}
returnExit($return, 1, $message);
/****************京東訂單同步結束****************/
}
//【拼多多訂單同步】
elseif ($op == "pddorder") {
/****************拼多多訂單同步開始****************/
//【接收參數】
$start = empty($_GPC['start']) ? 0 : trim($_GPC['start']);//開始天數(默認為0,即從當天開始)
$day = empty($_GPC['day']) ? 1 : trim($_GPC['day']);//要同步的天數(默認同步1天)
$page=empty($_GPC['page']) ? 1 : trim($_GPC['page']);//同步頁碼進度參數(默認從1開始,程序自動處理,請勿手工傳入此參數)
$allcount=empty($_GPC['allcount']) ? 0 : trim($_GPC['allcount']);//記錄獲取訂單總數的參數(默認從0開始,程序自動處理,請勿手工傳入此參數)
$sleep=empty($_GPC['sleep']) ? 1 : trim($_GPC['sleep']);//執行完當前頁后執行下一頁的間隔時間
//【計算相關時間】
$startTime=date("Y-m-d H:i:s",strtotime("-".$start." day"));//計算開始時間
$endTime=date("Y-m-d H:i:s",strtotime("-".$day." day", strtotime($startTime)));//計算結束時間(strtotime可以接受第二個參數,類型timestamp,為指定日期)
//echo '開始時間:'.$startTime.' 結束時間:'.$endTime;
//exit;
//【引用拼多多api文件】
$pddsdkfilename=IA_ROOT . "/addons/tiger_newhu/inc/sdk/tbk/pdd.php";
if (file_exists($pddsdkfilename) == false) returnExit($return, 0, '你的淘客系統缺少:'.$jdsdkfilename.'文件');//判斷文件是否存在
include $pddsdkfilename;
//【讀取拼多多相關配置】
$pddset=pdo_fetch("select * from ".tablename('tuike_pdd_set')." where weid='{$_W['uniacid']}'");
$owner_name=$pddset['ddjbbuid'];
if(empty($pddset)) returnExit($return, 0, '讀取拼多多模塊配置失敗');
$count=0;
//【通過API接口獲取訂單數據】
$start_time=strtotime($endTime);
$end_time=strtotime($startTime);
$res=pddtgworder1($owner_name,$page,$start_time,$end_time,$p_id);
//判斷是否出錯
if(!empty($orderlist['error_response']['error_msg'])){
returnExit($return, 1, $orderlist['error_response']['error_msg']);
}
$orderlist=$res['order_list_get_response']['order_list'];
//遍歷獲取到的數據
foreach($orderlist as $k=>$v){
$row = pdo_fetch("SELECT * FROM " . tablename($this->modulename.'_pddorder') . " WHERE weid='{$_W['uniacid']}' and order_sn='{$v['order_sn']}'");
$data=array(
"weid"=>$_W['uniacid'],
"order_sn" =>$v['order_sn'],
"goods_id" => $v['goods_id'],
"goods_name" => $v['goods_name'],
"goods_thumbnail_url" => $v['goods_thumbnail_url'],
"goods_quantity" => $v['goods_quantity'],
"goods_price" => $v['goods_price']/100,
"order_amount" => $v['order_amount']/100,
"order_create_time" => $v['order_create_time'],
"order_settle_time" => $v['order_settle_time'],
"order_verify_time" => $v['order_verify_time'],
"order_receive_time" => $v['order_receive_time'],
"order_pay_time" => $v['order_pay_time'],
"promotion_rate" => $v['promotion_rate']/10,
"promotion_amount" => $v['promotion_amount']/100,
"batch_no" => $v['batch_no'],
"order_status" =>$v['order_status'],
"order_status_desc" => $v['order_status_desc'],
"verify_time" => $v['verify_time'],
"order_group_success_time" => $v['order_group_success_time'],
"order_modify_at" => $v['order_modify_at'],
"status" => $v['status'],
"type" => $v['type'],
"group_id" => $v['group_id'],
"auth_duo_id" => $v['auth_duo_id'],
"custom_parameters" => $v['custom_parameters'],
"p_id" => $v['p_id'],
'createtime'=>TIMESTAMP,//最后修改時間
);
if (!empty($row)){
pdo_update($this->modulename."_pddorder", $data, array('order_sn' => $v['order_sn'],'weid'=>$_W['uniacid']));
//echo "更新訂單:".$data['order_sn']."成功<br>";
}else{
pdo_insert($this->modulename."_pddorder", $data);
//echo "新訂單入庫:".$data['order_sn']."成功<br>";
}
$count++;
}
//計算本輪同步成功的總數
$allcount+=$count;
//判斷是否獲取完畢
if(!empty($orderlist)){
$message=($count>0)? "同步拼多多第".$page."頁訂單成功(本次獲取".$count."個)" : "同步拼多多第".$page."頁訂單成功!";
$return['timetaskdata'] = array('param' => 'page=' . ($page+1).'&allcount='.$allcount, 'sleep' => $sleep);//返回回傳參數
}else{
$message=$startTime."到".$endTime."共".$day."天的拼多多訂單同步完畢,累計獲取".$allcount."個訂單!";
}
//輸出結果并退出程序
returnExit($return, 1, $message);
/****************拼多多訂單同步結束****************/
}
//【同步老虎新版代理中心三合一傭金】
elseif ($op == "newagent3") {
/****************同步老虎新版代理中心三合一傭金開始****************/
$page = max(1, intval($_GPC['page']));//獲取頁碼參數
$taskid=max(1, intval($_GPC['taskid']));//獲取任務子id參數參數
$allcount=empty($_GPC['allcount']) ? 0 : trim($_GPC['allcount']);//記錄獲取訂單總數的參數(默認從0開始,程序自動處理,請勿手工傳入此參數)
$sleep=empty($_GPC['sleep']) ? 2 : trim($_GPC['sleep']);//執行完當前頁后執行下一頁的間隔時間
$pagesize = 1;//每頁顯示1條
$total = pdo_fetchcolumn("SELECT COUNT(*) FROM " . tablename("tiger_newhu_share")." where weid='{$_W['uniacid']}' and dltype=1");//讀取代理總數
$allpage=ceil($total/$pagesize)+1;//計算總頁數
//讀取當前頁的代理數據
$data = pdo_fetch("select id from ".tablename("tiger_newhu_share")." where weid='{$_W['uniacid']}' and dltype=1 order by id LIMIT " . ($page - 1) * $pagesize . ",{$pagesize}");
//判斷代理ID是否為空
if (empty($data['id'])){
//結束任務
$message="累計".$total."個代理傭金更新完畢!";
//輸出結果并退出程序
//returnExit($return, 1, $message);
}
$agentid=$data['id'];//代理ID
//根據任務ID配置對應的URL
$url_do="";
$url_doname="";
$url_day="";
$url_dayname="";
switch ($taskid)
{
case 1:
$url_do="tbyj";
$url_doname="淘寶";
$url_day="1";
$url_dayname="今天";
break;
case 2:
$url_do="pddyj";
$url_doname="拼多多";
$url_day="1";
$url_dayname="今天";
break;
case 3:
$url_do="jdyj";
$url_doname="京東";
$url_day="1";
$url_dayname="今天";
break;
case 4:
$url_do="tbyj";
$url_doname="淘寶";
$url_day="2";
$url_dayname="昨天";
break;
case 5:
$url_do="pddyj";
$url_doname="拼多多";
$url_day="2";
$url_dayname="昨天";
break;
case 6:
$url_do="jdyj";
$url_doname="拼多多";
$url_day="2";
$url_dayname="昨天";
break;
case 7:
$url_do="tbyj";
$url_doname="淘寶";
$url_day="3";
$url_dayname="本月";
break;
case 8:
$url_do="pddyj";
$url_doname="拼多多";
$url_day="3";
$url_dayname="本月";
break;
case 9:
$url_do="jdyj";
$url_day="3";
$url_dayname="本月";
break;
case 10:
$url_do="tbyj";
$url_doname="淘寶";
$url_day="4";
$url_dayname="上月";
break;
case 11:
$url_do="pddyj";
$url_doname="拼多多";
$url_day="4";
$url_dayname="上月";
break;
case 12:
$url_do="jdyj";
$url_doname="京東";
$url_day="4";
$url_dayname="上月";
break;
default:
$url_do="tbyj";
$url_doname="淘寶";
$url_day="1";
$url_dayname="今天";
}
$url=$_W['siteroot']."/app/index.php?i=".$_W['uniacid']."&c=entry&do=".$url_do."&m=tiger_wxdaili&uid=".$agentid."&day=".$url_day;
$url=str_replace("//","/",$url);
//$url="https://fanyi.baidu.com/";
//echo $url;
//訪問任務URL
if (function_exists('curl_init')){
$returnHtml=curl_file_get_contents($url);//如果服務器支持curl,優先使用curl獲取數據
}else{
$returnHtml=file_get_contents($url);
}
//讀取訪問結果
$returnState=true;
if (strpos($returnHtml,',"weid":') === false) {
$returnState=false;
} else {
$returnArr = json_decode($returnHtml, true);
$returnMsg=$returnArr[0];
}
//計算同步進度百分比
$percent=round((($page*12+$taskid)/($allpage*12))*100,3);
//判斷是否同步完成所有任務
if($page<$allpage){
if($returnState){
$message="更新成功(進度:".$percent."%,頁碼:".$page."/".$allpage.")".$returnMsg;
}else
{
$message="更新".$url_dayname.$url_doname."傭金失敗(進度:".$percent."%,頁碼:".$page."/".$allpage.",代理ID:".$agentid.",請求URL:".$url.")";
}
$taskid++;//子任務ID加1
//如果任務ID大于12(每個代理要執行12次同步任務)
if($taskid>12)
{
$taskid=1;//初始化任務ID
$page++;//頁碼加1
}
$return['timetaskdata'] = array('param' => 'page=' . $page.'&taskid='.$taskid, 'sleep' => $sleep);//返回回傳參數
}else{
$message="累計".$total."個代理傭金更新完畢!";
}
//輸出結果并退出程序
returnExit($return, 1, $message);
/****************同步老虎新版代理中心三合一傭金開始****************/
}
//【不帶返回參數測試】
elseif ($op == "test1") {
//1、執行業務函數
//2、返回結果
returnExit($return, 1, '定時任務測試1執行成功');
}
//【帶傳入參數、帶回傳參數測試】
elseif ($op == 'test2') {
//1、【接收參數】
$day = empty($_GPC['day']) ? 1 : $_GPC['day'];//接配置參數(post參數,即軟件定時任務里面設置的任務參數)
$page = empty($_GPC['page']) ? 1 : $_GPC['page'];//接收頁碼參數(回傳參數)
//2、【執行業務函數】
//3、【判斷執行結果,并構造回傳參數】
//判斷是否執行到最后一頁(我這里假設最多只有10頁,具體情況根據業務代碼判斷是否最后一頁)
if ($page >= 10) {
//執行到最后一頁,不回傳參數即可
$message = '本輪所有任務執行完畢';//返回信息
} else {
$page++;//頁碼加1
//追加回傳參數 param 為下次要回傳的參數字段,支持任意參數構造(命名注意不要和系統已有的post參數沖突); sleep 是控制訪問下一頁的間隔時間參數,單位為秒
$return['timetaskdata'] = array('param' => 'test1=111&test2=222&page=' . $page, 'sleep' => 1);//構造回傳參數(test1=111&test2=222 為其他測試參數,可以刪除)
$message = '傳入的day參數值為:' . $day . ',回傳的page參數為:' . $page;//返回信息
}
//3、【返回結果】
returnExit($return, 1, $message);
} else {
returnExit($return, 0, '任務標識不正確');
}
}
else
{
returnExit($return,0,'未傳入有效API參數');//code值設置為1,表示成功
}
// +----------------------------------------
// | 訂單入庫相關函數
// +----------------------------------------
//格式化訂單數據
function orderFormat($data,$field){
global $_W;
//將數據存儲到符合當前系統的新數組
$newData=array(
'weid'=>$_W['uniacid'],
'addtime'=>strtotime($data['創建時間']),//創建時間
'orderid'=>$data['訂單編號'],//訂單編號
'numid'=>$data['商品ID'],//商品ID
'shopname'=>$data['所屬店鋪'],//店鋪名稱
'title'=>$data['商品信息'],//商品標題
'orderzt'=>$data['訂單狀態'],//訂單狀態
'srbl'=>$data['收入比率'],//收入比例
'fcbl'=>$data['分成比率'],//分成比例
'fkprice'=>$data['付款金額'],//付款金額
'xgyg'=>$data['效果預估'],//效果預估
'jstime'=>strtotime($data['結算時間']),//結算時間
'pt'=>$data['成交平臺'],//平臺
'mtid'=>$data['來源媒體ID'],//媒體ID
'mttitle'=>$data['來源媒體名稱'],//媒體名稱
//'tgwid'=>$data['廣告位ID'],//推廣位ID
//'tgwtitle'=>$data['廣告位名稱'],//推廣位名稱
'relation_id'=>$data['渠道關系ID'],//渠道ID
'tbsbuid6'=>substr($data['訂單編號'],-6),//訂單后6位
'createtime'=>TIMESTAMP,
);
//過濾空推廣位數據
if(!empty($data['廣告位ID'])) $newData['tgwid']=$data['廣告位ID'];
if(!empty($data['廣告位名稱'])) $newData['tgwtitle']=$data['廣告位名稱'];
//處理維權訂單
if(strpos($data['維權狀態'],"維權創建") !== false || strpos($data['維權狀態'],"等待處理") !== false) {
$newData['orderzt']='訂單付款';//強制將訂單狀態設置為:訂單付款
$newData['wq']=1;//標記為維權
}
elseif(strpos($data['維權狀態'],"維權成功") !== false) {
$newData['orderzt']='訂單失效';//強制將訂單狀態設置為:訂單失效
$newData['wq']=1;//標記為維權
}
elseif(strpos($str,"維權失敗") !== false) {
//$data['訂單狀態']='訂單結算';//強制將訂單狀態設置為:訂單結算(因為訂單也有可能本身是其他狀態,所以此處不做處理即可)
$newData['wq']=0;//取消維權狀態
}
//過濾數據庫不支持的字段(因為各個版本的數據庫字段有差異,所以要處理下)
foreach($newData as $key=>$value){
if(isset($field[$key]))
{
$saveData[$key]=$value;
}
}
return $saveData;
}
//將訂單表orderid索引改為普通索引
function orderIndex($table){
$allIndex=pdo_fetchall("show index from".$table);
//print_r($allIndex);
foreach($allIndex as $index){
//判斷orderid是否唯一索引
if($index['Key_name']=='orderid' && $index['Non_unique']==0){
//將索引修改為普通索引
$ree=pdo_query("ALTER TABLE ".$table." DROP INDEX `orderid`, ADD INDEX `orderid` (`weid`, `orderid`, `numid`) USING BTREE;");
//echo '修改索引';
return;
}
}
//echo '未修改索引';
}
// +----------------------------------------
// | 淘寶商品采集相關函數
// +----------------------------------------
//處理商品分類
function goodsCat($table,$softCat){
global $_W;
//查詢數據庫的分類名和對應ID
$allCat=pdo_fetchall('select title,id from '.$table." where weid='{$_W['uniacid']}'");
//print_r($allCat);
foreach($allCat as $cat){
$cat['title']=str_replace("其他","其它",$cat['title']);//兼容分類名字為“其他”時的情況
$dbCat[$cat['title']]=$cat['id'];
}
//將程序商品分類關系轉化成對應的id
foreach($softCat as $key=>$value){
$value=str_replace("其他","其它",$value);//兼容分類名字為“其他”時的情況
if (isset($dbCat[$value])) $newCat[$key]=$dbCat[$value];
}
//print_r($softCat);
return $newCat;
}
//格式化商品數據
function goodsFormat($cat,$data,$field){
global $_W;
//處理采集來源
if($data['采集來源']=='大淘客'){
$data['采集來源']=1;
}elseif($data['采集來源']=='好單庫'){
$data['采集來源']=2;
}elseif($data['采集來源']=='輕淘客'){
$data['采集來源']=4;
}elseif($data['采集來源']=='一手單'){
$data['采集來源']=5;
}elseif($data['采集來源']=='QQ群'){
$data['采集來源']=8;
}
//處理商品類目
if (empty($cat[$data['商品類目']])){
$data['商品類目']=0;
}else{
$data['商品類目']=$cat[$data['商品類目']];
}
$newData=array(
'weid'=>$_W['uniacid'],//公眾號ID
'zy'=>$data['采集來源'],//1大淘客 2互力 3鵲橋庫
'itemid'=>$data['商品ID'],//商品id
'itemtitle'=>$data['商品標題'],//商品標題
'itemshorttitle'=>$data['商品短標題'],//商品短標題
'itemdesc'=>$data['商品文案'],//商品文案
'itemprice'=>$data['商品原價'],//商品原價
'itemsale'=>$data['商品銷量'],//商品銷量
'itemsale2'=>$data['商品兩小時銷量'],//商品最近2小時銷量
//'conversion_ratio'=>$data[''],//優惠券轉化率
'itempic'=>$data['商品圖片'],//商品主圖
'fqcat'=>$data['商品類目'],//商品類目
'itemendprice'=>$data['商品券后價'],//商品券后價
'shoptype'=>$data['店鋪類型'],//店鋪類型 天貓(B) C店(C) 企業店鋪
'userid'=>$data['賣家ID'],//賣家ID
'sellernick'=>$data['賣家昵稱'],//賣家昵稱
'tktype'=>$data['傭金計劃'],//傭金方式(鵲橋活動 定向計劃 通用計劃 隱藏計劃 營銷計劃)
'tkrates'=>$data['傭金比例'],//傭金比例
//'ctrates'=>$data[''],//村淘傭金比例
'cuntao'=>$data['是否村淘'],//是否村淘(1是)
'tkmoney'=>$data['預計傭金'],//預計可得(寶貝價格*傭金比率/100)
'tkurl'=>$data['定向計劃鏈接'],//定向計劃鏈接
'planlink'=>$data['營銷計劃鏈接'],//營銷計劃鏈接
'quan_id'=>$data['優惠券ID'],//優惠券ID
'couponurl'=>$data['優惠券鏈接'],//優惠券鏈接
'couponmoney'=>$data['優惠券金額'],//優惠券面額
'couponsurplus'=>$data['優惠券剩余量'],//優惠券剩余數量
'couponreceive'=>$data['優惠券領取量'],//優惠券領取數量
//'couponreceive2'=>$data[''],//2小時內優惠券領取量
'couponnum'=>$data['優惠券總數量'],//優惠券總數量
'couponexplain'=>$data['優惠券使用條件'],//優惠券說明 使用條件
'couponstarttime'=>$data['優惠券開始時間'],//優惠券開始時間
'couponendtime'=>$data['優惠券結束時間'],//優惠券結束時間
'starttime'=>$data['最后修改時間'],//發布時間
'isquality'=>$data['是否優選'],//是否優選 1為是
'item_status'=>$data['失效狀態'],//產品狀態:0為正常
//'report_status'=>$data[''],//舉報處理情況(1為待處理;2為忽略;3為下架)
'is_brand'=>$data['是否品牌商品'],//是否為品牌產品:1為是
'is_live'=>$data['是否直播商品'],//是否為直播產品:1為是
'videoid'=>$data['商品視頻ID'],//商品視頻id
'activity_type'=>$data['活動類型'],//活動類型(普通活動、聚劃算、淘搶購)
'createtime'=>TIMESTAMP,//最后修改時間
//'tj'=>$data[''],//1 秒殺 2 叮咚搶
//'zt'=>$data[''],//專題
//'test8888'=>'66666666',//干擾測試
//'zd'=>$data[''],//0不置頂 1置頂
//'qf'=>$data[''],//0不群發 1群發庫
);
//過濾數據庫不支持的字段(因為各個版本的數據庫字段有差異,所以要處理下)
foreach($newData as $key=>$value){
if(isset($field[$key]))
{
$saveData[$key]=$value;
}
}
return $saveData;
}
// +----------------------------------------
// | 【拼多多】相關函數
// +----------------------------------------
//格式化拼多多訂單數據
function orderFormatPdd($data)
{
global $_W;
//確保uid值不小于0
//if($data['customParameters'] < 0) $data['customParameters']=0;
//去除傭金比例中的百分號
$data['傭金比例']=str_replace("%", "", $data['傭金比例']);
$newData=array(
"weid"=>$_W['uniacid'],
"order_sn" =>$data['訂單編號'],
"goods_id" => $data['商品ID'],
"goods_name" => trimExcessChar($data['商品信息']),
"goods_thumbnail_url" => $data['商品圖片'],
"goods_quantity" => $data['商品數'],
"goods_price" => $data['商品價格'],
"order_amount" => $data['訂單金額'],
"order_create_time" => strtotime($data['創建時間']),
"order_settle_time" => strtotime($data['結算時間']),
"order_verify_time" => strtotime($data['審核時間']),
"order_receive_time" => strtotime($data['收貨時間']),
"order_pay_time" => strtotime($data['支付時間']),
"promotion_rate" => str_replace("%", "", $data['傭金比例']),
"promotion_amount" => $data['預估傭金收入'],
"batch_no" => $data['batchNo'],
"order_status" => $data['訂單狀態ID'],
"order_status_desc" => $data['訂單狀態描述'],
"verify_time" => strtotime($data['審核時間']),
"order_group_success_time" => strtotime($data['拼團成功時間']),
"order_modify_at" => strtotime($data['最后更新時間']),
//"status" => $v['status'],
"type" => $data['推廣方式ID'],
"group_id" => $data['groupId'],
"auth_duo_id" => $data['duoId'],
"custom_parameters" => $data['customParameters'],
"p_id" => $data['pid'],
'createtime'=>TIMESTAMP,//最后修改時間
);
return $newData;
}
// +----------------------------------------
// | 其他函數
// +----------------------------------------
//返回json信息并退出
function returnExit($return,$code,$message,$data=''){
$return['code']=$code;
$return['message']=urlencode($message);
if(!empty($data)) $return['data']=$data;
exit(urldecode(json_encode($return)));
}
//構造返回狀態結果字符串
function resultState($result,$id,$v){
if (!empty($result)) $result.='|';
$result.=$id.':'.$v;
return $result;
}
//獲取數據庫表的所有字段
function tableField($table){
$sqlColumns=pdo_fetchall('SHOW COLUMNS FROM '.$table);//查詢表的所有字段
//處理查詢結果
foreach($sqlColumns as $value)
{
if(isset($value['Field']) && isset($value['Type'])){
$sqlField[$value['Field']]=$value['Type'];
}
}
return $sqlField;
}
//去除多余的字符
function trimExcessChar($str)
{
$str = trim($str);
$str = str_replace(";", "", $str);
$str = str_replace('"', "", $str);
$str = str_replace('"', "", $str);
$str = str_replace('"', "", $str);
$str = str_replace(PHP_EOL, '', $str);
return $str;
}
//使用curl獲取頁面內容
function curl_file_get_contents($url){
//判斷是否重定向,如果重定向,就獲取重定向后的真實地址
for ($i=1; $i<=10; $i++)
{
$headers = curl_file_get_headers($url);
$url=$headers["url"];
if($headers["http_code"]<>'302' and $headers["http_code"]<>'301') break;
}
//開始獲取內容
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_USERAGENT, _USERAGENT_);
curl_setopt($ch, CURLOPT_REFERER,_REFERER_);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
//使用curl獲取http頭
function curl_file_get_headers($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$data = curl_exec($ch);
$Headers = curl_getinfo($ch);
curl_close($ch);
return $Headers;
}
```
- 最新公告
- 軟件介紹
- 初次使用
- 購買授權
- 基礎配置
- 接口配置
- 牛貝淘寶客系統接口配置
- 老虎淘寶客系統接口配置
- 程序俠淘寶客系統接口配置
- 好京客四合一淘客系統接口配置
- 楊他他淘寶客系統接口配置
- 唐格時創淘客系統接口配置
- 全局配置
- 第1章 淘客訂單同步
- 采集方案【推薦方案】
- 訂單采集(基礎)
- 訂單采集(工具API)
- 訂單采集(渠道API)
- 訂單入庫
- 第2章 淘客商品采集
- 商品采集(大淘客)
- 商品采集(好單庫)
- 商品采集(輕淘客)
- 商品入庫
- 商品管理
- 商品分類綁定
- 老虎淘客系統分類綁定
- 牛貝淘寶客系統分類綁定
- 程序俠淘客系統分類綁定
- 第3章 拼多多
- 拼多多API設置教程
- 拼多多訂單采集使用教程
- 拼多多訂單入庫使用教程
- 第4章 京東
- 創建查看京東APPKEY
- 京東訂單采集使用教程
- 京東訂單入庫使用教程
- 第5章 唯品會
- 唯品會配置教程
- 唯品會訂單采集使用教程
- 唯品會訂單入庫使用教程
- 第6章 蘑菇街
- 蘑菇街配置教程
- 蘑菇街訂單采集使用教程
- 蘑菇街訂單入庫使用教程
- 第7章 蘇寧
- 蘇寧API設置教程
- 蘇寧訂單采集使用教程
- 蘇寧訂單入庫使用教程
- 第8章 多麥
- 多麥API設置教程
- 多麥訂單采集使用教程
- 多麥訂單入庫使用教程
- 第9章 高級功能
- 萬能定時任務
- 【牛貝系統】萬能定時任務使用說明
- 【老虎系統】代理傭金更新
- 自動審核代理
- 第10章 常見問題
- 程序無法登錄
- 阿里媽媽登陸相關問題
- 阿里旺旺安裝登錄教程
- 阿里媽媽賬號受限解決辦法
- 清理服務器日志
- 120元(1年)掛機服務器購買教程
- 推廣位相關問題
- 渠道相關問題
- 過期歷史教程
- 阿里媽媽登陸
- 阿里媽媽登錄器(Chrome版)使用教程
- 阿里媽媽登錄器(Chrome版)安裝教程
- 批量創建推廣位
- 開發對接文檔
- 18助手對接必看說明
- 18淘客助手調試模式
- 18助手接口開發規范
- 入庫POST數據說明
- 淘客訂單POST數據說明
- 淘客商品POST數據說明
- 京東訂單POST數據說明
- 拼多多訂單POST數據說明
- 蘇寧訂單POST數據說明
- 唯品會訂單POST數據說明
- 多麥訂單POST數據說明
- 接口文件示例
- PHP接口文件示例(微擎)
- PHP接口文件示例(ThinkPHP)