payline
- require_once 'payline.inc';
- require_once 'vendor/autoload.php';
- use \Payline\PaylineSDK;
Charge le fichier de configuration. Initialise l'accès au code de la classe PaylineSDK.
- function payline_sdk() {
- global $payline_merchant_id, $payline_access_key;
- global $payline_proxy_host, $payline_proxy_port, $payline_proxy_login, $payline_proxy_password;
- global $payline_context;
- static $sdk=null;
- if (!$sdk) {
- $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);
- }
- return $sdk;
- }
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
.
- function payline_dowebpayment($params) {
- global $payline_log;
- $sdk = payline_sdk();
- if (!$sdk) {
- return false;
- }
- $r = $sdk->doWebPayment($params);
- if ($payline_log) {
- logpayline('WebPayment', $r);
- }
- return $r;
- }
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
.
- function payline_getwebpaymentdetails($params) {
- global $payline_log;
- $sdk = payline_sdk();
- if (!$sdk) {
- return false;
- }
- $r = $sdk->getWebPaymentDetails($params);
- if ($payline_log) {
- logpayline('WebPaymentDetails', $r);
- }
- return $r;
- }
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.
- function payline_amt($amt) {
- return number_format($amt, 2, '', '');
- }
- function payline_currency($cur) {
- $codes=array('EUR' => '978', 'USD' => '840', 'GPB' => '826');
- return isset($codes[$cur]) ? $codes[$cur] : '978';
- }
- function payline_language($locale) {
- $codes=array('en' => 'eng', 'fr' => 'fra');
- return isset($codes[$locale]) ? $codes[$locale] : 'eng';
- }
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.
- function logpayline($method, $r) {
- global $payline_log;
- require_once 'log.php';
- $code=$r['result']['code'];
- $shortmsg=$r['result']['shortMessage'];
- $longmsg=$r['result']['longMessage'];
- $token = isset($r['token']) ? $r['token'] : false;
- $transaction_id = isset($r['transaction']['id']) ? $r['transaction']['id'] : false;
- $msg=array("METHOD=${method}", "CODE=${code}");
- if ($token) {
- $msg[] = "TOKEN=${token}";
- }
- if ($transaction_id) {
- $msg[] = "ID=${transaction_id}";
- }
- $msg[]="MESSAGE=${shortmsg}:${longmsg}";
- $logmsg=implode(';', $msg);
- write_log($payline_log === true ? 'payline.log' : $payline_log, $logmsg);
- }
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.
Commentaires