Как войти на UPS.com с помощью php cURL

Мне нужен пример 2012 года, как войти в UPS с помощью PHP cURL. Я не закрываю сеанс между звонками. Можно выбрать 3 страницы: 1) страницу входа в систему 2) страницу пароля и 3) страницу счета

У меня было это работает раньше, однако это больше не работает. Я удалил файл cookie, и он некоторое время работал, затем получаю сообщение "Ваш текущий запрос истек из-за неактивности. Вам нужно будет перезапустить свой запрос". Если я не вхожу в окно, оно прерывается даже при успешном входе. Я попытался удалить файл cookie и начать заново, но это не сработало. Есть идеи, как сделать так, чтобы окно тайм-аута было бесконечным? Вот код, который у меня есть, учетные данные удалены:

              $cookie_file_path = "/tmp/cookie.txt";
              // remove previous cookie
              if (file_exists($cookie_file_path)) {
            `rm -fr {$cookie_file_path}`;
              } 
            $login_url = 'https://www.ups.com/one-to-one/login';
            $password_url = 'https://www.ups.com/one-to-one/password';
            $invoice_url = 'upsDOTcomSLASHviewbillSLASHinvoices';
            $agent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0) Gecko/20100101 Firefox/10.0";

            $login_data = "sysid=null&lang=null&langc=null&method=null&returnto=null&loc=en_US&uid=<user_id>&rememberMe=1&next=Next&pm_fp=version%253D1%2526pm%255Ffpua%253Dmozilla%252F5%252E0%2520%2528windows%2520nt%25206%252E1%253B%2520wow64%253B%2520rv%253A10%252E0%2529%2520gecko%252F20100101%2520firefox%252F10%252E0%257C5%252E0%2520%2528Windows%2529%257CWin32%2526pm%255Ffpsc%253D24%257C1920%257C1200%257C1160%2526pm%255Ffpsw%253D%257Cqt6%257Cqt5%257Cqt4%257Cqt3%257Cqt2%257Cqt1%257Cswf%257Cpdf%257Cpdf%2526pm%255Ffptz%253D%252D5%2526pm%255Ffpln%253Dlang%253Den%252DUS%257Csyslang%253D%257Cuserlang%253D%2526pm%255Ffpjv%253D1%2526pm%255Ffpco%253D1";
            $password_data = "sysid=null&lang=null&langc=null&method=null&returnto=null&loc=en_US&password=<password>&next=Log+In&pm_fp=version%253D1%2526pm%255Ffpua%253Dmozilla%252F5%252E0%2520%2528windows%2520nt%25206%252E1%253B%2520wow64%253B%2520rv%253A10%252E0%2529%2520gecko%252F20100101%2520firefox%252F10%252E0%257C5%252E0%2520%2528Windows%2529%257CWin32%2526pm%255Ffpsc%253D24%257C1920%257C1200%257C1160%2526pm%255Ffpsw%253D%257Cqt6%257Cqt5%257Cqt4%257Cqt3%257Cqt2%257Cqt1%257Cswf%257Cpdf%257Cpdf%2526pm%255Ffptz%253D%252D5%2526pm%255Ffpln%253Dlang%253Den%252DUS%257Csyslang%253D%257Cuserlang%253D%2526pm%255Ffpjv%253D1%2526pm%255Ffpco%253D1";

            $headers[] = "Accept: */*";
            $headers[] = "Connection: Keep-Alive";
            $headers[] = "Content-Type: application/x-www-form-urlencoded";
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $login_url);
            curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
            curl_setopt($ch, CURLOPT_USERAGENT, $agent);
            curl_setopt($ch, CURLOPT_POST, 1); 
            curl_setopt($ch, CURLOPT_POSTFIELDS, $login_data); 
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
            curl_setopt($ch, CURLOPT_REFERER, 'https://www.ups.com/myups/login'); 
            curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
            curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path); 
            ob_start();
            $result = curl_exec ($ch);
            ob_end_clean();
            echo curl_error($ch);   // prints nothing if successful
            //curl_close($ch);


            //$ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $password_url);
            curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
            curl_setopt($ch, CURLOPT_HEADER, 1);
            curl_setopt($ch, CURLOPT_USERAGENT, $agent); 
            curl_setopt($ch, CURLOPT_POST, 1); 
            curl_setopt($ch, CURLOPT_POSTFIELDS, $password_data); 
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
            curl_setopt($ch, CURLOPT_REFERER, $login_url); 
            curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
            curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path); 
            ob_start();
            $result = curl_exec ($ch);
            ob_end_clean();
            echo curl_error($ch)        // prints nothing if successful
            //curl_close($ch);


            //$ch = curl_init();
           curl_setopt($ch, CURLOPT_URL, $invoice_url);
           curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/html; charset=utf-8'));
           curl_setopt($ch, CURLOPT_HEADER, 1);
            curl_setopt($ch, CURLOPT_USERAGENT, $agent); 
            curl_setopt($ch, CURLOPT_POST, 1); 
            curl_setopt($ch, CURLOPT_POSTFIELDS, $invoice_data); 
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
            curl_setopt($ch, CURLOPT_REFERER, $password_url);
            curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
            curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path); 
            ob_start(); 
            $result = curl_exec ($ch);
            ob_end_clean();
            echo curl_error($ch);       // prints nothing if successful
            curl_close($ch);

Я не могу пройти первую страницу входа в систему даже после удаления и повторного создания файла cookie, так как я получаю:

Ваш текущий запрос истек из-за неактивности. Вам нужно будет перезапустить ваш запрос.

Любая помощь приветствуется.

2 ответа

Решение
  1. Попробуйте подключиться с другого сервера. Может быть, вы попали в черный список.
  2. Играть с CURLOPT_FRESH_CONNECT или же CURLOPT_FORBID_REUSE варианты скручивания
  3. Посетите страницу входа перед отправкой данных

Да, мне было скучно, но вот почему ты не должен этим заниматься.

1.2f Соглашения о технологии UPS:

Автоматизированный доступ. Без ограничений, любой доступ к Системам ИБП или размещенной Технологии ИБП с помощью устройств автоматического запроса, роботов или инструментов для сбора и извлечения повторяющихся данных, процедур, сценариев или других механизмов с аналогичной функциональностью, которая сама по себе не является Технологией ИБП, лицензированной для таких целей, в настоящем документе прямо запрещено.

Другие вопросы по тегам