@ygen

Сдек curl запросы?

Подскажите, кто-то самостоятельно писал (без sdek api и пр) свой вызов api функций сдэк? В интернете информации 0.
Тех поддержка у них морозится и толком не может помочь.

Мне надо получить регионы. Потом получить города. Потом получить ПВЗ.
Авторизовался. Получил токен. У них указано что надо access_token передавать обязательно. Передаю - пишет ошибку авторизации. Добавил авторизацию. Пишет не правильный формат. Сделал как в указанном формате. Всё равно выдаёт ту же ошибку. Техподдержка не может помочь с этим.
Можете подсказать? Спасибо.

<?
$url='';

class sdek {
	public $url;
	public $parametrs;
	public $token_type;
	public $access_token;
	
	public function Authorizate() {
		$myCurl = curl_init();
		curl_setopt_array($myCurl, array(
			CURLOPT_URL => $this->url,
			CURLOPT_RETURNTRANSFER => true,
			CURLOPT_POST => true,
			CURLOPT_POSTFIELDS => http_build_query(array('Content-Type: application/x-www-form-urlencoded'))
		));
		
		$response = curl_exec($myCurl);
		curl_close($myCurl);

	return $response;
	}
	
	
	public function Add_request() {
		$myCurl = curl_init();
		curl_setopt($myCurl, CURLOPT_URL, $this->url);
		curl_setopt($myCurl, CURLOPT_RETURNTRANSFER,true);
		curl_setopt($myCurl, CURLOPT_HTTPHEADER, $this->parametrs);
		curl_setopt($myCurl, CURLOPT_USERPWD, $this->token_type.$this->access_token.'');
		$response = curl_exec($myCurl);
		curl_close($myCurl);

	return $response;
	}	

}


$request=new sdek();

$request->url='https://api.edu.cdek.ru/v2/oauth/token?grant_type=client_credentials&client_id=EMscd6r9JnFiQ3bLoyjJY6eM78JrJceI&client_secret=PjLZkKBHEiLK3YsjtNrt3TGNG0ahs3kG';
//$request->parametrs=Array('grant_type'=>'client_credentials','client_id'=>'EMscd6r9JnFiQ3bLoyjJY6eM78JrJceI','client_secret'=>'PjLZkKBHEiLK3YsjtNrt3TGNG0ahs3kG');
$response=$request->Authorizate();
$mas=json_decode($response);

$token=$mas->access_token;
$token_type=$mas->token_type;


$request->url='https://api.edu.cdek.ru/v2/location/regions';
$request->token_type=$token_type;
$request->access_token="Bearer ";
$mas= (array) $mas;

$final_mas=array_merge(Array('Content-Type: application/x-www-form-urlencoded','country_codes'=>'RU'),$mas);
$request->parametrs=$final_mas;
$info=$request->Add_request();

echo '<pre>';print_r($info);echo '</pre>';
  • Вопрос задан
  • 812 просмотров
Решения вопроса 1
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
перед тем как браться за подвиги, убедись что ты в сказке. если ты не понимаешь что делаешь, то пользуйся тем что для тебя написали там все это есть (Мне надо получить регионы. Потом получить города. Потом получить ПВЗ. )
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы