Beispiel #1
0
 /**
  * 导入供应商信息的函数
  * 基于 PHPExcel.php
  * @return  $result   $result > 0 成功,否则失败
  */
 public function act_importSave()
 {
     $uploadfile = date("Y") . date("m") . date("d") . rand(1, 3009) . ".xls";
     if (!move_uploaded_file($_FILES['upfile']['tmp_name'], WEB_PATH . 'upload_datas/' . $uploadfile)) {
         return false;
     }
     $fileName = WEB_PATH . 'upload_datas/' . $uploadfile;
     $filePath = $fileName;
     $PHPExcel = new PHPExcel();
     $PHPReader = new PHPExcel_Reader_Excel2007();
     if (!$PHPReader->canRead($filePath)) {
         $PHPReader = new PHPExcel_Reader_Excel5();
         if (!$PHPReader->canRead($filePath)) {
             echo 'no Excel';
             return;
         }
     }
     $PHPExcel = $PHPReader->load($filePath);
     $currentSheet = $PHPExcel->getSheet(0);
     /**取得一共有多少列*/
     $c = 2;
     while (true) {
         $aa = 'A' . $c;
         $bb = 'B' . $c;
         $cc = 'C' . $c;
         $dd = 'D' . $c;
         $ee = 'E' . $c;
         $ff = 'F' . $c;
         $gg = 'G' . $c;
         $hh = 'H' . $c;
         $ii = 'I' . $c;
         $jj = 'J' . $c;
         $kk = 'K' . $c;
         $ll = 'L' . $c;
         $mm = 'M' . $c;
         $nn = 'N' . $c;
         $oo = 'O' . $c;
         $pp = 'P' . $c;
         $qq = 'Q' . $c;
         $rr = 'R' . $c;
         $ss = 'S' . $c;
         $tt = 'T' . $c;
         $uu = 'U' . $c;
         $vv = 'V' . $c;
         $ww = 'W' . $c;
         $zz = 'Z' . $c;
         $xx = 'X' . $c;
         $c++;
         $company_name = str_rep(trim($currentSheet->getCell($aa)->getValue()));
         $username = str_rep(trim($currentSheet->getCell($bb)->getValue()));
         $category_name = str_rep(trim($currentSheet->getCell($cc)->getValue()));
         $tel = str_rep(trim($currentSheet->getCell($dd)->getValue()));
         $phone = str_rep(trim($currentSheet->getCell($ee)->getValue()));
         $fax = str_rep(trim($currentSheet->getCell($ff)->getValue()));
         $QQ = str_rep(trim($currentSheet->getCell($gg)->getValue()));
         $e_mail = str_rep(trim($currentSheet->getCell($hh)->getValue()));
         $AliIM = str_rep(trim($currentSheet->getCell($ii)->getValue()));
         $shoplink = str_rep(trim($currentSheet->getCell($jj)->getValue()));
         $city = str_rep(trim($currentSheet->getCell($kk)->getValue()));
         $address = str_rep(trim($currentSheet->getCell($ll)->getValue()));
         $status = str_rep(trim($currentSheet->getCell($mm)->getValue()));
         $email_status = str_rep(trim($currentSheet->getCell($nn)->getValue()));
         $sms_status = str_rep(trim($currentSheet->getCell($oo)->getValue()));
         $purchaser = str_rep(trim($currentSheet->getCell($pp)->getValue()));
         $company = str_rep(trim($currentSheet->getCell($qq)->getValue()));
         $note = str_rep(trim($currentSheet->getCell($rr)->getValue()));
         $partnerStr = "单位名称:{$company_name}, 姓名:{$username}, 电话:{$tel} ... ";
         //var_dump(self::check_input($company_name));
         //exit;
         if ($company_name != '' && !self::check_input($company_name)) {
             $errInfo = " -[<font color='#FF0000'>导入失败, '单位名称':'{$company_name}' 填写有误!" . $partnerStr . "</font>]";
             echo $errInfo . '<br>';
             continue;
         }
         if ($username != '' && !self::check_input($username)) {
             $errInfo = " -[<font color='#FF0000'>导入失败, '姓名':'{$username}' 填写有误!" . $partnerStr . "</font>]";
             echo $errInfo . '<br>';
             continue;
         }
         if ($category_name != '' && !self::check_input($category_name)) {
             $errInfo = " -[<font color='#FF0000'>导入失败, '单位类型':'{$category_name}' 填写有误!" . $partnerStr . "</font>]";
             echo $errInfo . '<br>';
             continue;
         }
         if ($tel != '' && !self::isTel($tel)) {
             $errInfo = " -[<font color='#FF0000'>导入失败, '电话号码':'{$tel}' 填写有误!" . $partnerStr . "</font>]";
             echo $errInfo . '<br>';
             continue;
         }
         if ($phone != '' && !self::isMobile($phone)) {
             $errInfo = " -[<font color='#FF0000'>导入失败, '手机号码':'{$phone}' 填写有误!" . $partnerStr . "</font>]";
             echo $errInfo . '<br>';
             continue;
         }
         if ($fax != '' && !self::isPhone($fax)) {
             $errInfo = " -[<font color='#FF0000'>导入失败, '传真号码':'{$fax}' 填写有误!" . $partnerStr . "</font>]";
             echo $errInfo . '<br>';
             continue;
         }
         if ($QQ != '' && !self::isQQ($QQ)) {
             $errInfo = " -[<font color='#FF0000'>导入失败, 'QQ号码':'{$QQ}' 填写有误!" . $partnerStr . "</font>]";
             echo $errInfo . '<br>';
             continue;
         }
         if ($e_mail != '' && !self::isEmail($e_mail)) {
             $errInfo = " -[<font color='#FF0000'>导入失败, '邮件':'{$e_mail}' 填写有误!" . $partnerStr . "</font>]";
             echo $errInfo . '<br>';
             continue;
         }
         if ($AliIM != '' && !self::isNormalCharacter($AliIM)) {
             $errInfo = " -[<font color='#FF0000'>导入失败, '阿里旺旺':'{$AliIM}' 填写有误!" . $partnerStr . "</font>]";
             echo $errInfo . '<br>';
             continue;
         }
         if ($city != '' && !self::check_input($city)) {
             $errInfo = " -[<font color='#FF0000'>导入失败, '所属城市':'{$city}' 填写有误!" . $partnerStr . "</font>]";
             echo $errInfo . '<br>';
             continue;
         }
         if ($address != '' && !self::check_input($address)) {
             $errInfo = " -[<font color='#FF0000'>导入失败, '地址':'{$address}' 填写有误!" . $partnerStr . "</font>]";
             echo $errInfo . '<br>';
             continue;
         }
         $status = $status == '黑名单' ? 0 : $status == '正常' ? 1 : 2;
         if ($status < 0 || $status > 2) {
             $errInfo = " -[<font color='#FF0000'>导入失败, '状态'填写有误!" . $partnerStr . "</font>]";
             echo $errInfo . '<br>';
             continue;
         }
         $email_status = $email_status == '是' ? 1 : 0;
         if ($email_status != 0 && $email_status != 1) {
             $errInfo = " -[<font color='#FF0000'>导入失败, '支持邮件'填写有误!" . $partnerStr . "</font>]";
             echo $errInfo . '<br>';
             continue;
         }
         $sms_status = $sms_status == '是' ? 1 : 0;
         if ($sms_status != 0 && $sms_status != 1) {
             $errInfo = " -[<font color='#FF0000'>导入失败, '支持短信'填写有误!" . $partnerStr . "</font>]";
             echo $errInfo . '<br>';
             continue;
         }
         if ($company_name == '') {
             break;
         }
         //$c++;
         //To get type_id
         $where = " AND `category_name` = '{$category_name}' ";
         $field = " `id` ";
         $resultType = PartnerTypeAct::act_getPartnerTypeList($where, $field);
         $type_id = $resultType[0]['id'];
         if (!isset($type_id)) {
             $errInfo = " -[<font color='#FF0000'>导入失败, 单位类型 '{$category_name}' 不存在!" . $partnerStr . "</font>]";
             continue;
         }
         //To get purchaser_id
         $where = " AND `global_user_name` = '{$purchaser}' ";
         $field = " `global_user_id` ";
         $resultPurchase = self::act_getPurchaserList($where, $field);
         $purchaser_id = $resultPurchase[0]['global_user_id'];
         if (!isset($purchaser_id)) {
             $errInfo = " -[<font color='#FF0000'>导入失败, 采购员 '{$purchaser}' 不存在!" . $partnerStr . "</font>]";
             echo $errInfo . '<br>';
             continue;
         }
         //To get company_id
         $where = " AND `company` = '{$company}' ";
         $field = " `id` ";
         $resultCompany = self::act_getPartnerCompany($where, $field);
         //print_r($resultCompany);
         $company_id = $resultCompany[0]['id'];
         if (!isset($company_id)) {
             $errInfo = " -[<font color='#FF0000'>导入失败, 关联公司 '{$company}' 不存在!" . $partnerStr . "</font>]";
             echo $errInfo . '<br>';
             continue;
         }
         $data = array('company_name' => $company_name, 'username' => $username, 'type_id' => $type_id, 'tel' => $tel, 'phone' => $phone, 'fax' => $fax, 'QQ' => $QQ, 'AliIM' => $AliIM, 'e_mail' => $e_mail, 'shoplink' => $shoplink, 'city' => $city, 'address' => $address, 'note' => $note, 'status' => $status, 'sms_status' => $sms_status, 'email_status' => $email_status, 'purchaseuser_id' => $purchaser_id, 'company_id' => $company_id);
         //print_r($data);
         $result = PartnerModel::insertRow($data);
         if ($result) {
             $errInfo = " -[<font color='#33CC33'>导入成功, " . $partnerStr . "</font>]";
         } else {
             $errMsg = PartnerModel::$errMsg;
             $errInfo = " -[<font color='#FF0000'>导入失败, " . $partnerStr . $errMsg . "</font>]";
         }
         echo $errInfo . '<br>';
     }
 }
Beispiel #2
0
    public function replyMessage($msid, $content, $mailsent)
    {
        //return FALSE;
        //return rand(0, 1) ? TRUE : FALSE;
        /*----- 全局变量 -----*/
        global $devID, $appID, $certID, $serverUrl, $siteID, $compatabilityLevel, $userToken;
        /* $v = array($devID, $appID, $certID, $serverUrl, $siteID,  $compatabilityLevel, $userToken);
           print_r($v);exit; */
        $compatabilityLevel = 657;
        /*----- 全局变量 -----*/
        /*----- 是否抄送到发送者 -----*/
        $copystatus = 'true';
        if ($mailsent == 1) {
            $copystatus = 'true';
        } else {
            $copystatus = 'false';
        }
        //var_dump($mailsent);exit;
        /*----- 是否抄送到发送者 -----*/
        /*----- 获取messagei信息 -----*/
        $verb = 'AddMemberMessageRTQ';
        $msg_obj = new messageModel();
        $msginof = $msg_obj->getMessageInfo(array($msid));
        //$msginof    = $msg_obj->getMessageInfoByMessageId($msid);
        if (empty($msginof)) {
            //该message信息不存在
            self::$errCode = '8001';
            self::$errMsg = 'message不存在';
            return FALSE;
        }
        $msginof = $msginof[0];
        //message信息数组
        $itemid = $msginof['itemid'];
        //itemid
        $message_id = $msginof['message_id'];
        //messageid
        $ExternalMessageID = $msginof['ExternalMessageID'];
        //扩展messageid
        $replyid = $message_id;
        if ($ExternalMessageID != '') {
            $replyid = $ExternalMessageID;
        }
        $sendid = $msginof['sendid'];
        $account = $msginof['ebay_account'];
        /*----- 获取messagei信息 -----*/
        /* $content = str_replace("&", "&amp;", $content);
           $content = str_replace("\\", "", $content); */
        $content = htmlspecialchars($content);
        //转义特殊字符
        $token = $userToken;
        //账号对应的token
        if (!isset($userToken) || strlen($userToken) == 0) {
            self::$errCode = 8002;
            self::$errMsg = 'token数据缺失!';
            self::$sender = $msginof['replyuser_id'];
            self::$sendMsg = 'token数据缺失! MSGID:' . $msid;
            return FALSE;
        }
        $status = "1";
        $requestXmlBody = '<?xml version="1.0" encoding="utf-8"?>
		<AddMemberMessageRTQRequest xmlns="urn:ebay:apis:eBLBaseComponents">
    		<ItemID>' . $itemid . '</ItemID>
    		<MemberMessage>
        		<Body>' . $content . '</Body>
        		<EmailCopyToSender>' . $mailsent . '</EmailCopyToSender>
        		<ParentMessageID>' . $replyid . '</ParentMessageID>
        		<RecipientID>' . $sendid . '</RecipientID>
    		</MemberMessage>
    		<RequesterCredentials>
    		  <eBayAuthToken>' . $token . '</eBayAuthToken>
		    </RequesterCredentials>
		</AddMemberMessageRTQRequest>';
        //echo $requestXmlBody;exit;
        /*----- 发送请求 -----*/
        $session = new eBaySession($token, $devID, $appID, $certID, $serverUrl, $compatabilityLevel, $siteID, $verb);
        $responseXml = $session->sendHttpRequest($requestXmlBody);
        //echo $responseXml;exit;
        if (stristr($responseXml, 'HTTP 404') || $responseXml == '' || $responseXml === FALSE) {
            self::$errCode = 8003;
            self::$errMsg = __FILE__ . '发送请求失败! in line ' . __LINE__ . ' response  --' . $responseXml . "\n";
            self::$sender = $msginof['replyuser_id'];
            self::$sendMsg = __FILE__ . '发送请求失败! in line ' . __LINE__ . 'MSGID:' . $msid . "\n";
            return FALSE;
        }
        /*----- 发送请求 -----*/
        $responseDoc = new DomDocument();
        $responseDoc->loadXML($responseXml);
        if ($responseDoc === FALSE) {
            //xml解析失败
            self::$errCode = 8004;
            self::$sender = $msginof['replyuser_id'];
            self::$errMsg = __METHOD__ . 'xml解析失败! in line ' . __LINE__ . ' response -- ' . $responseXml . "\n";
            self::$sendMsg = __METHOD__ . 'xml解析失败! in line ' . __LINE__ . 'MSGID: ' . $msid;
            return FALSE;
        }
        $root = $responseDoc->documentElement;
        $ack = $responseDoc->getElementsByTagName('Ack');
        $reack = $ack->item(0)->nodeValue;
        $content = str_rep($content);
        if ($reack == 'Success') {
            return TRUE;
        } else {
            self::$sender = $msginof['replyuser_id'];
            self::$errMsg = $requestXmlBody . '-----' . $responseXml . __LINE__ . "\n";
            $obj_return = simplexml_load_string($responseXml);
            if ($obj_return && isset($obj_return->Errors->LongMessage)) {
                self::$sendMsg = 'MSGID:' . $msid . '发送人:' . $sendid . ' ++++ 原因 :' . $obj_return->Errors->LongMessage;
            } else {
                self::$sendMsg = 'MSGID:' . $msid . '发送人:' . $sendid . ' ++++ ' . '原因未知';
            }
            return FALSE;
        }
    }
