61

payline

  1. require_once 'payline.inc';
  2. require_once 'vendor/autoload.php';
  3.  
  4. use \Payline\PaylineSDK;

Charge le fichier de configuration. Initialise l'accès au code de la classe PaylineSDK.

  1. function payline_sdk() {
  2.     global $payline_merchant_id, $payline_access_key;
  3.     global $payline_proxy_host, $payline_proxy_port, $payline_proxy_login, $payline_proxy_password;
  4.     global $payline_context;
  5.  
  6.     static $sdk=null;
  7.  
  8.     if (!$sdk) {
  9.         $sdk = new PaylineSDK($payline_merchant_id, $payline_access_key, $payline_proxy_host, $payline_proxy_port, $payline_proxy_login, $payline_proxy_password, $payline_context == 'prod' ? PaylineSDK::ENV_PROD : PaylineSDK::ENV_HOMO);
  10.     }
  11.  
  12.     return $sdk;
  13. }

payline_sdk crée et retourne une instance unique du SDK initialisée avec les paramètres définis par le fichier de configuration payline.inc en mode homologation ou production selon la valeur du paramètre $payline_context.

  1. function payline_dowebpayment($params) {
  2.     global $payline_log;
  3.  
  4.     $sdk = payline_sdk();
  5.  
  6.     if (!$sdk) {
  7.         return false;
  8.     }
  9.  
  10.     $r = $sdk->doWebPayment($params);
  11.  
  12.     if ($payline_log) {
  13.         logpayline('WebPayment', $r);
  14.     }
  15.  
  16.     return $r;
  17. }

payline_dowebpayment envoie une requête WebPayment avec les paramètres définis dans $params. Si $payline_log ne vaut pas false, une ligne est ajouté dans le journal.

Voir le code de l'action paylinecheckout pour la liste de paramètres passés dans $params.

payline_dowebpayment retourne un tableau avec entre autres les champs token et redirectURL.

  1. function payline_getwebpaymentdetails($params) {
  2.     global $payline_log;
  3.  
  4.     $sdk = payline_sdk();
  5.  
  6.     if (!$sdk) {
  7.         return false;
  8.     }
  9.  
  10.     $r = $sdk->getWebPaymentDetails($params);
  11.  
  12.     if ($payline_log) {
  13.         logpayline('WebPaymentDetails', $r);
  14.     }
  15.  
  16.     return $r;
  17. }

payline_getwebpaymentdetails retourne le résultat d'une requête WebPayment. Si $payline_log ne vaut pas false, une ligne est ajouté dans le journal.

$params est un tableau avec un champ token dont la valeur a été retournée par un appel précédent à la fonction payline_dowebpayment.

payline_getwebpaymentdetails retourne un tableau avec entre autres les champs return_code, transaction_id et authorization_number. Voir la documentation de Payline pour la liste des codes.

  1. function payline_amt($amt) {
  2.     return number_format($amt, 2, '', '');
  3. }
  4.  
  5. function payline_currency($cur) {
  6.     $codes=array('EUR' => '978', 'USD' => '840', 'GPB' => '826');
  7.  
  8.     return isset($codes[$cur]) ? $codes[$cur] : '978';
  9. }
  10.  
  11. function payline_language($locale) {
  12.     $codes=array('en' => 'eng', 'fr' => 'fra');
  13.  
  14.     return isset($codes[$locale]) ? $codes[$locale] : 'eng';
  15. }

payline_amt retourne $amt formaté pour le SDK, i.e. $amt avec 2 décimales mais sans virgule décimale.

payline_currency retourne le code en 3 chiffres de la devise $cur pour le SDK. payline_currency retourne le code pour une opération en euros par défaut.

payline_language retourne le code en 3 lettres de la langue $locale pour le SDK. payline_language retourne le code pour une interface en anglais par défaut.

  1. function logpayline($method, $r) {
  2.     global $payline_log;
  3.  
  4.     require_once 'log.php';
  5.  
  6.     $code=$r['result']['code'];
  7.     $shortmsg=$r['result']['shortMessage'];
  8.     $longmsg=$r['result']['longMessage'];
  9.  
  10.     $token = isset($r['token']) ? $r['token'] : false;
  11.     $transaction_id = isset($r['transaction']['id']) ? $r['transaction']['id'] : false;
  12.  
  13.     $msg=array("METHOD=${method}", "CODE=${code}");
  14.     if ($token) {
  15.         $msg[] = "TOKEN=${token}";
  16.     }
  17.     if ($transaction_id) {
  18.         $msg[] = "ID=${transaction_id}";
  19.     }
  20.     $msg[]="MESSAGE=${shortmsg}:${longmsg}";
  21.  
  22.     $logmsg=implode(';', $msg);
  23.  
  24.     write_log($payline_log === true ? 'payline.log' : $payline_log, $logmsg);
  25. }

logpayline ajoute une ligne de trace de l'appel à la fonction method avec les valeurs de retour contenues dans le tableau $r dans le fichier payline.log du dossier log si $payline_log vaut true. Alternativement, $payline_log peut contenir le nom complet d'un autre fichier.

VOIR AUSSI

Payline, log, paypal

Commentaires

Votre commentaire :
[p] [b] [i] [u] [s] [quote] [pre] [br] [code] [url] [email] strip aide 2000

Entrez un maximum de 2000 caractères.
Améliorez la présentation de votre texte avec les balises de formatage suivantes :
[p]paragraphe[/p], [b]gras[/b], [i]italique[/i], [u]souligné[/u], [s]barré[/s], [quote]citation[/quote], [pre]tel quel[/pre], [br]à la ligne,
[url]http://www.izend.org[/url], [url=http://www.izend.org]site[/url], [email]izend@izend.org[/email], [email=izend@izend.org]izend[/email],
[code]commande[/code], [code=langage]code source en c, java, php, html, javascript, xml, css, sql, bash, dos, make, etc.[/code].