Предупреждение: curl_setopt() ожидает, что параметр 2 будет целым, строка

#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. попробуйте, приведенный выше код был изменен и теперь должен работать