Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
SVN
/
payment
:
function.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php /*-------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- FONCTION => Exemple de génération de trans_id basé sur un compteur. Trans_id est un identifiant de transaction qui doit être: - unique sur une même journée - compris entre 000000 et 899999 - de longueur 6 ( 6 caractères ) --------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------*/ function get_Trans_id() { // Dans cet exemple la valeur du compteur est stocké dans un fichier count.txt,incrémenté de 1 et remis à zéro si la valeur est superieure à 899999 // ouverture/lock $filename = "./compteur/count.txt";// il faut ici indiquer le chemin du fichier. $fp = fopen($filename, 'r+'); flock($fp, LOCK_EX); // lecture/incrémentation $count = (int)fread($fp, 6); // (int) = conversion en entier. $count++; if($count < 0 || $count > 899999) { $count = 0; } // on revient au début du fichier fseek($fp, 0); ftruncate($fp,0); // écriture/fermeture/Fin du lock fwrite($fp, $count); flock($fp, LOCK_UN); fclose($fp); // le trans_id : on rajoute des 0 au début si nécessaire $trans_id = sprintf("%06d",$count); return($trans_id); } // ------------------------------------------------------------------------------------------------------------------- /*-------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- FONCTION => CALCUL DE LA SIGNATURE --------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------*/ function get_Signature($field,$key) { ksort($field); // tri des paramétres par ordre alphabétique $contenu_signature = ""; foreach ($field as $nom => $valeur) { if(substr($nom,0,5) == 'vads_') { $contenu_signature .= $valeur."+"; } } $contenu_signature .= $key; // On ajoute le certificat à la fin de la chaîne. $signature = sha1($contenu_signature); return($signature); } //-------------------------------------------------------------------------------------------------------------------- /*-------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- FONCTION => CONTROLE DE LA SIGNATURE RECUE --------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------*/ function Check_Signature($field,$key) { $result='false'; $signature=get_Signature($field,$key); if(isset($field['signature']) && ($signature == $field['signature'])) { $result='true'; } return ($result); } //-------------------------------------------------------------------------------------------------------------------- /*-------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- FONCTION => GENERATION DU TABLEAU DE TOUS LES CHAMPS A ENVOYER A LA PLATEFORME Les champs doivent être encodés en UTF8 obligatoirement- Seul les champs commençant par vads_xxxx sont envoyés. --------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------*/ function get_formHtml_request($field, $lang) { // version pack 1.0f $params['vads_contrib']='Pack_PSP_1.0f'; include($lang.'.php'); $conf_txt = parse_ini_file("conf.txt"); if ($conf_txt['vads_ctx_mode'] == "TEST") $conf_txt['key'] = $conf_txt['TEST_key']; if ($conf_txt['vads_ctx_mode'] == "PRODUCTION") $conf_txt['key'] = $conf_txt['PROD_key']; // Affichage d'une erreur si conf.txt n'est pas configuré $error = false; if ($conf_txt['vads_site_id'] == "A11111111") $error = true; if ($conf_txt['vads_site_id'] == "") $error = true; if ($conf_txt['key'] == "A2222222222222222") $error = true; if ($conf_txt['key'] == "A3333333333333333") $error = true; if ($conf_txt['key'] == "") $error = true; if ($conf_txt['vads_url_return'] == "") $error = true; if ($error == true) return (' <div id="Info"> '.$ERREUR_DE_CONFIGURATION_para.' </div>'); foreach ($conf_txt as $conf_field => $conf_value) $field[$conf_field] = $conf_value; $params=array(); foreach ($field as $nom => $valeur){ if(substr($nom,0,5) == 'vads_') { $params[$nom]=$valeur; } } if (isset($field['vads_trans_id'])) $params['vads_trans_id'] = $field['vads_trans_id']; else $params['vads_trans_id'] = get_Trans_id(); if (isset($field['vads_trans_date'])) $params['vads_trans_date'] = $field['vads_trans_date']; else $params['vads_trans_date'] = gmdate ("YmdHis", time()); if (isset($field['signature'])) $params['signature'] = $field['signature']; else $params['signature'] = get_Signature($params, $conf_txt['key']); $_REQUEST['vads_trans_id'] = $params['vads_trans_id']; $_REQUEST['vads_trans_date'] = $params['vads_trans_date']; $_REQUEST['signature'] = $params['signature']; $form= '<form name="pay_form" method="POST" action="https://secure.payzen.eu/vads-payment/">'; if ($conf_txt['debug'] == 1) $form.= '<div id="Info"><p><b><u>'.$POUR_INFORMATION_VOICI_LES_CHAMPS.'</u></b></p>'; // Affichage des champs si debug = ON if (ksort($params)) foreach ($params as $nom => $valeur) { if ($conf_txt['debug'] == 1) $form.= $nom.' : '.$valeur.'<br/>'; // Affichage des champs si debug = ON $form.='<input type="hidden" name="' . $nom . '" value="' . $valeur . '" />'; } if ($conf_txt['debug'] == 1) $form.=' <button type="submit" class="validationButton" > <span><em>'.$PAYER.'</em></span> </button></div></form><div id="Info">'.$REMARQUE_REDIRECTION_debug.'</div>'; // Affichage du boutton si debug = ON else $form.=' </div></form> <div id="Info"> '.$REMARQUE_REDIRECTION.' </div>'; if ($conf_txt['debug'] != 1) $form.=' <script language="JavaScript"> document.pay_form.submit(); </script>'; // Redirection vers la page de paiement si debug = OFF return($form); } //---------------------------------------------------------------------------------------------------------------------- //Affichage formulaire // --------------------------------------------------------------------------------------------------------------------- function display_form($lang,$form) { include ($lang.'.php'); $display_f = '<html>'; $display_f.= '<head>'; $display_f.= '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">'; $display_f.= '<title>'.$Redirection_vers_la_plateforme.'</title>'; $display_f.= '<link href="style.css" rel="stylesheet" type="text/css"/>'; $display_f.= '</head>'; $display_f.= '<body>'; $display_f.= '<div id="container">'; $display_f.= ' <div id="Title_information">'; $display_f.= ' <form name="lang" method="post" action="form_payment.php"> '; // Selection de la langue // Selection de la langue if ($lang == "en") { $display_f.= '<input class="logo_PSP" type="image" name="fr" src="img/francais.png">'; $display_f.= '<input type="hidden" name="lang" value="fr">'; } else {$display_f.= '<input class="logo_PSP" type="image" name="en" src="img/anglais.png">'; $display_f.= '<input type="hidden" name="lang" value="en">'; } $display_f.= '<input type="hidden" name="vads_amount" value="'.$_REQUEST['vads_amount'].'">'; $display_f.= '<input type="hidden" name="vads_order_id" value="'.$_REQUEST['vads_order_id'].'">'; $display_f.= '<input type="hidden" name="vads_cust_id" value="'.$_REQUEST['vads_cust_id'].'">'; $display_f.= '<input type="hidden" name="vads_cust_name" value="'.$_REQUEST['vads_cust_name'].'">'; $display_f.= '<input type="hidden" name="vads_cust_address" value="'.$_REQUEST['vads_cust_address'].'">'; $display_f.= '<input type="hidden" name="vads_cust_zip" value="'.$_REQUEST['vads_cust_zip'].'">'; $display_f.= '<input type="hidden" name="vads_cust_city" value="'.$_REQUEST['vads_cust_city'].'">'; $display_f.= '<input type="hidden" name="vads_cust_country" value="'.$_REQUEST['vads_cust_country'].'">'; $display_f.= '<input type="hidden" name="vads_cust_phone" value="'.$_REQUEST['vads_cust_phone'].'">'; $display_f.= '<input type="hidden" name="vads_cust_email" value="'.$_REQUEST['vads_cust_email'].'">'; $display_f.= '</form>'; $display_f.= '<img class="logo_PSP" src="./img/psp.png" alt="Logo PSP"/>'; $display_f.= '<div class="header_title" >'.$TITRE_EXEMPLE_D_IMPLEMENTATION.'<br/><br/>'. $TITRE_FORM_PAIEMENT.'</div>'; $display_f.= '</div>'; $display_f.= '<a href="index.php?lang='.$lang.'">'.$Formulaire_de_paiement.' </a>|<a href="return.php?lang='.$lang.'">'.$Analyse_du_retour.'</a>'; $display_f.= ' <hr>'; $display_f.=$form; $display_f.='</div>'; $display_f.='</body>'; $display_f.='</html> '; return($display_f); } ?>