2016-05-18 3 views
2

Я использую этот локон, чтобы получить возможность отправлять данные:ошибка проводки данных с завитком и SSL

$ch_request=curl_init(); 
      $curl = curl_init(); 
      curl_setopt($curl, CURLOPT_URL, $request); 
      curl_setopt($curl, CURLOPT_SSLVERSION, 3); 
      curl_setopt($curl, CURLOPT_HEADER, FALSE); 
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); 

      $response = curl_exec($curl); 
      curl_close ($curl); 

Но я проверить, что данные не публикуйте, как я могу знать, что? потому что я пишу его в error_log, системный ответ с OK, если данные были опубликованы, но я ничего не получаю, когда я проверяю свой error_log.

URL-адрес, который я пытаюсь опубликовать генерируется автоматически и что-то вроде этого:

https://precise-line.com/request?api_key=23894thfpoiq10f&user_id=508958644&delivery_type=Programado&route=Eje+1+norte&street_number=40&neighborhood=Centro&locality=Mexico&administrative_area_level_1=Distrito+Federal&postal_code=00650&country=Mexico&latlng=19.3596892%2C-99.2788723&destination-route=Calle+pinco+85%2C+Int.+1%2C+Col.+Florida%2C+Del.+%C3%81lvaro+Obreg%C3%B3n&destination-street_number=&destination-neighborhood=&destination-locality=Ciudad+de+M%C3%A9xico&destination-administrative_area_level=Distrito+Federal&destination-postal_code=01080&destination-country=Mexico&destination-latlng=19.3627808%2C-99.1757137&customer_email=ink_design%40hotmail.com&customer_phone=56581111&notification_email=&notes=Orden%3A+%2316652%2C+Cliente%3A+Said+Pe%C3%B1a+Amezcua%2C+Productos%3A+DEVIL+MAY+CRY+DEFINITIVE+EDITION+1%2C+&dispatch=True 

Это, как я генерировать свой URL:

$api_key=         '23894thfpoiq10f'; 
      $user_id=         '508958644'; 
      if ($shipping == $program){ 
       $delivery_type = 'Programado'; 
      } 
      if ($shipping == $express){ 
       $delivery_type = '99minutos'; 
      } 
      $latlng =         '19.4165176%2C-99.1544438'; 
      $customer_email=       urlencode($email); 
      $destination_route=       urlencode(implode(',' , array($address1,$address2))); 
      $destination_locality=      urlencode($city); 
      $destination_administrative_area_level=  urlencode($province); 
      $destination_postal_code=     urlencode($zip); 
      $d_latlng=         urlencode(implode(',', array($latitude,$longitude))); 
      $customer_phone=       urlencode($phone); 
      $nombre =         'Cliente: '.implode(' ',array($first_name,$last_name)); 
      $orden =         'Orden: '.$name; 
$request = "https://precise-line.com/request?"; 
      $request.= "api_key=".$api_key."&"; 
      $request.= "user_id=".$user_id."&"; 
      $request.= "delivery_type=".$delivery_type."&"; 
      $request.= "route=Av+Cuauhtemoc&";"street_number=187&"; 
      $request.= "neighborhood=Roma+Norte&"; 
      $request.= "locality=Mexico&"; 
      $request.= "administrative_area_level_1=Distrito+Federal&"; 
      $request.= "postal_code=06700&"; 
      $request.= "country=Mexico&"; 
      $request.= "latlng=".$latlng."&"; 
      $request.= "destination-route=".$destination_route."&"; 
      $request.= "destination-street_number=&"; 
      $request.= "destination-neighborhood=&"; 
      $request.= "destination-locality=".$destination_locality."&"; 
      $request.= "destination-administrative_area_level=".$destination_administrative_area_level."&"; 
      $request.= "destination-postal_code=".$destination_postal_code."&"; 
      $request.= "destination-country=Mexico&"; 
      $request.= "destination-latlng=".$d_latlng."&"; 
      $request.= "customer_email=".$customer_email."&"; 
      $request.= "customer_phone=".$customer_phone."&"; 
      $request.= "notification_email=&"; 
      $request.= "notes=".$notes."&"; 
      $request.= "dispatch=True"; 
+0

Почему вы не используете Postman для тестирования API-интерфейсов, которые вы используете. Вы узнаете, что если запрос, который вы делаете, правильный, а также какой ответ вы возвращаетесь. В вашем случае я думаю, что вы должны сделать запрос GET, поскольку ваш URL содержит все данные. –

+0

Да, если я использую Postman для проверки URL-адреса данных, но без него у меня нет ответа! – victor

+0

Итак, если вы получите правильный ответ с помощью Postman, нажмите, чтобы сгенерировать код и посмотреть, какие параметры завитка отсутствуют. Это поможет. –

ответ

1

Вам нужно добавить еще 2 варианта локон:

curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $params); 

$ PARAMS должен быть ассоциативным массивом из Params вы хотите нравится:

$params = array('api_key'=>'abcde') 

Кроме того, значение $request в curl_setopt($curl, CURLOPT_URL, $request); должен быть базовый URL без Params как https://precise-line/request

+0

, но несколько дней назад Curl, который я отправляю, работает, но с прошлой пятницы до сих пор cURL не работает – victor

+0

, если это решение исправило вашу проблему, пожалуйста, примите ответ – Rajesh

+0

Мне жаль, но я увидел, что solutiin был в другом. Это было в версии ssl: 1 не 3, как мой пример! – victor

0

Я нашел решение, и это было в версии SSL, я написал 3 и версия для решить мою проблема 1, но спасибо всем, кто мне помогает

Смежные вопросы