|PUT to Restful API using PHP cURL|
I need to use cURL to change the status of an order on a Restful API using PHP. The instructions I received from the developers of the API is as follows:
curl -X PUT \
In addition to this, they informed me that it is necessary to be signed in, with the credentials supplied.
So, my problems are these:
1. what is the syntax for the PUT action in PHP cURL?
2. how do I sign in to the site with PHP?
Any guidance will be appreciated.
The developers of the API are showing you the cURL command line syntax so you can either execute a system command or, and more likely the case, you are going to need to convert that command line syntax to the PHP cURL API syntax and execute your command.
Here are some helpful resources to get you started:
The PHP cURL documentation:
... and specifically the cURL set options:
The cURL site, specifically the set opts man page:
And here is a PHP tutorial on how to use PUT (many other tutorials on this page that you will want to read and absorb too!):
Thanks for the feedback. It turned out that the authentication was what was getting me stuck.
This is what eventually worked:
$order = “[API order no]";
$data = http_build_query(array("order[status]" => "S"));
$email = “[email address]";
$password = “[password]";
$url = "[API URL]/$order";
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC ) ;
curl_setopt($ch, CURLOPT_USERPWD, "$email:$password");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);