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();
/* info commande */
$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'];
/* info du profil */
$post_data['data']['customer_email'] = 'john@doe.com';
$post_data['data']['customer_name'] = 'Doe';
$post_data['data']['customer_firstname'] = 'John';
$post_data['data']['customer_address'] = '8, rue de la place';
$post_data['data']['customer_cp'] = '76000';
$post_data['data']['customer_city'] = 'Rouen';
$post_data['data']['customer_country'] = "FR"
;
/* format ISO : FR, ES, IT... */
$post_data['data']['customer_tel'] = '0235000000';
$post_data['data']['customer_mobile'] = '060606606';
$post_data['data']['customer_fonction'] = 'CEO';
$post_data['data']['customer_company'] = 'MyCompany';
$post_data['data']['customer_birthday'] = '1970-12-31';
$post_data['data']['customer_gender'] = 'male'; // female
$post_data['data']['customer_isoptin'] = '1';
/* Champs personnalisables */
// 85, 88 et 90 correspondent aux id du champ personnalisable que vous trouvez dans votre backoffice, menu Paramétrage > Tracker
$post_data['data']['custom_fields'][85] = 'sport';
$post_data['data']['custom_fields'][88] = 'magasin';
$post_data['data']['custom_fields'][90] = 2311;
/* Tags */
$post_data['data']['add_tag'] = 'tag1, tag2, tag3';
$post_data['data']['del_tag'] = 'tag4;
$post_data['data']['action'] = 'order'; // "signup", ou par defaut "order"
// 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_num'] = $_POST['order_num'];
$post_data['data']['order_amount'] = $_POST['order_amount'];
$post_data['data']['order_state'] = $_POST['order_state'];
$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.
Besoin de plus d'aide?
Pour toutes questions et informations supplémentaires, n'hésitez pas à contacter notre support par email à support@spreadfamily.com