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();

$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'] = 'omartineau@gmail.com';
$post_data['data']['customer_name'] = 'Martineau';
$post_data['data']['customer_firstname'] = 'olivier';
$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.

api-createorder.php

api-updateorder.php