bebeboutik/modules/secuvad/secuvad_response.php
Srv Bebeboutik 6c0978166c add modules
2016-01-04 12:49:26 +01:00

96 lines
3.7 KiB
PHP
Executable File

<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @version Release: $Revision: 7541 $
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
/*************************************************************************************************************************
Script destiner à traiter les analyses de secuvad qui ne sont pas renvoyées immédiatement (status 'en attente' ou erreur).
*************************************************************************************************************************/
include_once(dirname(__FILE__).'/../../config/config.inc.php');
include_once(dirname(__FILE__).'/secuvad.php');
if (!Tools::isSubmit('transaction_report'))
exit;
$secuvad = new Secuvad();
if (in_array($secuvad->getRemoteIPaddress(), $secuvad->get_secuvad_ip()))
{
$rep = stripslashes(urldecode(Tools::getValue('transaction_report')));
if (preg_match('#<transaction_report status=.{0,10} idtransaction=.([0-9]+).><score>([0-9]*)<.score><advice>([^<]*)</advice><error>([^<]*)<.error><.transaction_report>#Ui', $rep, $regs))
{
$rep = preg_replace('#<transaction_report status=.OK. idtransaction=.'.$regs[1].'.><score>'.$regs[2].'<.score><advice>'.$regs[3].'</advice><error>'.$regs[4].'<.error><.transaction_report>#Ui', '', $rep);
$idtransaction = $regs[1];
$score = $regs[2];
$advice = $regs[3];
$erreur = $regs[4];
if (!empty($erreur))
{
$secuvad->secuvad_log('secuvad_response.php '."\n\t".' Error: '.$erreur);
Db::getInstance()->Execute('
UPDATE `'._DB_PREFIX_.'secuvad_order`
SET `secuvad_status` = 4, `error` = '.pSQL($erreur).'
WHERE `id_secuvad_order` = '.(int)($idtransaction));
}
else
{
$secuvad->secuvad_log('secuvad_response.php '."\n\t".' Response: '.$rep);
if (preg_match('/[0-9]+/Ui', $score))
Db::getInstance()->Execute('
UPDATE `'._DB_PREFIX_.'secuvad_order`
SET `secuvad_status` = 5, `score` = '.(int)($score).'
WHERE `id_secuvad_order` = '.(int)($idtransaction));
else
{
if (strtoupper($advice) == 'INVALIDE')
$secuvad_status = 3;
elseif (strtoupper($advice) == 'VALIDE')
$secuvad_status = 1;
elseif (strtoupper($advice) == 'A EXPERTISER')
$secuvad_status = 7;
elseif (strtoupper($advice) == 'A EXPERTISER C')
$secuvad_status = 6;
elseif (strtoupper($advice) == 'EN ATTENTE')
$secuvad_status = 2;
else
$secuvad_status = 4;
Db::getInstance()->Execute('
UPDATE `'._DB_PREFIX_.'secuvad_order`
SET `secuvad_status` = '.(int)($secuvad_status).', `advice` = \''.pSQL($advice).'\'
WHERE `id_secuvad_order` = '.(int)($idtransaction));
}
}
}
if (preg_match('#<bulk_report><global_report>([^<]*)<.global_report><error>([^<]+)<.error><.bulk_report>#Ui', $rep, $regs))
$secuvad->secuvad_log('secuvad_response.php '."\n\t".' Error '.$regs[2]);
}