Esempio n. 1
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;
        }
    }