MayorPlay
@MayorPlay
!developer

Как правильно отправить cURL запрос на апишку?

Всем привет, мне нужно отправить запрос на апи, в инструкции по апи описано это:
Для добавления пользователя необходимо передать действие add, секретный ключ и параметры добавляемого пользователя:

curl -i -H "Accept: application/json; q=1.0, */*; q=0.1" "https://{account_name}.getcourse.ru/pl/api/users" ;-d "action=add&key={secret_key}&parаms={params}"

Я составил cURL запрос, но не понимаю, всё ли верно и если есть другой способ, можно уточнить какой?
function so_payment_complete( $order_id ){
	
    $order = wc_get_order( $order_id );
    $user = $order->get_user();
	
	$data = $order->get_data();
	$name = $data['billing']['first_name'];
	$phone = $data['billing']['phone'];
	$email = $data['billing']['email'];
	
	$postdata = [
		'name' => $name,
		'phone' => $phone,
		'email' => $email,
		'group_name' => [
			'group'
		]
	];
	
	$url = curl_init("https://nolimitst.getcourse.ru/pl/api/users/");
	curl_setopt($url, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($url, CURLOPT_FOLLOWLOCATION, true);
	curl_setopt($url, CURLOPT_USERAGENT, "Mozilla/5.0 (Linux; Android 7.0; SM-G930V Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.125 Mobile Safari/537.36");
	
	curl_setopt($url, CURLOPT_COOKIEJAR, true);
	curl_setopt($url, CURLOPT_COOKIEFILE, true);
	
	curl_setopt($url, CURLOPT_SSL_VERIFYHOST, false);
	curl_setopt($url, CURLOPT_SSL_VERIFYPEER, false);
	
	
	curl_setopt($url, CURL_POSTFIELDS, $postdata);
	
	$key = "uAjAactnIFjpyQ71czuzWrKgfXyLdSGqJ9DZYvL0lFsxcdiDv3YVZlHQZ1ZyRpJKyFrOEv9z62VgBBHgCg0Rwo63PWIQuTM5RSxdxjV5bB1Ukptz3h0i9jVA2Cso1L9O";
}
?>
  • Вопрос задан
  • 269 просмотров
Решения вопроса 1
@Stalinko
PHP'шник и фрилансер до мозга костей
А вы в принципе читали описание, которое сами приложили? :)
необходимо передать действие add, секретный ключ и параметры добавляемого пользователя

Ни действия "add", ни ключа в запросе нет.

Зато зачем-то есть поддержка cookie, которая в API не нужна.

Видимо вам надо что-то такое:

function so_payment_complete($order_id)
{
    $order = wc_get_order($order_id);
    $user = $order->get_user();

    $data = $order->get_data();
    $name = $data['billing']['first_name'];
    $phone = $data['billing']['phone'];
    $email = $data['billing']['email'];

    $params = [
        'name' => $name,
        'phone' => $phone,
        'email' => $email,
        'group_name' => [
            'group'
        ]
    ];

    $key = "uAjAactnIFjpyQ71czuzWrKgfXyLdSGqJ9DZYvL0lFsxcdiDv3YVZlHQZ1ZyRpJKyFrOEv9z62VgBBHgCg0Rwo63PWIQuTM5RSxdxjV5bB1Ukptz3h0i9jVA2Cso1L9O";

    $postdata = [
        'action' => 'add',
        'key' => $key,
        'params' => $params,
    ];

    $curl = curl_init('https://nolimitst.getcourse.ru/pl/api/users/');
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Linux; Android 7.0; SM-G930V Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.125 Mobile Safari/537.36');

    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata);

    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

    curl_exec($curl);
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы