Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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.

api-createorder.php

api-updateorder.php

 

 

Include Page
KBSB:Signature Pages
KBSB:Signature Pages