Неопределенная функция Curl sept_opt и sept_opt_array, несмотря на расширение php curl

У меня проблемы с использованием curl для выполнения некоторых платежей с полосой. Я установил расширение php curl с использованием абсолютного пути в папке ext, но sept_opt все еще не определен, но curl_init() кажется в порядке.

расширение информации о скриншоте php

Установить расширение php, установить curl.exe, системные переменные

print_r(curl_getinfo($ch)); :

Массив ( [url] => [content_type] => [http_code] => 0 [header_size] => 0 [request_size] => 0 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [ total_time] => 0 [namelookup_time] => 0 [connect_time] => 0 [pretransfer_time] => 0 [size_upload] => 0 [size_download] => 0 [speed_download] => 0 [speed_upload] => 0 [download_content_length] => -1 [upload_content_length] => -1 [starttransfer_time] => 0 [redirect_time] => 0 [redirect_url] => [primary_ip] => [certinfo] => Array ( ) [primary_port] => 0 [local_ip] => [local_port] => 0 [http_version] => 0 [протокол] => 0 [ssl_verifyresult] => 0 [scheme] => [appconnect_time_us] => 0 [connect_time_us] => 0 [namelookup_time_us] => 0 [ pretransfer_time_us] => 0 [redirect_time_us] => 0 [starttransfer_time_us] => 0 [total_time_us] => 0 )

if (!function_exists('curl_setopt_array')) {
    function curl_setopt_array(&$ch, $curl_options)
    {
        foreach ($curl_options as $option => $value) {
            if (!curl_setopt($ch, $option, $value)) {
                return false;
            }
        }
        return true;
    }
 }
      $ch = curl_init();
      print_r(curl_getinfo($ch));
      $url="http://api.stripe.com/v1/".$endpoint;
      curl_septopt($ch, CURL_OPT_URL, $url);
      curl_septopt($ch,  CURL_OPT_RETURNTRANSFER, true);
      curl_septopt($ch,  CURL_OPT_USERPWD, $this->api_key ) ;
      curl_septopt($ch,  CURL_HTTP_AUTH , CURL_AUTH_BASIC);
      curl_septopt($ch,  CURL_OPTIONS_POSTFIELDS , 'http_build_query('.$data.')');

Неустранимая ошибка: необработанная ошибка: вызов неопределенной функции curl_septopt() в C:\xampp\htdocs\venifruit\libs\stripe.php:29 Трассировка стека: #0 C:\xampp\htdocs\venifruit\modules\espace-achat- primeur\stripe-creer-paiement.php(17): Stripe->api('клиенты', массив) #1 C:\xampp\htdocs\venifruit\index.php(187): include('C:\xampp\ htdocs...') #2 {main} добавлено в C:\xampp\htdocs\venifruit\libs\stripe.php в строке 29


person cilies38    schedule 08.09.2019    source источник
comment
вы должны использовать конечную точку, защищенную SSL, то есть: https, поэтому вам нужно добавить параметры curl для работы с соединениями SSL. Тем не менее, curl_septopt должно быть curl_setopt   -  person Professor Abronsius    schedule 08.09.2019
comment
хорошо, так устал, я работаю на выходных, я думаю, что сделал ошибку. я буду стараться   -  person cilies38    schedule 08.09.2019
comment
Я думаю, что все в порядке, у меня есть другие ошибки, но функция распознается, потому что это ошибки параметров. Мне нужен отдых сейчас, я думаю. Я даже не заметил ошибки в названии. Так жаль.   -  person cilies38    schedule 08.09.2019


Ответы (2)


Метод называется curl_setopt();, а не curl_septopt();.

      $ch = curl_init();
      print_r(curl_getinfo($ch));
      $url="http://api.stripe.com/v1/".$endpoint;
      curl_setopt($ch, CURL_OPT_URL, $url);
      curl_setopt($ch, CURL_OPT_RETURNTRANSFER, true);
      curl_setopt($ch, CURL_OPT_USERPWD, $this->api_key) ;
      curl_setopt($ch, CURL_HTTP_AUTH , CURL_AUTH_BASIC);
      curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

Кроме того, нет необходимости кодировать поля Postfields. При передаче в виде массива он будет кодировать его. Подробнее читайте в руководстве.

person Markus Zeller    schedule 08.09.2019

Нам нужно использовать ssl-соединения, тем проще взять этот класс на github и установить в корень сервера: Класс Stripe на github

И используйте этот простой код:

 require_once('/path/to/stripe-php/init.php'); // Don't forget this line link to the right  library

\Stripe\Stripe::setApiKey("sk_test_votre-clé-api-stripe-secrete-test");

  $token  = $_POST['stripeToken'];
  $email  = $_POST['stripeEmail'];

  $customer = \Stripe\Customer::create(array(
      'email' => $email,
      'source'  => $token
  ));

  $charge = \Stripe\Charge::create(array(
      'customer' => $customer->id,
      'amount'   => 500,
      'currency' => 'eur',
      'description' => 'Discover France Guide by Erasmus of Paris',
      'receipt_email' => $email  
  ));

  echo '<h1>Payment accepted!</h1>';
person cilies38    schedule 09.09.2019