Beispiel #3
0
function GetSellerTransactions($ebay_starttime, $ebay_endtime, $ebay_account, $type, $id)
{
    global $api_gst, $oa, $user;
    global $dbConn, $mctime, $defaultstoreid;
    $pcount = 1;
    $errors = 1;
    do {
        echo "抓取....\t";
        $responseXml = $api_gst->request($ebay_starttime, $ebay_endtime, $pcount);
        if (empty($responseXml)) {
            echo "Return Empty...Sleep 10 seconds..";
            sleep(10);
            $hasmore = true;
            continue;
        }
        //网络出现代理Proxy error 脚本休眠20秒
        $poxy_error_p = '#Proxy\\s*Error#i';
        if (preg_match($poxy_error_p, $responseXml)) {
            echo "Proxy Error...Sleep 20 seconds..";
            sleep(20);
            $hasmore = true;
            continue;
        }
        echo "\n";
        $data = XML_unserialize($responseXml);
        $responseXml = null;
        unset($responseXml);
        $getorder = $data['GetSellerTransactionsResponse'];
        $data = null;
        unset($data);
        $TotalNumberOfPages = @$getorder['PaginationResult']['TotalNumberOfPages'];
        $TotalNumberOfEntries = @$getorder['PaginationResult']['TotalNumberOfEntries'];
        $hasmore = @$getorder['HasMoreTransactions'];
        $strline = $TotalNumberOfPages . '/' . $TotalNumberOfEntries;
        $Ack = @$getorder['Ack'];
        echo "正在请求:{$pcount}/{$TotalNumberOfPages} \t记录数[ {$TotalNumberOfEntries} ]\t\n\t\t\t\t  同步状态: {$Ack} 还有更多: {$hasmore} \n";
        if ($id == '' && $type == '1') {
            if ($Ack == '') {
                $ss = "insert into errors_ack(ebay_account,starttime,endtime,status,notes) \n\t\t\t\t\t\t\tvalues('{$ebay_account}','{$ebay_starttime}','{$ebay_endtime}','0','Ack False')";
                $dbConn->query($ss);
            }
            if ($hasmore == '' || $Ack == '') {
                $ss = "insert into errors_ack(ebay_account,starttime,endtime,status,notes) \n\t\t\t\t\t\t\tvalues('{$ebay_account}','{$ebay_starttime}','{$ebay_endtime}','0','Ack False')";
                $dbConn->query($ss);
            }
        }
        if ($id > 0) {
            if ($Ack == 'Success') {
                $gg = "update errors_ack set status = 1 where id='{$id}' ";
            } else {
                $gg = "update errors_ack set status = 0 where id='{$id}' ";
            }
            $dbConn->query($gg);
        }
        /**/
        $log_name = '同步订单';
        $log_operationtime = $mctime;
        $log_notes = $ebay_account . ":{$pcount}/{$TotalNumberOfPages} ,Ack={$Ack}";
        addlogs($log_name, $log_operationtime, 0, $log_notes, $user, $ebay_account, $ebay_starttime, $ebay_endtime, $type);
        /**/
        $Trans = @$getorder['TransactionArray']['Transaction'];
        $ReturnedTransactionCountActual = @$getorder['ReturnedTransactionCountActual'];
        if ($ReturnedTransactionCountActual == 1) {
            $Trans = array();
            $Trans[0] = $getorder['TransactionArray']['Transaction'];
        }
        $getorder = null;
        unset($getorder);
        foreach ((array) $Trans as $Transaction) {
            //每笔记录编号
            $tran_recordnumber = $Transaction['ShippingDetails']['SellingManagerSalesRecordNumber'];
            //交易状态
            $LastTimeModified = strtotime($Transaction['Status']['LastTimeModified']);
            $eBayPaymentStatus = $Transaction['Status']['eBayPaymentStatus'];
            $CompleteStatus = $Transaction['Status']['CompleteStatus'];
            $CheckStatus = $Transaction['Status']['CompleteStatus'];
            //其他交易信息比如payapl整合到ebay
            $ptid = @$Transaction['ExternalTransaction']['ExternalTransactionID'];
            $FeeOrCreditAmount = @$Transaction['ExternalTransaction']['FeeOrCreditAmount'];
            $FinalValueFee = $Transaction['FinalValueFee'];
            $tid = $Transaction['TransactionID'];
            //ebay 交易号
            $AmountPaid = @$Transaction['AmountPaid'];
            $Buyer = str_rep(@$Transaction['Buyer']);
            $Email = str_rep(@$Buyer['Email']);
            //email
            $UserID = str_rep(@$Buyer['UserID']);
            //userid
            $BuyerInfo = $Buyer['BuyerInfo']['ShippingAddress'];
            $Name = str_rep($BuyerInfo['Name']);
            $Name = mysql_real_escape_string($Name);
            $Street1 = str_rep($BuyerInfo['Street1']);
            $Street2 = str_rep(@$BuyerInfo['Street2']);
            $CityName = str_rep(@$BuyerInfo['CityName']);
            $StateOrProvince = str_rep(@$BuyerInfo['StateOrProvince']);
            $Country = str_rep(@$BuyerInfo['Country']);
            $CountryName = str_rep(@$BuyerInfo['CountryName']);
            $PostalCode = str_rep(@$BuyerInfo['PostalCode']);
            $Phone = @$BuyerInfo['Phone'];
            //该交易的物品信息
            $Item = $Transaction['Item'];
            $CategoryID = $Item['PrimaryCategory']['CategoryID'];
            //ebay刊登物品的分类ID,备用字段
            $Currency = $Item['Currency'];
            //货币类型
            $ItemID = $Item['ItemID'];
            //ebay物品id
            $ListingType = $Item['ListingType'];
            $Title = str_rep($Item['Title']);
            //ebay物品标题
            $sku = str_rep($Item['SKU']);
            $site = $Item['Site'];
            $CurrentPrice = $Item['SellingStatus']['CurrentPrice'];
            //产品当前价格
            $QuantityPurchased = $Transaction['QuantityPurchased'];
            //购买数量
            $PaidTime = strtotime($Transaction['PaidTime']);
            //付款时间
            $CreatedDate = strtotime($Transaction['CreatedDate']);
            //交易创建时间...********多个产品订单每个产品的创建时间不同判依据
            $ShippedTime = strtotime($Transaction['ShippedTime']);
            $shipingservice = $Transaction['ShippingServiceSelected']['ShippingService'];
            $shipingfee = $Transaction['ShippingServiceSelected']['ShippingServiceCost'];
            $containing_order = @$Transaction['ContainingOrder'];
            $combined_recordnumber = @$containing_order['ShippingDetails']['SellingManagerSalesRecordNumber'];
            //合并后的recordnumber
            $orderid = 0;
            if ($combined_recordnumber != '') {
                $orderid = @$containing_order['OrderID'];
            } else {
                $orderid = $ItemID . '-' . $tid;
            }
            $BuyerCheckoutMessage = str_rep($Transaction['BuyerCheckoutMessage']);
            //顾客购买留言
            $BuyerCheckoutMessage = str_replace('<![CDATA[', '', $BuyerCheckoutMessage);
            $BuyerCheckoutMessage = str_replace(']]>', '', $BuyerCheckoutMessage);
            //店铺收款paypal account
            $PayPalEmailAddress = $Transaction['PayPalEmailAddress'];
            $addrecordnumber = $tran_recordnumber;
            if ($combined_recordnumber != '') {
                $addrecordnumber = $combined_recordnumber;
            }
            if ($CompleteStatus == "Complete" && $eBayPaymentStatus == "NoPaymentFailure" && $PaidTime > 0) {
                $orderstatus = 1;
            }
            if ($ShippedTime > 0) {
                $orderstatus = 2;
            }
            //已经发货
            ################################
            $RefundAmount = 0;
            //表示未垦退款
            if ($orderstatus == 1 && $ShippedTime <= 0 && $PaidTime > 0) {
                echo "销售编号[{$addrecordnumber}]有效";
                //检查汇总表该 recordnumber是否已经存在
                //主要是避免multiple line item 这种情况 造成重复添加 汇总数据
                $check_ordersn = CheckOrderSN($addrecordnumber, $ebay_account);
                $new_ebay_id = true;
                if ($check_ordersn == "0") {
                    //该交易还无汇总数据	添加订单汇总
                    /* 生成一个本地系统订单号 */
                    $our_sys_ordersn = date('Y-m-d-His') . mt_rand(100, 999) . $addrecordnumber;
                    $order_no = '';
                    //已废弃
                    $obj_order = new eBayOrder();
                    $obj_order_data = array('ebay_paystatus' => $CompleteStatus, 'ebay_ordersn' => $our_sys_ordersn, 'ebay_tid' => $tid, 'ebay_ptid' => $ptid, 'ebay_orderid' => $orderid, 'ebay_createdtime' => $CreatedDate, 'ebay_paidtime' => $PaidTime, 'ebay_userid' => $UserID, 'ebay_username' => $Name, 'ebay_usermail' => $Email, 'ebay_street' => $Street1, 'ebay_street1' => $Street2, 'ebay_city' => $CityName, 'ebay_state' => $StateOrProvince, 'ebay_couny' => $Country, 'ebay_countryname' => $CountryName, 'ebay_postcode' => $PostalCode, 'ebay_phone' => $Phone, 'ebay_currency' => $Currency, 'ebay_total' => $AmountPaid, 'ebay_status' => $orderstatus, 'ebay_user' => $user, 'ebay_shipfee' => $shipingfee, 'ebay_account' => $ebay_account, 'recordnumber' => $addrecordnumber, 'ebay_addtime' => $mctime, 'ebay_note' => $BuyerCheckoutMessage, 'ebay_site' => $site, 'eBayPaymentStatus' => $eBayPaymentStatus, 'PayPalEmailAddress' => $PayPalEmailAddress, 'ShippedTime' => $ShippedTime, 'RefundAmount' => $RefundAmount, 'ebay_warehouse' => $defaultstoreid, 'order_no' => $order_no);
                    $obj_order->init($obj_order_data);
                    $obj_order_data = null;
                    unset($obj_order_data);
                    $new_ebay_id = $oa->addOrder($obj_order);
                    $obj_order = null;
                    unset($obj_order);
                    if ($new_ebay_id !== false) {
                        echo "\t订单[{$our_sys_ordersn}] 汇总数据入库成功=>\n\tUserID:{$UserID}" . " AMT:{$AmountPaid} recordNO:{$addrecordnumber} ";
                        echo "付款状态:{$CompleteStatus} 交易ID:{$ptid}\n";
                        $check_ordersn = $our_sys_ordersn;
                        //检验ebay 订单号 是否在订单号汇总表中
                        if (check_ebay_orderid_exists_in_statistic_table($orderid, $ebay_account) === false) {
                            save_ebay_orderid_table($new_ebay_id, $ptid, $orderid, $ebay_account, $CreatedDate);
                        }
                    } else {
                        echo "\t订单[{$our_sys_ordersn}] 入库失败\n";
                    }
                }
                if ($new_ebay_id !== false) {
                    //添加订单明细
                    $sql = "select \tebay_id from ebay_orderdetail \n\t\t\t\t\t\t\t\twhere \tebay_ordersn='{$check_ordersn}' \n\t\t\t\t\t\t\t\tand \trecordnumber='{$tran_recordnumber}'";
                    $sql = $dbConn->query($sql);
                    $sql = $dbConn->fetch_array_all($sql);
                    if (count($sql) == 0) {
                        /* 多属性订单 */
                        $Variation = @$Transaction['Variation']['VariationSpecifics']['NameValueList'];
                        $attribute = '';
                        if (!empty($Variation)) {
                            if (!isset($Variation['Name']) || !isset($Variation['Value'])) {
                                foreach ($Variation as $variate) {
                                    $aname = $variate['Name'];
                                    $avalue = $variate['Value'];
                                    $attribute .= $aname . ":" . $avalue . " ";
                                }
                            } else {
                                $attribute = $Variation['Name'] . ":" . $Variation['Value'];
                            }
                            unset($Variation);
                        }
                        $obj_order_detail = new eBayOrderDetail();
                        $obj_order_detail_data = array('ebay_ordersn' => $check_ordersn, 'ebay_itemid' => $ItemID, 'ebay_itemtitle' => $Title, 'ebay_itemprice' => $CurrentPrice, 'ebay_amount' => $QuantityPurchased, 'ebay_createdtime' => $CreatedDate, 'ebay_shiptype' => $shipingservice, 'ebay_user' => $user, 'sku' => $sku, 'shipingfee' => $shipingfee, 'ebay_account' => $ebay_account, 'addtime' => $mctime, 'ebay_itemurl' => '', 'ebay_site' => $site, 'recordnumber' => $tran_recordnumber, 'storeid' => '', 'ListingType' => $ListingType, 'ebay_tid' => $tid, 'FeeOrCreditAmount' => $FeeOrCreditAmount, 'FinalValueFee' => $FinalValueFee, 'attribute' => $attribute, 'notes' => $BuyerCheckoutMessage, 'goods_location' => @get_good_location($sku, $user));
                        $obj_order_detail->init($obj_order_detail_data);
                        $obj_order_detail_data = null;
                        unset($obj_order_detail_data);
                        if (false !== $oa->addOrderDetail($obj_order_detail)) {
                            echo "\t订单[{$check_ordersn}] 编号[{$tran_recordnumber}]明细入库OK!\n";
                        } else {
                            echo "\t订单[{$check_ordersn}] 编号[{$tran_recordnumber}]明细入库Error!\n";
                        }
                        $obj_order_detail = null;
                        unset($obj_order_detail);
                    }
                    $sql = "select ebay_id from ebay_orderdetail \n\t\t\t\t\t\t\t\twhere ebay_ordersn='{$check_ordersn}' \n\t\t\t\t\t\t\t\tand recordnumber='{$tran_recordnumber}'";
                    $sql = $dbConn->query($sql);
                    $sql = $dbConn->fetch_array_all($sql);
                    if (count($sql) >= 2 && strlen($check_ordersn) >= 5) {
                        $id = $sql[0]['ebay_id'];
                        $ss = "delete from ebay_orderdetail where ebay_id='{$id}'";
                        $dbConn->query($ss);
                    }
                    if ($ShippedTime > 0) {
                        $ss = "update ebay_order set ShippedTime='{$ShippedTime}',\n\t\t\t\t\t\t\t\t\tebay_status='2',ebay_markettime='{$ShippedTime}' \n\t\t\t\t\t\t\t\t\twhere ebay_ordersn='{$check_ordersn}' and ebay_status='1'";
                        $dbConn->query($ss);
                    }
                }
            } else {
                echo "销售编号[{$addrecordnumber}]无效 不入库...\n";
            }
        }
        if ($id == '' && $type == '1') {
            if ($Ack == '' || $Ack == 'Failure') {
                $ss = "insert into errors_ack(ebay_account,starttime,endtime,status,notes,currentpage) \n\t\t\t\t\t\t\tvalues('{$ebay_account}','{$ebay_starttime}','{$ebay_endtime}','0','Ack False','{$pcount}')";
                $dbConn->query($ss);
            }
        }
        if ($pcount >= $TotalNumberOfPages) {
            echo $hasmore . "程序退出了\n";
            break;
        }
        $pcount++;
        $hasmore = strtolower($hasmore) == 'true' ? true : false;
    } while ($hasmore);
}
Beispiel #4
0
    function act_ebayRequestUpdate()
    {
        $successNum = 0;
        $errordetail = NULL;
        include WEB_PATH . "lib/feedback/ebaylibrary/ebay_config.php";
        $verb = 'GetFeedback';
        $ebayUserId = isset($_POST['user_id']) ? $_POST['user_id'] : '';
        $account = isset($_POST['ebay_account']) ? $_POST['ebay_account'] : "";
        $select = "  `id` ";
        $where = " where `modifyStatus`=0 and `is_delete`=0 and ebayUserId='{$ebayUserId}' and `account`='{$account}' ";
        $info = EbayFeedbackModel::getRequestChangeList($select, $where);
        //获取请求修改列表
        foreach ($info as $value) {
            $id = $value['id'];
            $select = " `token` ";
            $where = "\twhere `account` = '{$account}' ";
            $token = AccountModel::getAccountList($select, $where);
            $token = $token[0]['token'];
            $select = " `FeedbackID`,`CommentText`,`CommentingUser`,`ItemID`,`TransactionID`,`CommentType` ";
            $where = " where account='{$account}' and CommentingUser ='******' ";
            //and (CommentType='Neutral' or CommentType='Negative')
            $get_info = EbayFeedbackModel::getOrderList($select, $where);
            //卖家评价信息
            //var_dump($get_info);
            foreach ($get_info as $v) {
                $status = "";
                $feedbackID = $v['FeedbackID'];
                $commentingUser = $v['CommentingUser'];
                $itemID = $v['ItemID'];
                $transactionID = $v['TransactionID'];
                $commentType = $v['CommentType'];
                $commentText = $v['CommentText'];
                $transactionID = html_entity_decode($transactionID);
                $transactionID = trim($transactionID, "´");
                //var_dump($transactionID);
                $requestXmlBody = '<?xml version="1.0" encoding="utf-8"?>
									<GetFeedbackRequest xmlns="urn:ebay:apis:eBLBaseComponents">
									<RequesterCredentials>
										<eBayAuthToken>' . $token . '</eBayAuthToken>
									</RequesterCredentials>
									<ItemID>' . $itemID . '</ItemID>
									<TransactionID>' . $transactionID . '</TransactionID>
									<UserID>' . $commentingUser . '</UserID>
									<FeedbackType>FeedbackReceived</FeedbackType>
									<DetailLevel>ReturnAll</DetailLevel>
									</GetFeedbackRequest>';
                $session = new eBaySession($token, $devID, $appID, $certID, $serverUrl, $compatabilityLevel, $siteID, $verb);
                $responseXml = $session->sendHttpRequest($requestXmlBody);
                if (stristr($responseXml, 'HTTP 404') || $responseXml == '') {
                    self::$errCode = '002';
                    self::$errMsg = "拉取eaby feedback 失败";
                    return 'id not found';
                }
                $data = XML_unserialize($responseXml);
                //print_r($responseXml);exit;
                $ack = $data['GetFeedbackResponse']['Ack'];
                $feedbackRevised = $data['GetFeedbackResponse']['FeedbackDetailArray']['FeedbackDetail'];
                //print_r($feedbackRevised);
                $feedbackRevised = $feedbackRevised[0]['FeedbackRevised'];
                if ($ack != "Success") {
                    self::$errCode = '002';
                    self::$errMsg = "拉取eaby feedback 失败";
                    return false;
                } else {
                    //var_dump($data,$feedbackRevised);exit;
                    /* if(1 == "true")
                    			{ */
                    $feedback = $data['GetFeedbackResponse']['FeedbackDetailArray']['FeedbackDetail'];
                    $feedbackType = isset($feedback[0]['CommentType']) ? $feedback[0]['CommentType'] : $feedback['CommentType'];
                    $feedbackUser = $feedback[0]['CommentingUser'];
                    if ($commentingUser == $feedbackUser) {
                        $feedbackText = addslashes(str_rep($feedback[0]['CommentText']));
                    } else {
                        $feedbackText = addslashes(str_rep($commentText));
                    }
                    $status = "";
                    if ($commentType != $feedbackType && $feedbackType) {
                        if ($commentType == "Neutral") {
                            if ($feedbackType == "Positive") {
                                $status = "21";
                                //中评改好评
                            } else {
                                if ($feedbackType == "Negative") {
                                    $status = "23";
                                    //中评改差评
                                } else {
                                    $status = "22";
                                    //中评改中评
                                }
                            }
                        } else {
                            if ($commentType == "Negative") {
                                if ($feedbackType == "Positive") {
                                    $status = "31";
                                } else {
                                    if ($feedbackType == "Neutral") {
                                        $status = "32";
                                    } else {
                                        $status = "33";
                                    }
                                }
                            } else {
                            }
                        }
                        //好评情况不做处理
                        if ($status != "") {
                            $tName = " fb_comment_record_ebay ";
                            $set = " set status='{$status}',CommentType='{$feedbackType}',CommentText='{$feedbackText}'";
                            $where = "  where FeedbackID='{$feedbackID}' ";
                            $sql = "{$tName} {$set} {$where} ";
                            //echo $sql."\n";
                            if (OmAvailableModel::updateTNameRow($tName, $set, $where)) {
                                $tName = " fb_request_change_ebay ";
                                $set = " set modifyStatus=1 ";
                                $where = " where id ={$id} ";
                                $sql = "{$tName} {$set} {$where}";
                                $res = OmAvailableModel::updateTNameRow($tName, $set, $where);
                                if ($res) {
                                    $successNum += 1;
                                    //self::$errMsg  = "修改成功";
                                } else {
                                    /* self::$errCode = '002';
                                    			self::$errMsg  = "更新状态失败$sql"; */
                                }
                            } else {
                                //echo 'Failure '."\n";
                                /* self::$errCode = '002';
                                			self::$errMsg  = "更新评价失败!"; */
                            }
                            //echo 'userID :'.$commentingUser.":".$commentType."------------>".$feedbackType."\n";
                        }
                        /* else{
                        				self::$errCode = '002';
                        				self::$errMsg  = "客户评价没有修改!";
                        				return false;
                        			} */
                    } else {
                        //end if线上评价与本地评价不同
                        $errordetail .= "{$commentingUser} ";
                    }
                    /* }else{//end feedbackRevised =ture
                    				self::$errCode = '002';
                    				self::$errMsg  = "客户还没有修改评价!";
                    				return false;
                    			} */
                }
                //end of 获取ebay feedback接口成功
            }
            /* self::$errCode = '002';
            			self::$errMsg  = "$ebayUserId  $account 系统不存此评价信息";
            			return false; */
        }
        //foreach
        if ($successNum > 0) {
            self::$errMsg = "修改成功{$successNum}个";
            return true;
        } else {
            self::$errCode = '002';
            self::$errMsg = "{$errordetail} 还未修改评价";
            return false;
        }
    }
 $feedback = $data['GetFeedbackResponse']['FeedbackDetailArray']['FeedbackDetail'];
 //$feedbackType	 = isset($feedback[0]['CommentType']) ? $feedback[0]['CommentType'] : $feedback['CommentType'];
 if ($feedback['CommentType']) {
     $feedbackType = $feedback['CommentType'];
 } else {
     foreach ($feedback as $value) {
         if ($value['Role'] == 'Buyer') {
             $feedbackType = $value['CommentType'];
         }
     }
 }
 $feedbackUser = $feedback[0]['CommentingUser'];
 if ($commentingUser == $feedbackUser) {
     $feedbackText = addslashes(str_rep($feedback[0]['CommentText']));
 } else {
     $feedbackText = addslashes(str_rep($commentText));
 }
 if ($commentType != $feedbackType && $feedbackType) {
     if ($commentType == "Neutral") {
         if ($feedbackType == "Positive") {
             $status = "21";
             //中评改好评
         } else {
             if ($feedbackType == "Negative") {
                 $status = "23";
             } else {
                 $status = "22";
             }
         }
     } else {
         if ($commentType == "Negative") {
Beispiel #6
0
 /**
  * 根据订单号抓取订单列表
  * @param array $orderids
  * @return array
  * @author lzx
  */
 public function spiderOrderLists($orderids)
 {
     $OrderObject = F('ebay.package.GetOrders');
     $OrderObject->setRequestConfig($this->authorize);
     $receivelists = $OrderObject->getOrderLists($orderids);
     $receivelists = XML_unserialize($receivelists);
     $orders = array();
     if (!empty($receivelists['GetOrdersResponse']['OrderArray']['Order']['OrderID'])) {
         $orders = array($receivelists['GetOrdersResponse']['OrderArray']['Order']);
     } else {
         $orders = $receivelists['GetOrdersResponse']['OrderArray']['Order'];
     }
     $inserOrders = array();
     $StatusMenu = M('StatusMenu');
     $ORDER_INIT = $StatusMenu->getOrderStatusByStatusCode('ORDER_INIT', 'id');
     //将这个抓取的数组格式化为订单新增(OrderAddModel)的标准化格式
     foreach ($orders as $orderInfo) {
         $isNote = 0;
         //默认为没有留言订单
         //顾客留言
         if (!empty($orderInfo['ExternalTransaction']['BuyerCheckoutMessage'])) {
             $isNote = 1;
             $customerMessage = @str_rep($orderInfo['ExternalTransaction']['BuyerCheckoutMessage']);
             $customerMessage = str_replace('<![CDATA[', '', $customerMessage);
             $customerMessage = str_replace(']]>', '', $customerMessage);
         }
         //获取第一个Transaction,多个料号和单个料号的格式不一样
         $orderAttribute = 1;
         //1为单料订单
         $firstTransaction = $orderInfo['TransactionArray']['Transaction'];
         if (!empty($firstTransaction) && empty($orderInfo['TransactionArray']['Transaction']['Buyer'])) {
             $orderAttribute = 3;
             //多料号订单
             $firstTransaction = $orderInfo['TransactionArray']['Transaction'][0];
         }
         //站点
         $site = $firstTransaction['Item']['Site'];
         if (empty($site)) {
             $site = $firstTransaction['TransactionID'];
         }
         //订单表数据
         $order = array('recordNumber' => $orderInfo['ShippingDetails']['SellingManagerSalesRecordNumber'], 'platformId' => 1, 'orderStatus' => $ORDER_INIT, 'orderType' => $ORDER_INIT, 'accountId' => M('Account')->getAccountIdByName($this->authorize['account']), 'ordersTime' => strtotime($orderInfo['CreatedTime']), 'paymentMethod' => $orderInfo['CheckoutStatus']['PaymentMethod'], 'paymentTime' => strtotime($orderInfo['PaidTime']), 'onlineTotal' => $orderInfo['AmountPaid'], 'actualTotal' => $orderInfo['AmountPaid'], 'currency' => $orderInfo['AmountSaved attr']['currencyID'], 'transportId' => 0, 'actualShipping' => $orderInfo['ShippingServiceSelected']['ShippingServiceCost'], 'marketTime' => 0, 'ShippedTime' => 0, 'orderAttribute' => 1, 'pmId' => 0, 'ORtransport' => $orderInfo['ShippingServiceSelected']['ShippingService'], 'channelId' => 0, 'calcWeight' => 0, 'calcShipping' => 0, 'orderAddTime' => time(), 'isSendEmail' => 0, 'isNote' => $isNote, 'isCopy' => 0, 'isSplit' => 0, 'combinePackage' => 0, 'combineOrder' => 0, 'completeTime' => 0, 'storeId' => 1, 'is_offline' => 0, 'is_delete' => 0);
         //订单扩展表
         $orderExtension = array('declaredPrice' => 0.0, 'orderStatus' => $orderInfo['OrderStatus'], 'paymentStatus' => $orderInfo['CheckoutStatus']['Status'], 'getItFast' => $orderInfo['ShippingDetails']['GetItFast'], 'addressID' => $orderInfo['ShippingAddress']['AddressID'], 'addressOwner' => $orderInfo['ShippingAddress']['AddressOwner'], 'EIASToken' => $orderInfo['EIASToken'], 'paymentHoldStatus' => $orderInfo['PaymentHoldStatus'], 'paymentAmount' => $orderInfo['MonetaryDetails']['Payments']['Payment']['PaymentAmount'], 'payPalPaymentId' => $orderInfo['MonetaryDetails']['Payments']['Payment']['ReferenceID'], 'payPalPaymentFee' => $orderInfo['MonetaryDetails']['Payments']['Payment']['FeeOrCreditAmount'], 'orderId' => $orderInfo['OrderID'], 'feedback' => !empty($customerMessage) ? $customerMessage : 'none', 'PayPalEmailAddress' => $this->getPayPalEmailAddress($firstTransaction['Item']['ItemID']), 'eBayPaymentStatus' => $orderInfo['CheckoutStatus']['eBayPaymentStatus']);
         //用户表
         $orderUserInfo = array('username' => mysql_real_escape_string(str_rep($orderInfo['ShippingAddress']['Name'])), 'platformUsername' => $orderInfo['BuyerUserID'], 'email' => $firstTransaction['Buyer']['Email'], 'countryName' => str_rep($orderInfo['ShippingAddress']['CountryName']), 'countrySn' => str_rep($orderInfo['ShippingAddress']['Country']), 'currency' => $firstTransaction['TransactionPrice attr']['currencyID'], 'state' => str_rep($orderInfo['ShippingAddress']['StateOrProvince']), 'city' => str_rep($orderInfo['ShippingAddress']['CityName']), 'address1' => str_rep($orderInfo['ShippingAddress']['Street1']), 'address2' => str_rep($orderInfo['ShippingAddress']['Street2']), 'phone' => $orderInfo['ShippingAddress']['Phone'], 'zipCode' => $orderInfo['ShippingAddress']['PostalCode']);
         //订单明细表数据
         if ($orderAttribute == 1) {
             //单料号订单,转为多料号数组一并处理
             $transactionArray = array($firstTransaction);
         } else {
             if ($orderAttribute == 3) {
                 $transactionArray = $orderInfo['TransactionArray']['Transaction'];
             }
         }
         $orderDetail = array();
         foreach ($transactionArray as $transaction) {
             //检查是否多属性刊登
             $onlineSku = $transaction['Item']['SKU'];
             if (isset($transaction['Variation']['SKU'])) {
                 $onlineSku = $transaction['Variation']['SKU'];
             }
             $skus = explode(':', $onlineSku);
             $sku = strtoupper($skus[0]);
             $orderDetail[] = array('orderDetail' => array('recordNumber' => $transaction['ShippingDetails']['SellingManagerSalesRecordNumber'], 'itemId' => $transaction['Item']['ItemID'], 'itemPrice' => $transaction['TransactionPrice'], 'sku' => $sku, 'onlinesku' => $onlineSku, 'amount' => $transaction['QuantityPurchased'], 'shippingFee' => $transaction['ActualShippingCost'], 'createdTime' => time(), 'storeId' => 1, 'is_delete' => 0), 'orderDetailExtension' => array('transactionID' => $transaction['TransactionID'], 'itemTitle' => str_rep($transaction['Item']['Title']), 'itemURL' => '', 'conditionID' => $transaction['Item']['ConditionID'], 'conditionDisplayName' => $transaction['Item']['ConditionDisplayName'], 'finalValueFeeCurrency' => $transaction['FinalValueFee attr']['currencyID'], 'finalValueFee' => $transaction['FinalValueFee'], 'handlingFee' => $transaction['FinalValueFee']));
         }
         /*
         *
         							$attribute	= '';
         							$buy_with_attr=false;
         							$tran_varia=$transaction->getElementsByTagName('Variation')->item(0);
         							if(is_object($tran_varia)){//未添加明细的属性 20130301
         								if(	$tran_varia->hasChildNodes() ){
         									$Variation	= $tran_varia->getElementsByTagName('NameValueList')->item(0);
         									if( !empty($Variation) && $Variation->hasChildNodes() ){
         										foreach($Variation as $variate){
         											$aname	= $variate->getElementsByTagName('Name')->item(0)->nodeValue;
         											$avalue	= $variate->getElementsByTagName('Value')->item(0)->nodeValue;
         											$attribute	.= $aname.":".$avalue." ";
         										}
         									}else{
         										$attribute	= $Variation['Name'].":".$Variation['Value'];
         									}
         									$buy_with_attr=true;
         									$Variation=null;unset($Variation);
         								}
         							}
         							$tran_id			= $transaction->getElementsByTagName('TransactionID')->item(0)->nodeValue;
         							//该交易的物品信息
         							$odItem 			= $transaction->getElementsByTagName('Item')->item(0);
         							if($buy_with_attr===true){
         								$odItemTitle 	= @$tran_varia->getElementsByTagName('VariationTitle')->item(0)->nodeValue;	
         								$odSKU			= @$tran_varia->getElementsByTagName('SKU')->item(0)->nodeValue;
         							}else{
         								$odItemTitle	=str_rep($odItem->getElementsByTagName('Title')->item(0)->nodeValue);
         								$odSKU			=str_rep($odItem->getElementsByTagName('SKU')->item(0)->nodeValue);
         							}
         */
         //组装数据
         $inserOrders[] = array('order' => $order, 'orderExtension' => $orderExtension, 'orderUserInfo' => $orderUserInfo, 'orderDetail' => $orderDetail);
     }
     return $inserOrders;
 }
Beispiel #7
0
 function __handle_ebay_orderxml(&$SellerOrderArray, $ebay_account)
 {
     global $FLIP_GLOBAL_EBAY_ACCOUNT;
     if (!isset($FLIP_GLOBAL_EBAY_ACCOUNT)) {
         $omAvailableAct = new OmAvailableAct();
         $GLOBAL_EBAY_ACCOUNT = $omAvailableAct->act_getTNameList2arrById('om_account', 'id', 'account', ' WHERE is_delete=0 ');
         $FLIP_GLOBAL_EBAY_ACCOUNT = array_flip($GLOBAL_EBAY_ACCOUNT);
     }
     global $mctime, $_allow_spide_itemid;
     $account_suffix = get_account_suffix($ebay_account);
     $message = "";
     foreach ($SellerOrderArray as $SellerOrder) {
         //每个订单号
         $oSellerOrderID = $SellerOrder->getElementsByTagName('OrderID')->item(0)->nodeValue;
         //oCreatingUserRole用于判断是否是 combined payments
         $oCreatingUserRole = @$SellerOrder->getElementsByTagName('CreatingUserRole')->item(0)->nodeValue;
         $oAmountPaid = $SellerOrder->getElementsByTagName('AmountPaid')->item(0)->nodeValue;
         $shippingDeatil = $SellerOrder->getElementsByTagName('ShippingDetails')->item(0);
         $oRecordNumber = $shippingDeatil->getElementsByTagName('SellingManagerSalesRecordNumber')->item(0)->nodeValue;
         $shippingDeatil = null;
         unset($shippingDeatil);
         //订单状态
         $CheckoutStatus = $SellerOrder->getElementsByTagName('CheckoutStatus')->item(0);
         $LastTimeModified = strtotime($CheckoutStatus->getElementsByTagName('LastModifiedTime')->item(0)->nodeValue);
         $oeBayPaymentStatus = $CheckoutStatus->getElementsByTagName('eBayPaymentStatus')->item(0)->nodeValue;
         $oCompleteStatus = $CheckoutStatus->getElementsByTagName('Status')->item(0)->nodeValue;
         $oCheckStatus = $CheckoutStatus->getElementsByTagName('Status')->item(0)->nodeValue;
         $CheckoutStatus = null;
         unset($CheckoutStatus);
         //该订单交易信息
         $osoTransArray = $SellerOrder->getElementsByTagName('Transaction');
         //其他交易信息比如payapl整合到ebay
         $oTid = 0;
         //兼容表结构,其实此时还没有交易号的概念
         $ExtTran = $SellerOrder->getElementsByTagName('ExternalTransaction')->item(0);
         $noptid_trans = false;
         if (!empty($ExtTran)) {
             $oPtid = $ExtTran->getElementsByTagName('ExternalTransactionID')->item(0)->nodeValue;
             $oFeeOrCreditAmount = $ExtTran->getElementsByTagName('FeeOrCreditAmount')->item(0)->nodeValue;
         } else {
             $oPtid = '0';
             $oFeeOrCreditAmount = 0.0;
             echo " Notice : [{$oSellerOrderID}]Not ebay offical paypal trans\n";
             $noptid_trans = true;
         }
         //以下信息强制以订单的transation数据中第一条交易为准而取
         if (is_object($osoTransArray->item(0)->getElementsByTagName('Buyer')->item(0))) {
             $oEmail = str_rep($osoTransArray->item(0)->getElementsByTagName('Buyer')->item(0)->getElementsByTagName('Email')->item(0)->nodeValue);
         } else {
             echo "\n同步订单未获取邮箱\n";
             $oEmail = "";
         }
         $oSite = str_rep($osoTransArray->item(0)->getElementsByTagName('Item')->item(0)->getElementsByTagName('Site')->item(0)->nodeValue);
         if (empty($oSite)) {
             $oSite = str_rep($osoTransArray->item(0)->getElementsByTagName('TransactionSiteID')->item(0)->nodeValue);
         }
         //货币类型
         $oCurrency = $osoTransArray->item(0)->getElementsByTagName('TransactionPrice')->item(0)->attributes->item(0)->nodeValue;
         //userid
         $oUserID = str_rep($SellerOrder->getElementsByTagName('BuyerUserID')->item(0)->nodeValue);
         $BuyerInfo = $SellerOrder->getElementsByTagName('ShippingAddress')->item(0);
         $oName = str_rep($BuyerInfo->getElementsByTagName('Name')->item(0)->nodeValue);
         $oName = mysql_real_escape_string($oName);
         $oStreet1 = str_rep($BuyerInfo->getElementsByTagName('Street1')->item(0)->nodeValue);
         $oStreet2 = str_rep($BuyerInfo->getElementsByTagName('Street2')->item(0)->nodeValue);
         $oCityName = str_rep($BuyerInfo->getElementsByTagName('CityName')->item(0)->nodeValue);
         $oStateOrProvince = str_rep($BuyerInfo->getElementsByTagName('StateOrProvince')->item(0)->nodeValue);
         $oCountry = str_rep($BuyerInfo->getElementsByTagName('Country')->item(0)->nodeValue);
         $oCountryName = str_rep($BuyerInfo->getElementsByTagName('CountryName')->item(0)->nodeValue);
         $oPostalCode = str_rep($BuyerInfo->getElementsByTagName('PostalCode')->item(0)->nodeValue);
         $oPhone = $BuyerInfo->getElementsByTagName('Phone')->item(0)->nodeValue;
         $BuyerInfo = null;
         unset($BuyerInfo);
         //顾客留言
         $oBuyerCheckoutMessage = @str_rep($SellerOrder->getElementsByTagName('BuyerCheckoutMessage')->item(0)->nodeValue);
         //顾客购买留言
         $oBuyerCheckoutMessage = str_replace('<![CDATA[', '', $oBuyerCheckoutMessage);
         $oBuyerCheckoutMessage = str_replace(']]>', '', $oBuyerCheckoutMessage);
         //付款时间
         $oPaidTime = strtotime($SellerOrder->getElementsByTagName('PaidTime')->item(0)->nodeValue);
         $oCreateTime = strtotime($SellerOrder->getElementsByTagName('CreatedTime')->item(0)->nodeValue);
         $oShippedTime = @strtotime($SellerOrder->getElementsByTagName('ShippedTime')->item(0)->nodeValue);
         $SSS = $SellerOrder->getElementsByTagName('ShippingServiceSelected')->item(0);
         $oShipingService = $SSS->getElementsByTagName('ShippingService')->item(0)->nodeValue;
         $oShipingFee = $SSS->getElementsByTagName('ShippingServiceCost')->item(0)->nodeValue;
         $SSS = null;
         unset($SSS);
         //店铺收款paypal account
         //$oPayPalEmailAddress = @$SellerOrder->getElementsByTagName('PayPalEmailAddress')->item(0)->nodeValue;
         $_itemid = $osoTransArray->item(0)->getElementsByTagName('ItemID')->item(0)->nodeValue;
         $oPayPalEmailAddress = $this->getPayPalEmailAddress($_itemid);
         //var_dump($Item_Elements);
         //$oPayPalEmailAddress = $Item_Elements->getElementsByTagName('PayPalEmailAddress')->nodeValue;
         //echo $oCompleteStatus."======".$oeBayPaymentStatus."======".$oPaidTime; echo "\n";
         if ($oCompleteStatus == "Complete" && $oeBayPaymentStatus == "NoPaymentFailure" && $oPaidTime > 0) {
             $oOrderStatus = 1;
         }
         if ($noptid_trans === true) {
             //不是通过ebay官方交易的paypal交易
             if ($oCompleteStatus == "Complete" && $oeBayPaymentStatus == "NoPaymentFailure" && $oPaidTime > 0) {
                 $oOrderStatus = 687;
             }
         }
         $is_allow_spide_itemid = false;
         if ($oPaidTime <= 0 || $oPaidTime == '' || empty($oPaidTime) && count($osoTransArray) == 1) {
             $_QuantityPurchased = $osoTransArray->item(0)->getElementsByTagName('QuantityPurchased')->item(0)->nodeValue;
             if (in_array($_itemid, $_allow_spide_itemid) && $_QuantityPurchased > 0) {
                 echo "未付款促销订单抓取--------";
                 $oOrderStatus = $_QuantityPurchased == 1 ? 687 : 688;
                 $oAmountPaid = 9999;
                 $oPaidTime = $oCreateTime;
                 $is_allow_spide_itemid = true;
                 $buyAddress = $this->getSellerTransactions($oSellerOrderID);
                 $oName = str_rep($buyAddress->getElementsByTagName('Name')->item(0)->nodeValue);
                 $oName = mysql_real_escape_string($oName);
                 $oStreet1 = str_rep($buyAddress->getElementsByTagName('Street1')->item(0)->nodeValue);
                 $oCityName = str_rep($buyAddress->getElementsByTagName('CityName')->item(0)->nodeValue);
                 $oStateOrProvince = str_rep($buyAddress->getElementsByTagName('StateOrProvince')->item(0)->nodeValue);
                 $oCountry = str_rep($buyAddress->getElementsByTagName('Country')->item(0)->nodeValue);
                 $oCountryName = str_rep($buyAddress->getElementsByTagName('CountryName')->item(0)->nodeValue);
                 $oPostalCode = str_rep($buyAddress->getElementsByTagName('PostalCode')->item(0)->nodeValue);
                 $oPhone = $buyAddress->getElementsByTagName('Phone')->item(0)->nodeValue;
             }
         }
         if ($oShippedTime > 0) {
             $oOrderStatus = 2;
         }
         //已经发货
         $oRefundAmount = 0;
         //表示未垦退款
         if ($oOrderStatus == 1 && $oShippedTime <= 0 && $oPaidTime > 0 || $oOrderStatus == 4 && $oShippedTime <= 0 || in_array($oOrderStatus, array(687, 688)) && $oShippedTime <= 0 && $is_allow_spide_itemid == true) {
             echo "eBay订单号[{$oSellerOrderID}]有效 ,订单类型[{$oOrderStatus}] ";
             $check_ebayorderid = true;
             //检查汇总表该 eBay 订单号是否已经存在
             //echo "===={$oSellerOrderID}==={$ebay_account}====";//检测重复抓单信息
             $where = " where orderid='" . $oSellerOrderID . "' and accountId='" . $FLIP_GLOBAL_EBAY_ACCOUNT[$ebay_account] . "' ";
             $check_ebayorderid = OrderidsModel::judgeOrderidsList('orderid', $where);
             //取消
             $check_ebayorderid == false;
             $new_ebay_id = true;
             if ($check_ebayorderid === false) {
                 //添加订单汇总
                 /* 生成一个本地系统订单号 */
                 //$our_sys_ordersn=date('Y-m-d-His').mt_rand(100,999).$oRecordNumber;
                 $oorder_no = '';
                 //已废弃
                 $isNote = 0;
                 if (!empty($oBuyerCheckoutMessage)) {
                     $isNote = 1;
                 }
                 $orderData = array();
                 $orderData = array('orderData' => array('recordNumber' => $oRecordNumber, 'platformId' => 1, 'accountId' => $FLIP_GLOBAL_EBAY_ACCOUNT[$ebay_account], 'ordersTime' => $oCreateTime, 'paymentTime' => $oPaidTime, 'onlineTotal' => $oAmountPaid, 'actualTotal' => $oAmountPaid, 'transportId' => '', 'actualShipping' => $oShipingFee, 'orderStatus' => C("STATEPENDING"), 'orderType' => C("STATEPENDING_CONV"), 'orderAttribute' => 1, 'channelId' => '', 'orderAddTime' => $mctime, 'isNote' => $isNote, 'storeId' => 1), 'orderExtenData' => array('declaredPrice' => 0.0, 'paymentStatus' => $oCompleteStatus, 'transId' => 1, 'PayPalPaymentId' => $oPtid, 'site' => $oSite, 'orderId' => $oSellerOrderID, 'platformUsername' => $oUserID, 'currency' => $oCurrency, 'feedback' => $oBuyerCheckoutMessage, 'PayPalEmailAddress' => $oPayPalEmailAddress, 'eBayPaymentStatus' => $oeBayPaymentStatus), 'orderUserInfoData' => array('username' => $oName, 'platformUsername' => $oUserID, 'email' => $oEmail, 'countryName' => $oCountryName, 'countrySn' => $oCountry, 'currency' => $oCurrency, 'state' => $oStateOrProvince, 'city' => $oCityName, 'street' => $oStreet1, 'address2' => $oStreet2, 'address3' => '', 'landline' => $oPhone, 'phone' => $ebay_state, 'zipCode' => $oPostalCode));
                 echo "\tUserID:{$oUserID}" . " AMT:{$oAmountPaid} recordNO:{$oRecordNumber} 付款状态:{$oCompleteStatus} 付款时间:" . date('Y-m-d H:i:s', $oPaidTime) . "\n";
                 //添加订单明细
                 $obj_order_detail_data = array();
                 foreach ($osoTransArray as $transaction) {
                     //该交易的销售编号
                     $tran_recordnumber = $transaction->getElementsByTagName('ShippingDetails')->item(0)->getElementsByTagName('SellingManagerSalesRecordNumber')->item(0)->nodeValue;
                     /* 多属性订单 */
                     $attribute = '';
                     $buy_with_attr = false;
                     $tran_varia = $transaction->getElementsByTagName('Variation')->item(0);
                     if (is_object($tran_varia)) {
                         //未添加明细的属性 20130301
                         if ($tran_varia->hasChildNodes()) {
                             $Variation = $tran_varia->getElementsByTagName('NameValueList')->item(0);
                             if (!empty($Variation) && $Variation->hasChildNodes()) {
                                 foreach ($Variation as $variate) {
                                     $aname = $variate->getElementsByTagName('Name')->item(0)->nodeValue;
                                     $avalue = $variate->getElementsByTagName('Value')->item(0)->nodeValue;
                                     $attribute .= $aname . ":" . $avalue . " ";
                                 }
                             }
                             $buy_with_attr = true;
                             $Variation = null;
                             unset($Variation);
                         }
                     }
                     $tran_id = $transaction->getElementsByTagName('TransactionID')->item(0)->nodeValue;
                     //该交易的物品信息
                     $odItem = $transaction->getElementsByTagName('Item')->item(0);
                     if ($buy_with_attr === true) {
                         $odItemTitle = @$tran_varia->getElementsByTagName('VariationTitle')->item(0)->nodeValue;
                         $odSKU = @$tran_varia->getElementsByTagName('SKU')->item(0)->nodeValue;
                     } else {
                         $odItemTitle = str_rep($odItem->getElementsByTagName('Title')->item(0)->nodeValue);
                         $odSKU = str_rep($odItem->getElementsByTagName('SKU')->item(0)->nodeValue);
                     }
                     $is_suffix = 0;
                     if (!empty($account_suffix)) {
                         list($truesku, $skusuffix) = explode(':', $odSKU);
                         if (!empty($skusuffix)) {
                             $odSKU = $truesku;
                             $is_suffix = 1;
                         }
                     }
                     ###########悲剧 目前getorder api 无法取得下面2个值#########
                     //ebay刊登物品的分类ID,备用字段
                     //$CategoryID 		= @$odItem->getElementsByTagName('PrimaryCategory')->item(0)->getElementsByTagName('CategoryID')->item(0)->nodeValue;
                     //$ListingType 		= @$odItem->getElementsByTagName('ListingType')->item(0)->nodeValue;
                     $CategoryID = 0;
                     $ListingType = '';
                     //购买数量
                     $QuantityPurchased = $transaction->getElementsByTagName('QuantityPurchased')->item(0)->nodeValue;
                     //交易创建时间
                     $CreatedDate = strtotime($transaction->getElementsByTagName('CreatedDate')->item(0)->nodeValue);
                     $FinalValueFee = $transaction->getElementsByTagName('FinalValueFee')->item(0)->nodeValue;
                     $tran_price = $transaction->getElementsByTagName('TransactionPrice')->item(0)->nodeValue;
                     $goodsshippingcost = $transaction->getElementsByTagName('ActualShippingCost')->item(0)->nodeValue;
                     $goodsshippingcost = empty($goodsshippingcost) ? '0.0' : $goodsshippingcost;
                     $tran_itemid = $odItem->getElementsByTagName('ItemID')->item(0)->nodeValue;
                     $tran_site = $odItem->getElementsByTagName('Site')->item(0)->nodeValue;
                     //$obj_order_detail	=new eBayOrderDetail();
                     $obj_order_detail_data[] = array('orderDetailData' => array('recordNumber' => $tran_recordnumber, 'itemPrice' => $tran_price, 'sku' => strtoupper($odSKU), 'amount' => $QuantityPurchased, 'shippingFee' => $goodsshippingcost, 'createdTime' => $mctime), 'orderDetailExtenData' => array('itemId' => $tran_itemid, 'transId' => $tran_id, 'itemTitle' => $odItemTitle, 'itemURL' => '', 'shippingType' => $oShipingService, 'FinalValueFee' => $FinalValueFee, 'FeeOrCreditAmount' => $oFeeOrCreditAmount, 'ListingType' => $ListingType, 'note' => $oBuyerCheckoutMessage));
                 }
                 $orderData['orderDetail'] = $obj_order_detail_data;
                 $rtn = OldsystemModel::orderErpInsertorder($orderData);
                 //var_dump($rtn);
                 $insertData = array();
                 if ($rtn['errcode'] == 200) {
                     var_dump($rtn);
                     $rtn_data = $rtn['data'];
                     $orderId = $rtn_data['orderId'];
                     echo "插入老系统成功,订单编号 [{$orderId}] \n";
                     $pmId = $rtn_data['pmId'];
                     $totalweight = $rtn_data['totalweight'];
                     $shipfee = $rtn_data['shipfee'];
                     $carrier = $rtn_data['carrier'];
                     $carrierId = $rtn_data['carrierId'];
                     $status = $rtn_data['status'];
                     $orderData['orderData']['id'] = $orderId;
                     //赋予新系统订单编号@20140501
                     $calcInfo = CommonModel::calcAddOrderWeight($obj_order_detail_data);
                     //计算重量和包材
                     //var_dump($calcInfo);
                     $orderData['orderData']['ORcalcWeight'] = $calcInfo[0];
                     $orderData['orderData']['calcWeight'] = $calcInfo[0];
                     $orderData['orderData']['pmId'] = $calcInfo[1];
                     if ($orderData['orderData']['calcWeight'] != $totalweight) {
                         $insertData['old_totalweight'] = $totalweight;
                         $insertData['new_totalweight'] = $orderData['orderData']['calcWeight'];
                     }
                     if ($orderData['orderData']['pmId'] != $pmId) {
                         $insertData['old_pmId'] = $pmId;
                         $insertData['new_pmId'] = $orderData['orderData']['pmId'];
                     }
                     if (count($orderData['orderDetail']) > 1) {
                         $orderData['orderData']['orderAttribute'] = 3;
                     } else {
                         if (isset($orderData['orderDetail'][0]['orderDetailData']['amount']) && $orderData['orderDetail'][0]['orderDetailData']['amount'] > 1) {
                             $orderData['orderData']['orderAttribute'] = 2;
                         }
                     }
                     $calcShippingInfo = TransAPIModel::trans_carriers_best_get($orderData['orderData']['calcWeight'], $orderData['orderUserInfoData']['countryName'], $ebay_account, $orderData['orderData']['actualTotal']);
                     //计算运费
                     //var_dump($calcShippingInfo);
                     $orderData['orderData']['calcShipping'] = $calcShippingInfo['fee'];
                     $orderData['orderData']['transportId'] = $calcShippingInfo['carrierId'];
                     $orderData['orderData']['ORtransportId'] = $calcShippingInfo['carrierId'];
                     $orderData['orderData']['channelId'] = $calcShippingInfo['channelId'];
                     $orderData['orderData']['ORchannelId'] = $calcShippingInfo['channelId'];
                     if ($orderData['orderData']['calcShipping'] != $shipfee) {
                         $insertData['old_shippfee'] = $shipfee;
                         $insertData['new_shippfee'] = $orderData['orderData']['calcShipping'];
                     }
                     if ($orderData['orderData']['transportId'] != $carrierId) {
                         $insertData['old_carrierId'] = $carrierId;
                         $insertData['new_carrierId'] = $orderData['orderData']['transportId'];
                     }
                     if (!empty($insertData)) {
                         $insertData['ebay_id'] = $orderId;
                         $insertData['addtime'] = time();
                         var_dump($insertData);
                         OldsystemModel::insertTempSyncRecords($insertData);
                         // 插入临时对比记录表
                     }
                     $orderData = AutoModel::auto_contrast_intercept($orderData);
                     $statusArr = StatusMenuModel::getStatusMenuByOldStatus($status);
                     if (empty($statusArr)) {
                         echo "未获取老系统状态{$status}转换新码\n";
                     } else {
                         $orderData['orderData']['ORorderStatus'] = $statusArr[0];
                         $orderData['orderData']['ORorderType'] = $statusArr[1];
                         $orderData['orderData']['orderStatus'] = $statusArr[0];
                         $orderData['orderData']['orderType'] = $statusArr[1];
                     }
                     if (OrderAddModel::insertAllOrderRow($orderData)) {
                         echo "本地 Record No. [{$oRecordNumber}] 入库成功\n";
                         $message .= "<font color='green'>本地订单号 [{$oRecordNumber}] 入库成功</font><br>";
                     } else {
                         echo OrderAddModel::$errMsg;
                         $message .= "<font color='red'>本地订单号 [{$oRecordNumber}] 入库失败</font><br>";
                     }
                 } else {
                     var_dump($rtn);
                 }
                 //exit;
             } else {
                 echo "本地订单号 [{$oRecordNumber}] 入库失败\n";
                 $message .= "<font color='red'>本地订单号 [{$oRecordNumber}] 入库失败</font><br>";
             }
         } else {
             echo "eBay订单号[{$oSellerOrderID}] 记录编号[{$oRecordNumber}] 无效 不入库...\t";
             $message .= "<font color='red'>{$oSellerOrderID}无效 不入库...</font><br>";
             if ($oShippedTime > 0 || $oOrderStatus == 2) {
                 echo "已经发货\t";
                 $message .= "<font color='red'>{$oSellerOrderID}已经发货</font><br>";
             }
             if ($oPaidTime <= 0 || $oPaidTime == '' || empty($oPaidTime)) {
                 echo "未付款\t";
                 $message .= "<font color='red'>{$oSellerOrderID}未付款</font><br>";
             }
             echo "\n";
             //pop_ebay_orderid_queue($oSellerOrderID,$ebay_account);
         }
     }
     return $message;
 }
Beispiel #8
0
 public function GetMemberMessages($start, $end, $account, $type, $idlimit = FALSE)
 {
     $api_messages = new GetMemberMessagesAPI($account);
     $patch = MSGBODYSAVEPATH;
     $pcount = 0;
     while ($pcount++ < 50) {
         //一次最多抓取八页内容
         //             echo $pcount, "\n";continue;
         /*----- 抓取message并解析数据 -----*/
         $responseXml = $api_messages->request($start, $end, $pcount, $account);
         //发送抓取请求
         if (stristr($responseXml, 'HTTP 404') || $responseXml == '') {
             self::$errCode = 5001;
             self::$errMsg = '抓取数据失败 in code line --' . __LINE__;
             return FALSE;
         }
         //             echo $responseXml, "\n\n";
         $responseDoc = new DomDocument();
         $responseDoc->loadXML($responseXml);
         $data = XML_unserialize($responseXml);
         /*----- 抓取message并解析数据 -----*/
         /*----- 根据返回结果记录log -----*/
         $Ack = $data['GetMyMessagesResponse']['Ack'];
         if ($Ack == '' || $Ack != 'Success') {
             echo $responseXml;
             echo "\n" . '-- 获取数据失败 --' . $account . '  ' . $Ack . ' at line ' . __LINE__ . "\n";
             //                 $pcount++;
             continue;
         }
         $mctime = time();
         /* ----- 判断返回结果里面是否包含了message ----- */
         if (!is_array($data['GetMyMessagesResponse']['Messages']) || empty($data['GetMyMessagesResponse']['Messages']['Message'])) {
             $Trans = array();
         } else {
             $Trans = $data['GetMyMessagesResponse']['Messages']['Message'];
             $Sender = $data['GetMyMessagesResponse']['Messages']['Message']['Sender'];
             if ($Sender != '') {
                 $Trans = array();
                 $Trans[0] = $data['GetMyMessagesResponse']['Messages']['Message'];
             }
         }
         /* ----- 判断返回结果里面是否包含了message ----- */
         foreach ($Trans as $Transaction) {
             //循环抓取message内容
             $Read = $Transaction['Read'] ? 1 : 0;
             $HighPriority = $Transaction['HighPriority'];
             $Sender = $Transaction['Sender'];
             $MessageID = $Transaction['MessageID'];
             $RecipientUserID = $Transaction['RecipientUserID'];
             $Subject = str_rep($Transaction['Subject']);
             $MessageType = $Transaction['MessageType'];
             $Replied = $Transaction['Replied'];
             $ItemID = $Transaction['ItemID'];
             $ExternalMessageID = $Transaction['ExternalMessageID'];
             // 之前的id
             $ReceiveDate = $Transaction['ReceiveDate'];
             $ItemTitle = str_rep($Transaction['ItemTitle']);
             $createtime1 = strtotime($ReceiveDate);
             $date = date('Y-m-d', strtotime("{$ReceiveDate} + 8 hours"));
             if ($idlimit !== FALSE) {
                 if ($idlimit >= $MessageID) {
                     echo 'in limit -- ' . $MessageID . "\n";
                     continue;
                 }
             }
             $check_sql = "select id from msg_message where message_id='{$MessageID}' ";
             $res = $this->dbconn->query($check_sql);
             $checkresult = $this->dbconn->fetch_array_all($res);
             //获取结果集
             if (count($checkresult) == 0) {
                 //判断该message之前是否已经被抓取过了
                 if ($Replied == 'false') {
                     $responseXml = $api_messages->requestMessagesID($MessageID);
                     //                         echo $responseXml, "\n";
                     $www = $responseXml;
                     if (stristr($responseXml, 'HTTP 404') || $responseXml == '') {
                         self::$errCode = 5000;
                         self::$errMsg = '获取message信息失败 in code line ---' . __LINE__;
                         continue;
                     }
                     $responseDoc = new DomDocument();
                     $responseDoc->loadXML($responseXml);
                     $data = XML_unserialize($responseXml);
                     //print_r($data);exit;
                     $Content = $data['GetMyMessagesResponse']['Messages']['Message']['Text'];
                     $status = 0;
                     $forms = 0;
                     $classid = '0';
                     $case_sendid = '';
                     $disputeid = '';
                     $official = array('eBay', '*****@*****.**');
                     if (in_array($Sender, $official)) {
                         //系统邮件 不用理会
                         $classid = 415;
                         $forms = 2;
                     } else {
                         $first = substr($Sender, 0, 1);
                         $ss = "select id from msg_messagecategory where rules like '%{$first}%' and ebay_account ='{$account}'";
                         $rear = $this->dbconn->fetch_array_all($this->dbconn->query($ss));
                         if (count($rear) > 0) {
                             $classid = $rear[0]['id'];
                         } else {
                             $classid = -1;
                         }
                     }
                     //                         echo $classid, "\n";
                     if ($HighPriority == 'true') {
                         $forms = 3;
                     }
                     $filepath = $patch . $account . '/' . $date . '/' . $MessageID . '.html';
                     //文件存储路径
                     $sql = "INSERT INTO `msg_message` (`message_id` , `message_type` ,  `recipientid` ";
                     $sql .= ",  `sendid` , `subject` , `itemid` , ";
                     $sql .= "`title` , `createtime` ,  `add_time` , `ebay_account`,`classid`,`createtimestamp`,`status`,`forms`,`Read`,`ExternalMessageID`,`case_sendid`,`disputeid`, `filepath`)VALUES ('{$MessageID}', '{$MessageType}' ,";
                     $sql .= "  '{$RecipientUserID}' ,  '{$Sender}' , '{$Subject}' , '{$ItemID}' , ";
                     $sql .= "  '{$ItemTitle}' , '{$ReceiveDate}' , '{$mctime}', '{$account}','{$classid}','{$createtime1}','{$status}','{$forms}','{$Read}','{$ExternalMessageID}','{$case_sendid}','{$disputeid}', '{$filepath}') ";
                     if ($this->dbconn->query($sql)) {
                         echo "{$MessageID} Add Success" . "\n";
                         if (write_a_file(MSGREALPREFIX . $filepath, $Content) === false) {
                         }
                     } else {
                         echo "{$MessageID} Add Failure" . "\n";
                     }
                 }
             } else {
                 echo $MessageID . ' -- has exists' . "\n";
             }
         }
         if (count($Trans) < 199) {
             break;
         }
     }
 }
Beispiel #9
0
 /**
  * 敦煌订单导入
  */
 public function act_insertDhgateOrder()
 {
     if (isset($_FILES['DHFile']['tmp_name'])) {
         $filePath = $_FILES['DHFile']['tmp_name'];
         $PHPExcel = E('PHPExcel');
         $PHPReader = new PHPExcel_Reader_Excel2007();
         if (!$PHPReader->canRead($filePath)) {
             $PHPReader = new PHPExcel_Reader_Excel5();
             if (!$PHPReader->canRead($filePath)) {
                 self::$errMsg[] = get_promptmsg(10058);
                 return false;
             }
         }
         $PHPExcel = $PHPReader->load($filePath);
         $currentSheet = $PHPExcel->getSheet(0);
         $orderid = array();
         $orderData = array();
         $account = $_POST['dhgateAccount'];
         //accountId
         if (intval($account) <= 0) {
             self::$errMsg[] = get_promptmsg(10054);
             return false;
         }
         $c = 2;
         while (true) {
             $aa = 'A' . $c;
             $bb = 'B' . $c;
             $cc = 'C' . $c;
             $dd = 'D' . $c;
             $ee = 'E' . $c;
             $ff = 'F' . $c;
             $gg = 'G' . $c;
             $hh = 'H' . $c;
             $ii = 'I' . $c;
             $jj = 'J' . $c;
             $kk = 'K' . $c;
             $ll = 'L' . $c;
             $mm = 'M' . $c;
             $nn = 'N' . $c;
             $oo = 'O' . $c;
             $pp = 'P' . $c;
             $qq = 'Q' . $c;
             $rr = 'R' . $c;
             $ss = 'S' . $c;
             $tt = 'T' . $c;
             $uu = 'U' . $c;
             $vv = 'V' . $c;
             $ww = 'W' . $c;
             $xx = 'X' . $c;
             $yy = 'Y' . $c;
             $zz = 'Z' . $c;
             $c++;
             $recordNumber = trim($currentSheet->getCell($aa)->getValue());
             if (empty($recordNumber)) {
                 break;
             }
             if (M('OrderAdd')->checkIsExists(array('recordNumber' => $recordNumber, 'accountId' => $account))) {
                 self::$errMsg[] = get_promptmsg(10043, $recordNumber);
                 //"该recordNumber已经存在<br/>";
                 continue;
             }
             $transId = '';
             $userId = str_rep(trim($currentSheet->getCell($cc)->getValue()));
             //买家名称
             $ordersTime = strtotime(trim($currentSheet->getCell($dd)->getValue()));
             // 下单时间
             $paymentTime = strtotime(trim($currentSheet->getCell($ee)->getValue()));
             // 付款时间
             $shippingFee = str_rep(trim(trim($currentSheet->getCell($gg)->getValue()), '$'));
             //物流费用
             $actualTotal = str_rep(trim(trim($currentSheet->getCell($jj)->getValue()), '$'));
             //订单总金额
             $username = str_rep(trim($currentSheet->getCell($nn)->getValue()));
             //收货人名称
             $platformUsername = $username;
             $countryName = str_rep(trim($currentSheet->getCell($oo)->getValue()));
             //收货国家
             $countryName = mysql_real_escape_string($countryName);
             $state = str_rep(trim($currentSheet->getCell($pp)->getValue()));
             //州/省
             $city = str_rep(trim($currentSheet->getCell($qq)->getValue()));
             //城市
             $street = str_rep(trim($currentSheet->getCell($rr)->getValue()));
             //地址
             $zipCode = str_rep(trim($currentSheet->getCell($ss)->getValue()));
             //邮编
             $phone = str_rep(trim($currentSheet->getCell($tt)->getValue()));
             //联系电话(座机)
             $ebay_carrier = str_rep(trim($currentSheet->getCell($uu)->getValue()));
             //买家选择物流
             $develiverytime = strtotime(str_rep(trim($currentSheet->getCell($vv)->getValue())));
             //发货期限
             $productsinformation = str_rep(trim($currentSheet->getCell($kk)->getValue()));
             //订单信息
             $productsinformation = explode('【', $productsinformation);
             $goods_list = array();
             for ($j = 0; $j < count($productsinformation); $j++) {
                 $labelstr = $productsinformation[$j];
                 if ($labelstr != '') {
                     $title = $qty = $sku = $_ebay_carrier = '';
                     $data = explode('<br />', nl2br($labelstr));
                     $title = substr($data[0], 4);
                     foreach ($data as $value) {
                         if (strpos($value, '商品编号/工厂编号') != false) {
                             list($t, $sku) = explode(':', $value);
                             $sku = trim(trim($sku, ')'), ')');
                         } else {
                             if (strpos($value, '数量') != false) {
                                 list($t, $qty) = explode(':', $value);
                                 $qty = intval(trim($qty));
                             }
                         }
                         if (strpos($value, '产品单价') != false) {
                             list($t, $itemPrice) = explode(':', $value);
                             $currency = substr($itemPrice, 0, 1);
                             $itemPrice = substr($itemPrice, 1, strlen($itemPrice) - 1);
                         }
                     }
                     $sku = trim($sku);
                     $amount = trim($qty);
                     $itemTitle = trim($title);
                     if (empty($itemPrice)) {
                         $itemPrice = 0;
                     }
                     $goods_list[] = $sku;
                     $orderData[$recordNumber]['orderDetail'][$sku]['orderDetail']['sku'] = $sku;
                     $orderData[$recordNumber]['orderDetail'][$sku]['orderDetail']['amount'] = $amount;
                     $orderData[$recordNumber]['orderDetail'][$sku]['orderDetail']['itemPrice'] = $itemPrice;
                     $orderData[$recordNumber]['orderDetail'][$sku]['orderDetail']['shippingFee'] = $shippingFee;
                     $orderData[$recordNumber]['orderDetail'][$sku]['orderDetail']['recordNumber'] = $recordNumber;
                     $orderData[$recordNumber]['orderDetail'][$sku]['orderDetail']['createdTime'] = time();
                     $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailExtension']['itemTitle'] = $itemTitle;
                 }
             }
             if (in_array($recordNumber, $orderid)) {
                 $orderData[$recordNumber]['orderDetail'][$sku]['orderDetail']['sku'] = $sku;
                 $orderData[$recordNumber]['orderDetail'][$sku]['orderDetail']['amount'] = $amount;
                 $orderData[$recordNumber]['orderDetail'][$sku]['orderDetail']['itemPrice'] = $itemPrice;
                 $orderData[$recordNumber]['orderDetail'][$sku]['orderDetail']['shippingFee'] = $shippingFee;
                 $orderData[$recordNumber]['orderDetail'][$sku]['orderDetail']['recordNumber'] = $recordNumber;
                 $orderData[$recordNumber]['orderDetail'][$sku]['orderDetail']['createdTime'] = time();
                 $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailExtension']['itemTitle'] = $itemTitle;
             } else {
                 $orderid[] = $recordNumber;
                 //order信息
                 $platformList = M('Account')->getPlatformid($account);
                 $orderData[$recordNumber]['order']['recordNumber'] = $recordNumber;
                 $orderData[$recordNumber]['order']['platformId'] = $platformList[0]['platformId'];
                 //这里要根据accountId得到对应的platformId
                 $orderData[$recordNumber]['order']['accountId'] = $account;
                 $orderData[$recordNumber]['order']['orderStatus'] = 0;
                 $orderData[$recordNumber]['order']['ordersTime'] = $ordersTime;
                 $orderData[$recordNumber]['order']['paymentTime'] = $paymentTime;
                 $orderData[$recordNumber]['order']['onlineTotal'] = $actualTotal;
                 $orderData[$recordNumber]['order']['actualTotal'] = $actualTotal;
                 $orderData[$recordNumber]['order']['actualShipping'] = $shippingFee;
                 $orderData[$recordNumber]['order']['currency'] = 'USD';
                 //取默认,待以后确认处理
                 $orderData[$recordNumber]['order']['transportId'] = 0;
                 //走拦截流程,取消默认
                 $orderData[$recordNumber]['order']['pmId'] = 0;
                 //包材ID,默认0
                 $orderData[$recordNumber]['order']['channelId'] = 0;
                 //渠道ID,默认0
                 $orderData[$recordNumber]['order']['orderAddTime'] = time();
                 $orderData[$recordNumber]['order']['calcShipping'] = $shippingFee;
                 $orderData[$recordNumber]['order']['orderType'] = 0;
                 $orderData[$recordNumber]['order']['completeTime'] = 0;
                 //完结时间,默认0
                 $orderData[$recordNumber]['order']['is_offline'] = 1;
                 //标识为线下订单
                 $orderData[$recordNumber]['order']['ORtransport'] = $ebay_carrier;
                 //order扩展信息
                 $orderData[$recordNumber]['orderExtension']['payPalPaymentId'] = $transId;
                 //user信息
                 $orderData[$recordNumber]['orderUserInfo']['platformUsername'] = $platformUsername;
                 $orderData[$recordNumber]['orderUserInfo']['username'] = $username;
                 $orderData[$recordNumber]['orderUserInfo']['email'] = ' ';
                 $orderData[$recordNumber]['orderUserInfo']['countryName'] = $countryName;
                 $orderData[$recordNumber]['orderUserInfo']['currency'] = $currency;
                 //$currency;
                 $orderData[$recordNumber]['orderUserInfo']['state'] = $state;
                 $orderData[$recordNumber]['orderUserInfo']['city'] = $city;
                 $orderData[$recordNumber]['orderUserInfo']['county'] = ' ';
                 //区县默认空
                 $orderData[$recordNumber]['orderUserInfo']['address1'] = $street;
                 $orderData[$recordNumber]['orderUserInfo']['phone'] = $phone;
                 $orderData[$recordNumber]['orderUserInfo']['zipCode'] = $zipCode;
                 //detail信息
                 $orderData[$recordNumber]['orderDetail'][$sku]['orderDetail']['sku'] = $sku;
                 $orderData[$recordNumber]['orderDetail'][$sku]['orderDetail']['amount'] = $amount;
                 $orderData[$recordNumber]['orderDetail'][$sku]['orderDetail']['itemPrice'] = $itemPrice;
                 $orderData[$recordNumber]['orderDetail'][$sku]['orderDetail']['shippingFee'] = $shippingFee;
                 $orderData[$recordNumber]['orderDetail'][$sku]['orderDetail']['recordNumber'] = $recordNumber;
                 $orderData[$recordNumber]['orderDetail'][$sku]['orderDetail']['createdTime'] = time();
                 $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailExtension']['itemTitle'] = $itemTitle;
             }
         }
         return $this->act_insertOrder($orderData);
     } else {
         self::$errMsg[] = get_promptmsg(10053);
         return false;
     }
 }
Beispiel #10
0
function GetFeedback($account, $startpage, $endpage, $perPageCount)
{
    //require_once  WEB_PATH."lib/xmlhandle.php";
    global $dbcon, $api_feedback, $user;
    echo '同步feedback,开始于第' . $startpage . '页,结束于第' . $endpage . '页,每页同步' . $perPageCount . '条' . "\n";
    $hasmore = true;
    $status = "";
    $FBAct = new EbayFeedbackAct();
    while (true) {
        echo '开始运行,第' . $startpage . '页' . "\n";
        $responseXml = $api_feedback->request($startpage, $perPageCount);
        if (stristr($responseXml, 'HTTP 404') || $responseXml == '') {
            return 'id not found';
        }
        $data = XML_unserialize($responseXml);
        //var_dump($data);
        $ack = $data['GetFeedbackResponse']['Ack'];
        $TotalNumberOfPages = $data['GetFeedbackResponse']['PaginationResult']['TotalNumberOfPages'];
        if ($ack != "Success") {
            echo "<font color=red>评价加载失败</font>";
            //var_dump($data['GetFeedbackResponse']);exit;
        }
        $feedback = $data['GetFeedbackResponse']['FeedbackDetailArray']['FeedbackDetail'];
        foreach ($feedback as $li) {
            $CommentingUser = str_rep($li['CommentingUser']);
            $CommentingUserScore = str_rep($li['CommentingUserScore']);
            $CommentText = mysql_real_escape_string(str_rep($li['CommentText']));
            $CommentTime = str_rep($li['CommentTime']);
            $feedbacktime = date('Y-m-d H:i:s', strtotime($CommentTime));
            $feedbacktime = date('Y-m-d H:i:s', strtotime("{$feedbacktime} - 900 minutes"));
            $feedbacktime = strtotime($feedbacktime);
            $CommentType = str_rep($li['CommentType']);
            $ItemID = str_rep($li['ItemID']);
            $FeedbackID = str_rep($li['FeedbackID']);
            $TransactionID = $li['TransactionID'] ? $li['TransactionID'] : 0;
            $ItemTitle = str_rep($li['ItemTitle']);
            $currencyID = str_rep($li['ItemPrice attr']['currencyID']);
            $ItemPrice = str_rep($li['ItemPrice']);
            $data = array('CommentingUser' => $CommentingUser, 'account' => $account, 'CommentingUserScore' => $CommentingUserScore, 'CommentText' => $CommentText, 'CommentTime' => $CommentTime, 'CommentType' => $CommentType, 'ItemID' => $ItemID, 'FeedbackID' => $FeedbackID, 'TransactionID' => $TransactionID, 'ItemTitle' => $ItemTitle, 'currencyID' => $currencyID, 'ItemPrice' => $ItemPrice, 'feedbacktime' => $feedbacktime);
            $list = $FBAct->act_getOrderList('id', " where FeedbackID='{$FeedbackID}' ");
            if (!$list) {
                //不存在,则插入
                $ret = EbayFeedbackModel::insertRow($data);
                if ($ret) {
                    echo "insert success!\n";
                    $field = 'a.ebay_ordersn, a.ebay_paidtime, b.sku, b.ebay_amount';
                    $orderInfo = UserCacheModel::getErpOrderInfo($CommentingUser, $ItemID, $TransactionID, $field);
                    /* var_dump($orderInfo);
                    			exit; */
                    $ordersn = $orderInfo['data'][0]['ebay_ordersn'];
                    //订单号
                    $sku = $orderInfo['data'][0]['sku'];
                    //料号
                    $amount = $orderInfo['data'][0]['ebay_amount'];
                    //数量
                    $orderPayTime = $orderInfo['data'][0]['ebay_paidtime'];
                    //付款时间
                    $data = array('Qty' => $amount, 'sku' => $sku, 'orderPayTime' => $orderPayTime);
                    EbayFeedbackModel::update($data, " and FeedbackID = '{$FeedbackID}'");
                    UserCacheModel::updateErpOrderInfoFeedback($ordersn, $ItemID, $TransactionID, $CommentType);
                } else {
                    echo "insert failed!\n";
                }
            } else {
                echo "Exsited!\n";
            }
        }
        if ($startpage >= $endpage) {
            break;
        }
        $startpage++;
    }
}
 public function view_dhgate()
 {
     include_once WEB_PATH . "lib/PHPExcel.php";
     //phpexcel
     //require_once  WEB_PATH."conf/scripts/script.ebay.config.php";
     $toptitle = '敦煌订单导入';
     //头部title
     $this->smarty->assign('toptitle', $toptitle);
     $this->smarty->assign('toplevel', 2);
     $this->smarty->assign('secondlevel', 26);
     $OmAccountAct = new OmAccountAct();
     $dhgateAccountList = $OmAccountAct->act_getDhgateAccountList();
     $this->smarty->assign("dhgateAccountList", $dhgateAccountList);
     //var_dump($dhgateAccountList);//exit;
     if (isset($_FILES['orderUpfile']['tmp_name'])) {
         $filePath = $_FILES['orderUpfile']['tmp_name'];
         $PHPExcel = new PHPExcel();
         $PHPReader = new PHPExcel_Reader_Excel2007();
         if (!$PHPReader->canRead($filePath)) {
             $PHPReader = new PHPExcel_Reader_Excel5();
             if (!$PHPReader->canRead($filePath)) {
                 echo 'no Excel';
                 return;
             }
         }
         $PHPExcel = $PHPReader->load($filePath);
         $currentSheet = $PHPExcel->getSheet(0);
         //$excellists    = excel2array($PHPExcel, $filePath, 0, 0);
         //print_r($excellists);print_r($_SESSION);
         $orderid = array();
         $orderData = array();
         //$orderarr = OrderindexModel::showSearchOrderList("om_unshipped_order","where da.id=14448");
         //echo "<pre>";print_r($orderarr);
         $account = $_POST['dhgateAccount'];
         if (intval($account) <= 0) {
             echo '请选择账号!';
             exit;
         }
         $transportation = CommonModel::getCarrierList();
         //所有的
         //var_dump($transportation);exit;
         $c = 2;
         while (true) {
             $aa = 'A' . $c;
             $bb = 'B' . $c;
             $cc = 'C' . $c;
             $dd = 'D' . $c;
             $ee = 'E' . $c;
             $ff = 'F' . $c;
             $gg = 'G' . $c;
             $hh = 'H' . $c;
             $ii = 'I' . $c;
             $jj = 'J' . $c;
             $kk = 'K' . $c;
             $ll = 'L' . $c;
             $mm = 'M' . $c;
             $nn = 'N' . $c;
             $oo = 'O' . $c;
             $pp = 'P' . $c;
             $qq = 'Q' . $c;
             $rr = 'R' . $c;
             $ss = 'S' . $c;
             $tt = 'T' . $c;
             $uu = 'U' . $c;
             $vv = 'V' . $c;
             $ww = 'W' . $c;
             $xx = 'X' . $c;
             $yy = 'Y' . $c;
             $zz = 'Z' . $c;
             $c++;
             $recordNumber = trim($currentSheet->getCell($aa)->getValue());
             $transId = '';
             $userId = str_rep(trim($currentSheet->getCell($cc)->getValue()));
             //买家名称
             $ordersTime = strtotime(trim($currentSheet->getCell($dd)->getValue()));
             // 下单时间
             $paymentTime = strtotime(trim($currentSheet->getCell($ee)->getValue()));
             // 付款时间
             $shippingFee = str_rep(trim(trim($currentSheet->getCell($gg)->getValue()), '$'));
             //物流费用
             $actualTotal = str_rep(trim(trim($currentSheet->getCell($jj)->getValue()), '$'));
             //订单总金额
             $productsinformation = str_rep(trim($currentSheet->getCell($kk)->getValue()));
             //订单信息
             //var_dump($productsinformation);exit;
             $productsinformation = explode('【', $productsinformation);
             $dataarray = '';
             $_jj = 0;
             $goods_list = array();
             for ($j = 0; $j < count($productsinformation); $j++) {
                 $labelstr = $productsinformation[$j];
                 if ($labelstr != '') {
                     $title = $qty = $sku = $_ebay_carrier = '';
                     $data = explode('<br />', nl2br($labelstr));
                     $title = substr($data[0], 4);
                     foreach ($data as $value) {
                         if (strpos($value, '商品编号/工厂编号') != false) {
                             list($t, $sku) = explode(':', $value);
                             $sku = trim(trim($sku, ')'), ')');
                         } else {
                             if (strpos($value, '数量') != false) {
                                 list($t, $qty) = explode(':', $value);
                                 $qty = intval(trim($qty));
                             }
                         }
                         if (strpos($value, '产品单价') != false) {
                             list($t, $itemPrice) = explode(':', $value);
                             $currency = substr($itemPrice, 0, 1);
                             $itemPrice = substr($itemPrice, 1, strlen($itemPrice) - 1);
                         }
                     }
                     $dataarray[$_jj]['sku'] = trim($sku);
                     $dataarray[$_jj]['qty'] = trim($qty);
                     $dataarray[$_jj]['title'] = trim($title);
                     $sku = trim($sku);
                     $amount = trim($qty);
                     $itemTitle = trim($title);
                     $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailData']['sku'] = $sku;
                     $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailData']['amount'] = $amount;
                     $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailData']['itemPrice'] = $itemPrice;
                     $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailData']['shippingFee'] = $shippingFee;
                     $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailExtenData']['itemTitle'] = $itemTitle;
                     //$orderData['orderDetail']['orderDetailExtenData']['note'] = $value[10];
                     $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailExtenData']['transId'] = $transId;
                 }
             }
             $username = str_rep(trim($currentSheet->getCell($nn)->getValue()));
             //收货人名称
             $platformUsername = $username;
             $countryName = str_rep(trim($currentSheet->getCell($oo)->getValue()));
             //收货国家
             $countryName = mysql_real_escape_string($countryName);
             $state = str_rep(trim($currentSheet->getCell($pp)->getValue()));
             //州/省
             $city = str_rep(trim($currentSheet->getCell($qq)->getValue()));
             //城市
             $street = str_rep(trim($currentSheet->getCell($rr)->getValue()));
             //地址
             $zipCode = str_rep(trim($currentSheet->getCell($ss)->getValue()));
             //邮编
             $phone = str_rep(trim($currentSheet->getCell($tt)->getValue()));
             //联系电话(座机)
             $ebay_carrier = str_rep(trim($currentSheet->getCell($uu)->getValue()));
             //买家选择物流
             $develiverytime = strtotime(str_rep(trim($currentSheet->getCell($vv)->getValue())));
             //发货期限
             if ($ebay_carrier == 'FEDEX') {
                 $ebay_carrier = 'FedEx';
             }
             if (in_array($ebay_carrier, array('CHINAPOSTAIR'))) {
                 $ebay_carrier = '中国邮政挂号';
             }
             if (in_array($ebay_carrier, array('HONGKONGPOST'))) {
                 $ebay_carrier = '香港小包挂号';
             }
             if (in_array($ebay_carrier, array('UPS'))) {
                 $ebay_carrier = 'UPS';
             }
             if ($ebay_carrier == 'DHL') {
                 $ebay_carrier = 'DHL';
             }
             if ($ebay_carrier == 'EMS') {
                 $ebay_carrier = 'EMS';
             }
             $carrierNameCn = $ebay_carrier;
             if (empty($recordNumber)) {
                 break;
             }
             //order信息
             $orderData[$recordNumber]['orderData']['recordNumber'] = $recordNumber;
             $orderData[$recordNumber]['orderData']['ordersTime'] = $ordersTime;
             $orderData[$recordNumber]['orderData']['paymentTime'] = $paymentTime;
             $orderData[$recordNumber]['orderData']['actualTotal'] = $actualTotal;
             $orderData[$recordNumber]['orderData']['orderAddTime'] = time();
             $orderData[$recordNumber]['orderData']['orderStatus'] = 100;
             $orderData[$recordNumber]['orderData']['orderType'] = 101;
             $SYS_ACCOUNTS = OmAvailableModel::getTNameList("om_account", "*", " where id='{$account}'");
             $orderData[$recordNumber]['orderData']['accountId'] = $account;
             $orderData[$recordNumber]['orderData']['platformId'] = $SYS_ACCOUNTS[0]['platformId'];
             $SYS_ACCOUNTS = OmAvailableModel::getPlatformAccount();
             foreach ($SYS_ACCOUNTS as $platform => $accounts) {
                 foreach ($accounts as $accountId => $accountname) {
                     if ($account == $accountId) {
                         if ($platform == 'ebay') {
                             //为ebay平台
                             $orderData[$recordNumber]['orderData']['isFixed'] = 2;
                         } else {
                             $orderData[$recordNumber]['orderData']['isFixed'] = 1;
                         }
                     }
                 }
             }
             foreach ($transportation as $tranValue) {
                 if ($tranValue['carrierNameCn'] == $carrierNameCn) {
                     $orderData[$recordNumber]['orderData']['transportId'] = $tranValue['id'];
                     break;
                 }
             }
             //order扩展信息
             $currency = 'USD';
             //都是美元的
             $orderData[$recordNumber]['orderExtenData']['currency'] = $currency;
             $orderData[$recordNumber]['orderExtenData']['paymentStatus'] = "PAY_SUCCESS";
             $orderData[$recordNumber]['orderExtenData']['transId'] = $transId;
             // 交易id;;
             //$orderData[$recordNumber]['orderExtenData']['PayPalPaymentId']		=	$PayPalPaymentId;
             $orderData[$recordNumber]['orderExtenData']['platformUsername'] = $platformUsername;
             $orderData[$recordNumber]['orderExtenData']['feedback'] = $note;
             //买家备注
             //user信息
             $orderData[$recordNumber]['orderUserInfoData']['platformUsername'] = $platformUsername;
             $orderData[$recordNumber]['orderUserInfoData']['username'] = $username;
             $orderData[$recordNumber]['orderUserInfoData']['email'] = $email;
             $orderData[$recordNumber]['orderUserInfoData']['street'] = $street;
             $orderData[$recordNumber]['orderUserInfoData']['currency'] = $currency;
             $orderData[$recordNumber]['orderUserInfoData']['address2'] = $address2;
             $orderData[$recordNumber]['orderUserInfoData']['city'] = $city;
             $orderData[$recordNumber]['orderUserInfoData']['state'] = $state;
             $orderData[$recordNumber]['orderUserInfoData']['zipCode'] = $zipCode;
             $orderData[$recordNumber]['orderUserInfoData']['countryName'] = $countryName;
             $orderData[$recordNumber]['orderUserInfoData']['landline'] = $phone;
             //detail信息
             $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailData']['sku'] = $sku;
             $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailData']['amount'] = $amount;
             $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailData']['itemPrice'] = $itemPrice;
             $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailData']['shippingFee'] = $shippingFee;
             $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailData']['recordNumber'] = $recordNumber;
             $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailData']['createdTime'] = time();
             $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailExtenData']['itemTitle'] = $itemTitle;
             //$orderData['orderDetail']['orderDetailExtenData']['note'] = $value[10];
             $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailExtenData']['transId'] = $transId;
         }
         //echo "<pre>";
         //print_r($orderData);
         $message = "";
         foreach ($orderData as $id => $order) {
             $msg = commonModel::checkOrder($id);
             if ($msg) {
                 $message .= "<font color='red'>订单{$id}已存在!</font><br>";
                 continue;
             }
             //计算订单属性
             if (count($order['orderDetail']) == 1) {
                 $detail = current($order['orderDetail']);
                 if ($detail['orderDetailData']['amount'] == 1) {
                     $orderData[$id]['orderData']['orderAttribute'] = 1;
                 } else {
                     $orderData[$id]['orderData']['orderAttribute'] = 2;
                 }
             } else {
                 $orderData[$id]['orderData']['orderAttribute'] = 3;
             }
             //计算订单重量及包材
             $obj_order_detail_data = array();
             foreach ($order['orderDetail'] as $sku => $detail) {
                 $obj_order_detail_data[] = $detail['orderDetailData'];
             }
             $weightfee = commonModel::calcOrderWeight($obj_order_detail_data);
             $orderData[$id]['orderData']['calcWeight'] = $weightfee[0];
             $orderData[$id]['orderData']['pmId'] = $weightfee[1];
             //echo "<pre>";print_r($weightfee);exit;
             //计算运费
             $calcShippingInfo = CommonModel::calcAddOrderShippingFee($orderData[$id], $orderData[$id]['orderData']['isFixed']);
             //计算运费
             //echo "<pre>";print_r($calcShippingInfo);
             $orderData[$id]['orderData']['channelId'] = $calcShippingInfo['channelId'];
             $orderData[$id]['orderData']['calcShipping'] = $calcShippingInfo['fee'];
             //echo "<pre>";print_r($orderData);exit;
             //调用旧系统接口,先插入数据到旧系统
             $rtn = OldsystemModel::orderErpInsertorder($orderData[$id]);
             //echo "<pre>";print_r($rtn);exit;
             $insertData = array();
             if (empty($rtn)) {
                 $message .= "<font color='red'>订单{$id}同步ERP发生异常,跳过!</font><br>";
                 continue;
             }
             if ($rtn['errcode'] == 200) {
                 $rtn_data = $rtn['data'];
                 $orderId = $rtn_data['orderId'];
                 //echo "插入老系统成功,订单编号 [$orderId] \n";
                 $pmId = $rtn_data['pmId'];
                 $totalweight = $rtn_data['totalweight'];
                 $shipfee = $rtn_data['shipfee'];
                 $carrier = $rtn_data['carrier'];
                 $carrierId = $rtn_data['carrierId'];
                 $status = $rtn_data['status'];
                 $orderData[$id]['orderData']['id'] = $orderId;
                 //赋予新系统订单编号,一切数据已老系统返回的为准
                 if ($orderData[$id]['orderData']['calcWeight'] != $totalweight) {
                     $insertData['old_totalweight'] = $totalweight;
                     $insertData['new_totalweight'] = $orderData[$id]['orderData']['calcWeight'];
                     $orderData[$id]['orderData']['calcWeight'] = $totalweight;
                 }
                 if ($orderData[$id]['orderData']['pmId'] != $pmId) {
                     $insertData['old_pmId'] = $pmId;
                     $insertData['new_pmId'] = $orderData[$id]['orderData']['pmId'];
                     $orderData[$id]['orderData']['pmId'] = $pmId;
                 }
                 if ($orderData[$id]['orderData']['calcShipping'] != $shipfee) {
                     $insertData['old_shippfee'] = $shipfee;
                     $insertData['new_shippfee'] = $orderData[$id]['orderData']['calcShipping'];
                     $orderData[$id]['orderData']['calcShipping'] = $shipfee;
                 }
                 if ($orderData[$id]['orderData']['transportId'] != $carrierId) {
                     $insertData['old_carrierId'] = $carrierId;
                     $insertData['new_carrierId'] = $orderData[$id]['orderData']['transportId'];
                     $orderData[$id]['orderData']['transportId'] = $carrierId;
                 }
                 if (!empty($insertData)) {
                     $insertData['ebay_id'] = $orderId;
                     $insertData['addtime'] = time();
                     OldsystemModel::insertTempSyncRecords($insertData);
                     // 插入临时对比记录表
                 }
                 //缺货拦截
                 $orderData[$id] = AutoModel::auto_contrast_intercept($orderData[$id]);
                 //插入订单
                 $info = OrderAddModel::insertAllOrderRowNoEvent($orderData[$id]);
                 if ($info) {
                     $message .= "<font color='green'>订单{$id}上传成功!</font><br>";
                 } else {
                     $message .= "<font color='red'>订单{$id}上传失败!</font><br>";
                 }
             } else {
                 $message .= "<font color='green'>添加失败,原因为:{$rtn['msg']}!</font><br>";
             }
         }
         $this->smarty->assign("showerrorinfo", $message);
     }
     $this->smarty->display('dhgateImport.htm');
 }
Beispiel #12
0
function GetFeedback_change($account)
{
    global $dbcon, $api_feedback, $user;
    $verb = 'GetFeedback';
    $cc = date("Y-m-d H:i:s");
    $start = date('Y-m-d H:i:s', strtotime("{$cc} - 61 days"));
    $start = strtotime($start);
    $end = strtotime($cc);
    $file = EBAY_RAW_DATA_PATH . 'feedback_lost_sql/lost_sql.txt';
    $file2 = EBAY_RAW_DATA_PATH . 'feedback_lost_sql/success_sql.txt';
    $get = "select FeedbackID,CommentText,CommentingUser,ItemID,TransactionID,CommentType from ebay_feedback where account='{$account}' and (CommentType='Neutral' or CommentType='Negative') and feedbacktime between {$start} and {$end}";
    $get = $dbcon->execute($get);
    $get = $dbcon->getResultArray($get);
    for ($ii = 0; $ii < count($get); $ii++) {
        $status = "";
        $feedbackID = $get[$ii]['FeedbackID'];
        $commentingUser = $get[$ii]['CommentingUser'];
        $itemID = $get[$ii]['ItemID'];
        $transactionID = $get[$ii]['TransactionID'];
        $commentType = $get[$ii]['CommentType'];
        $commentText = $get[$ii]['CommentText'];
        $responseXml = $api_feedback->request_change($itemID, $transactionID, $commentingUser);
        if (stristr($responseXml, 'HTTP 404') || $responseXml == '') {
            return 'id not found';
        }
        $data = XML_unserialize($responseXml);
        $ack = $data['GetFeedbackResponse']['Ack'];
        $feedbackRevised = $data['GetFeedbackResponse']['FeedbackDetailArray']['FeedbackDetail'];
        $feedbackRevised = $feedbackRevised[0]['FeedbackRevised'];
        if ($ack != "Success") {
            echo '同步失败' . "\n";
        } else {
            if ($feedbackRevised == "true") {
                $feedback = $data['GetFeedbackResponse']['FeedbackDetailArray']['FeedbackDetail'];
                $feedbackType = $feedback[0]['CommentType'];
                $feedbackUser = $feedback[0]['CommentingUser'];
                if ($commentingUser == $feedbackUser) {
                    $feedbackText = addslashes(str_rep($feedback[0]['CommentText']));
                } else {
                    $feedbackText = addslashes(str_rep($commentText));
                }
                if ($commentType != $feedbackType) {
                    if ($commentType == "Neutral") {
                        if ($feedbackType == "Positive") {
                            $status = "21";
                            //中评改好评
                        } else {
                            if ($feedbackType == "Negative") {
                                $status = "23";
                                //中评改差评
                            } else {
                                $status = "22";
                                //中评改中评
                            }
                        }
                    } else {
                        if ($commentType == "Negative") {
                            if ($feedbackType == "Positive") {
                                $status = "31";
                                //差评改好评
                            } else {
                                if ($feedbackType == "Neutral") {
                                    $status = "32";
                                    //差评改中评
                                } else {
                                    $status = "33";
                                    //差评改差评
                                }
                            }
                        } else {
                        }
                    }
                    //过滤好评
                    if ($status != "") {
                        $update_type = "update ebay_feedback set status='{$status}',CommentType='{$feedbackType}',CommentText='{$feedbackText}' where FeedbackID={$feedbackID}";
                        $sql = $update_type;
                        echo $sql . "\n";
                        if ($dbcon->execute($update_type)) {
                            echo 'Success ' . "\n";
                            write_a_file($file2, $sql);
                        } else {
                            echo 'Failure ' . "\n";
                            echo mysql_errno() . ": " . mysql_error() . "\n";
                            write_a_file($file, $sql);
                        }
                        echo 'userID :' . $commentingUser . ":" . $commentType . "------------>" . $feedbackType . "\n";
                    }
                }
            }
        }
    }
    #########加载feedback_lost_sql########
    $relost_feedback_ids = '';
    $push_feedback_ids = '';
    $lost_feedback_path = $file;
    $feedback_content = read_and_empty_lost_sql($lost_feedback_path);
    $feedback_lists = sql_str2array($feedback_content);
    if (!empty($feedback_lists)) {
        foreach ($feedback_lists as $feedback_sql) {
            if (!$dbcon->execute($feedback_sql)) {
                $relost_feedback_ids .= $feedback_sql . "\n";
                //获取失败语句
            } else {
                $push_feedback_ids .= $feedback_sql . "\n";
                //获取成功语句
            }
        }
        if (!empty($relost_feedback_ids)) {
            write_a_file($lost_feedback_path, $relost_feedback_ids);
            //执行失败再次写入
        }
        if (!empty($push_feedback_ids)) {
            write_a_file(str_replace('lost_sql.txt', 'push_success_sql.txt', $lost_feedback_path), $push_feedback_ids);
        }
    }
}