Définition
Qu'est-ce que la méthode CURL ?
Il s'agit d'une méthode d'intégration qui permet de réaliser la même chose qu'en Javascript mais en PHP
Quels cas ?
Cette méthode ne fonctionne que pour la création de compte et la remontée de commande
// Création d'une commande via API
$post_data = array();
$post_data['data']['order_num'] = $_POST['order_num'];
$post_data['data']['order_amount'] = $_POST['amount'];
$post_data['data']['order_state'] = $_POST['order_state'];
$post_data['data']['order_idorder'] = $_POST['order_idorder'];
$post_data['data']['customer_email'] = 'john@doe.com';
$post_data['data']['customer_name'] = 'Doe';
$post_data['data']['customer_firstname'] = 'John';
$post_data['data']['customer_country'] = 'fr';
$post_data['data']['customer_birthday'] = '1970-12-31';
$post_data['data']['customer_gender'] = 'male'; // female
$post_data['data']['customer_num1'] = '100';
$post_data['data']['customer_num2'] = '200';
$post_data['data']['customer_txt1'] = 'text1';
$post_data['data']['customer_txt2'] = 'text3';
$post_data['data']['customer_date1'] = '2010-10-10';
$post_data['data']['customer_date2'] = '2011-11-11';
$post_data['data']['customer_bool1'] = '0';
$post_data['data']['customer_bool2'] = '1';
$post_data['data']['action'] = 'order'; // "signup", ou par defaut "order"
$post_data['data']['customer_isoptin'] = '1';
// Très important, sinon le tracking ne peut pas se faire
// ATTENTION dans le javascript, l'option "sbsetcookie" doit être à true
// c'est ce qui permet de transférer le cookie du nom de domaine SpreadButton au domaine local.
$post_data['data']['customer_cookie'] = $_COOKIE['sbt'];
// ajout de la clé publique
$post_data['public'] = $_SESSION['publicKey'];
#ksort($post_data['data']); // par convention, on tri toujours avant de signer
if (isset($post_data['request'])) // request n'est pas utilisé dans ce cas, mais c'est mieux de le signer !
{
#ksort($post_data['request']); // par convention, on tri toujours avant de signer
}
#ksort($post_data); // par convention, on tri toujours avant de signer
$curl_post_data = http_build_query($post_data);
// Création de la signature
$sign = sha1($curl_post_data . $_SESSION['privateKey']);
// finalisation des valeurs postés
$curl_post_data .= '&sign' . '='. $sign;
// Appel de l'API pour mettre à jour des informations
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://sb.am/api/CreateAction");
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS,$curl_post_data );
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$curl_return = curl_exec($curl);
curl_close($curl);
// Mise à jour des informations d'une commande via API
$post_data = array();
$post_data['request']['order_idorder'] = $_POST['old_orderid'];
$post_data['data']['order_state'] = $_POST['order_state'];
$post_data['data']['order_amount'] = $_POST['order_amount'];
$post_data['data']['order_num'] = $_POST['order_num'];
$post_data['data']['order_idorder'] = $_POST['order_idorder'];
// ajout de la clé publique
ksort($post_data); // par convention, on tri toujours avant de signer
$curl_post_data = http_build_query($post_data);
// Création de la signature
$sign = sha1($curl_post_data . $_SESSION['privateKey']);
echo "<p>Chaine signée : ".$curl_post_data . $_SESSION['privateKey']."<br/>Signature : ".$sign."</p>";
// finalisation des valeurs postés
$curl_post_data .= '&sign' . '='. $sign;
// Appel de l'API pour mettre à jour des informations
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://social-sb.com/api/UpdateOrder");
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS,$curl_post_data );
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$curl_return = curl_exec($curl);
curl_close($curl);
2 fichiers exemples
Ces deux fichiers sont complets pour vous permettre de tester et contiennent les formulaires pour saisir les valeurs de commandes ainsi que les clés d'API.
Include Page | ||||
---|---|---|---|---|
|