Доброй ночи! Занимался ли кто-нибудь интеграцией интернет-магазина с КТС? Вообще калькулятор у них есть на сайте http://www.ktscompany.ru/cost . Печаль, но api там и не пахнет. При беглом взгляде не понял где понял где у них ссылка на обработчик формы.... А не нашел ajax запрос: Код (Javascript): $.ajax({ type: 'get', url: '/route', data: { sender: sender, receiver: receiver, weight: weight, uniq: Math.random() }, Только что-то сходу get запрос из адресной строки ничего не дает. http://www.ktscompany.ru/route?sender=Самара&receiver=Самара&weight=3&uniq=5y85huhttyjyj Посоветуйте пожалуйста, в чем загвоздка?
что-то же должно было случиться?)) просто я думал file_get_contents отделать , но в принципе и curl неплох
калькулятор работает на доставку из Питера и Москвы в любые города. но при запросе из curl или адресной строки все равно глухо. кстати uniq число с плавающей точкой от 0 до 1
Так может это "защита". Утрировано заходите в сессии запоминается уникальный код посетителя, возможно он меняется от хита к хиту..... И т.п. Может проверяет что был именно аякс запрос а не "из строки браузера". Не пробовали с сервисом договориться? Сделаете им АПИ
попробовал - да норм из Москвы в Питер - смотрит на наличие X-Requested-With - чтоб был XMLHttpRequest uniq не обязателен
через Postman запрос отправлял, как только добавляешь в заголовки X-Requested-With - сразу норм Ну и конечно там еще не просто Москва, Питер надо отправлять а именно то - что автокомплит отдает, а там было чето sender = "Москва,+Москва"
Как то так в простейшем виде, если делать без учета размера товара. PHP: $href = 'http://www.ktscompany.ru/route?sender=Санкт-Петербург&receiver=ГородДоставки&weight=ВесОтправления&uniq=0.898'; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $href); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET'); curl_setopt($curl, CURLOPT_HTTPHEADER, array( "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0", 'X-Requested-With: XMLHttpRequest', ) ); $out = curl_exec($curl); $er = curl_error($curl); //Вывод ошибок curl_close($curl); var_dump(json_decode($out,true));