<?php
//status_report_filtre
//Es ce que la source est valide ?
if(isset($IPMoneybookers)){
if($_SERVER["REMOTE_ADDR"] != $IPMoneybookers){ // IP incorrecte
$valide = false;
//echo "<p class='erreur'>Tentative d'intrusion détécté : $_SERVER["REMOTE_ADDR"]</p>";
}
}
// Es ce que tout les champs sont renseignés ?
// Es ce que tout les champs ont le bon type ?
// Es ce que tout les champs ont la bonne longeur ?
// Es ce que tout les champs ont les bonnes données ?
if( !isset($pay_to_email,$pay_from_email,$merchant_id,$mb_transaction_id,$mb_amount,$mb_currency,$status,$md5sig,$amount,$currency) ){
$valide = false;
//echo "<p class='erreur'>Il manque un champs</p>";
}
// mb_transaction_id
if( isset($mb_transaction_id) and !ctype_digit($mb_transaction_id) ){
$valide = false;
//echo "<p class='erreur'>L'id de la transaction MB est d'un type invalide.</p>";
}
// status
if($status != '2' and $status != '1' and $status != '0' and $status != '-1' and $status != '-2' and $status != '-3' ){
$valide = false;
//echo "<p class='erreur'>Le status de la transaction est d'un type invalide.</p>";
}else{
// Le status final de la transaction MB
/*
echo "<h4 class='info'>Etat de la transaction moneybookers</h4>";
if('2' == $status){ echo "<h4 class='reussi'>Status : Fini.</h4>"; }
if('1' == $status){ echo "<h4 class='reussi'>Status : Test réussi.</h4>"; }
if('0' == $status){ echo "<h4 class='info'>Status : En attente.</h4>"; }
if('-1' == $status){ echo "<h4 class='info'>Status : Annulé.</h4>"; }
if('-2' == $status){ echo "<h4 class='erreur'>Status : Echoué.</h4>"; }
if('-3' == $status){ echo "<h4 class='erreur'>Status : Retour arrière.</h4>"; }
* */
}
// transaction_id
if( !isset($transaction_id) ){
$valide = false;
//echo "<p class='erreur'>L'id de la transaction marchante n'est pas défini.</p>";
}else{
if( isset($transaction_id) and !ctype_digit($transaction_id) ){
$valide = false;
//echo "<p class='erreur'>L'id de la transaction marchante est d'un type invalide.</p>";
}
/// Es ce que la transaction existe en interne ?
}
// pay_from_email
if( !isset($pay_from_email) ){
$valide = false;
//echo "<p class='erreur'>pay_from_email n'a pas été envoyé au serveur.</p>";
}else{
if (!strpos($pay_from_email, '@') or !strpos($pay_from_email, '.')) { // si le mail ne contient pas un @ et un point
$valide = false;
//echo "<p class='erreur'>pay_from_email est d'un format invalide.</p>";
}
}
// merchant_id
if( isset($merchant_id) and !ctype_digit($merchant_id) ){
$valide = false;
//echo "<p class='erreur'>Le merchant_id est d'un type invalide.</p>";
}else{
//vérifier que le merchant_id est le même que l'ordre
}
// pay_to_email
if( !isset($pay_to_email) ){
$valide = false;
//echo "<p class='erreur'>pay_to_email n'a pas été envoyé au serveur.</p>";
}else{
if (!strpos($pay_to_email, '@') or !strpos($pay_to_email, '.')) { // si le mail ne contient pas un @ et un point
$valide = false;
//echo "<p class='erreur'>pay_to_email est d'un format invalide.</p>";
}
}
// amount : vérifier float
if( isset($amount) and $amount <= 0 ){ //vérifier entier
$valide = false;
//echo "<p class='erreur'>L'amount est d'un format invalide.</p>";
}
// currency : la devise de départ figure parmi les devises acceptés ?
$TabDevisesMoneybookers = array("EUR","USD","GBP","CZK","HKD","HUF","SGD","SKK","JPY","EEK","CAD","BGN","AUD","PLN","CHF","ISK","DKK","INR","SEK","LVL","NOK","KRW","ILS","ZAR","MYR","RON","NZD","HRK","TRY","LTL");
$NbDevisesMoneybookers = count($TabDevisesMoneybookers) -1;
$i = -1;
$trouvedevise = false;
do{
$i++;
if($currency == $TabDevisesMoneybookers[$i]){
$trouvedevise = true;
}
}while($trouvedevise != true and $i < $NbDevisesMoneybookers); //pas trouve ou pas fini
if($trouvedevise == false){
$valide = false;
//echo "<p class='erreur'>La devise n'a pas été trouvé par la liste des devises figurant dans le tableau.</p>";
}else{
//echo "<p class='erreur'>La devise a été trouvé : $TabDevisesMoneybookers[$i].</p>";
}
// mb_amount
if( isset($mb_amount) and $mb_amount <= 0 ){ //vérifier entier
$valide = false;
//echo "<p class='erreur'>Le mb_amount est d'un format invalide.</p>";
}
// mb_currency
if("EUR" != $mb_currency){
$valide = false;
//echo "<p class='erreur'>La monnaie du PSP est incorrecte.</p>";
}
// md5sig
/* $SecretWord = strtoupper("test"); //le SecretWord ne doit pas exceder 10 caracteres
$VerifMd5Sig = strtoupper(md5($merchant_id.$transaction_id.$SecretWord.$mb_amount.$mb_currency.$status)); */
if( !ctype_xdigit($md5sig) or 32 != strlen($md5sig) or $md5sig != strtoupper($md5sig) ){ //type, longeur donnée
$valide = false;
//echo "<p class='erreur'>Type, Longueur ou forme du md5 invalide</p>";
}
/*
if($VerifMd5Sig != $md5sig){
$valide = false;
echo "<p class='erreur'>Le Md5 est incorrect.</p>";
}
*/
/*
if( true == $valide ){
$valide = false;
echo "<p class='erreur'>A approfondir.</p>";
}
*/
?>