Выполнить оператор Curl в PHP
Я работаю в bigcommerce, и мне нужно что-то сделать, для чего Bigcommerce предоставила код в формате curl... Я плохо знаю curl... Можете ли вы сказать мне, как я могу выполнить следующий код в php??
curl --request POST \
-u "admin:key" \
-H "Content-Type: application/json" \
-d '{"order_address_id":15,"tracking_number":"123-123-123","items":[{"order_product_id":15,"quantity":1}]}' \
https://store/api/v2/orders/114/shipments.json
Любая помощь будет высоко оценен...
2 ответа
Решение
$ch = curl_init('https://store/api/v2/orders/114/shipments.json');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_USERPWD, 'admin:key');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_POSTFIELDS,
json_encode(array('order_address_id' => 15,
'tracking_number' => '123-123-123',
'items' => array(
array('order_product_id' => 15, 'quantity' => 1)
)
)));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
Вы можете попробовать, как показано ниже в PHP, но убедитесь, что это расширение curl установлено http://www.php.net/manual/en/curl.installation.php
Код идет как
$postfields = '{"order_address_id":15,"tracking_number":"123-123-123","items":[{"order_product_id":15,"quantity":1}]}' ;
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, 'https://store/api/v2/orders/114/shipments.json');
curl_setopt( $ch, CURLOPT_TIMEOUT, 100 );
curl_setopt($ch, CURLOPT_USERPWD, 'admin:key');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Content-Length: ' . strlen($postfields)));
$response = curl_exec($ch);
curl_close ($ch);
Убедитесь, что линия
curl_setopt($ch, CURLOPT_HTTPHEADER, массив ('Content-Type: application/json','Content-Length: ' . strlen($postfields)));
strlen ($ postfields) никогда не равен 0 или другими словами, вы должны иметь данные Post