#curl #php-curl #razorpay
#завиток #php-curl #razorpay ( разорпай)
Вопрос:
<?php
$url = "https://api.razorpay.com/v1/contacts/cont_00000000000001";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_PATCH, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$headers = array(
"Content-Type: application/json",
"Authorization: Basic cnpwXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0E",
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$data = <<<DATA
{
"name": "Tester",
"email": "test@example.com",
"contact": "9876543210",
"type": "self",
"reference_id": "Contact ID 12345",
"notes": {
"notes_key_1":"Tea, Earl Grey, Hot",
"notes_key_2":"Tea, Earl Grey… decaf."
}
}
DATA;
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
//for debug only!
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$resp = curl_exec($curl);
curl_close($curl);
var_dump($resp);
?>
когда я пытаюсь выполнить этот код, я получаю эту ошибку
Предупреждение: использование неопределенной константы CURLOPT_PATCH — предполагается, что ‘CURLOPT_PATCH’ (это вызовет ошибку в будущей версии PHP) в C:xampphtdocspayout_curlupdate_contact.php в строке 7
Предупреждение: curl_setopt() ожидает, что параметр 2 будет целым числом, строка задана в C:xampphtdocspayout_curlupdate_contact.php в строке 7 строка (155) «{«ошибка»:{«код»:»BAD_REQUEST_ERROR»,»описание»:»Запрошенный URL-адрес не найден на сервере.»,»источник»: null,»шаг»: null, «причина»:null, «метаданные»:{}}}»
почему я получаю это
Ответ №1:
Привет, попробуй этот способ …
<?php
$url = "https://api.razorpay.com/v1/contacts/";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$headers = array(
"Content-Type: application/json",
"Authorization: Basic cnpwXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0E",
);
/* method 1 auth
$headers = array(
'Content-Type:application/json',
'Authorization: Basic '. base64_encode("user:password") // <--- youruser:yourpass
);*/
/* method 2 auth
$login = "youruser";
$password = "yourpass";
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, "$login:$password");*/
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$data = array(
'name' => 'Tester',
'email' => 'test@example.com',
'contact' => '9876543210',
'type' => 'self',
'reference_id' => 'Contact ID 12345',
'notes' => array(
'notes_key_1' => 'Tea, Earl Grey, Hot',
'notes_key_2' => 'Tea, Earl Grey… decaf.'
)
);
$data = http_build_query($data);
/* http_build_query output: name=Testeramp;email=test@example.comamp;contact=9876543210amp;type=self.... */
/* and use urlencode to have the @ and spaces posted corectly .. */
curl_setopt($curl, CURLOPT_POSTFIELDS, urlencode($data));
//for debug only!
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$resp = curl_exec($curl);
curl_close($curl);
var_dump($resp);
?>
И убедитесь, что у вас есть php_curl.dll модуль в вашем php.ini включен…
Заметил, если extension=php_curl.dll комментируется в C:xamppbinphpphp.XXXphp.ini или C:xamppbinapacheApacheXXXXbinphp.ini .
Вы должны раскомментировать строку;extension=php_curl.dll в C:xamppbinphpphp.XXXphp.ini или C:xamppbinapacheApacheXXXXbinphp.ini исправлена проблема.
И
curl_setopt($curl, CURLOPT_PATCH, true); не существует в библиотеке curl ..
Использование неопределенной константы CURLOPT_PATCH — предполагается ‘CURLOPT_PATCH’
Используйте для создания POST-запроса белые пользовательские аргументы:
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, ‘POST’)
curl_setopt($ch, CURLOPT_POST, 1);
Используйте для создания запроса GET белые пользовательские аргументы:
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, ‘GET’)
Комментарии:
1. да, я включил указанный вами файл, но все же я сталкиваюсь с той же проблемой
2. попробуйте, приведенный выше код был изменен и теперь должен работать