2009-02-11 21:44:00 +01:00
< ? php
/* Copyright ( C ) 2001 - 2002 Rodolphe Quiedeville < rodolphe @ quiedeville . org >
2013-12-13 21:12:18 +01:00
* Copyright ( C ) 2006 - 2013 Laurent Destailleur < eldy @ users . sourceforge . net >
2009-02-11 21:44:00 +01:00
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
2013-01-16 15:36:08 +01:00
* the Free Software Foundation ; either version 3 of the License , or
2009-02-11 21:44:00 +01:00
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
2011-08-01 01:19:04 +02:00
* along with this program . If not , see < http :// www . gnu . org / licenses />.
2009-02-11 21:44:00 +01:00
*/
/**
2010-01-16 12:40:23 +01:00
* \file htdocs / public / paybox / paymentko . php
2009-07-15 15:32:01 +02:00
* \ingroup paybox
2010-01-16 12:40:23 +01:00
* \brief File to show page after a failed payment
2009-02-11 21:44:00 +01:00
*/
2010-01-16 12:40:23 +01:00
define ( " NOLOGIN " , 1 ); // This means this output page does not require to be logged.
define ( " NOCSRFCHECK " , 1 ); // We accept to go on this page from external web site.
2010-01-12 11:26:05 +01:00
2014-06-09 15:21:20 +02:00
// For MultiCompany module.
2014-01-07 16:29:25 +01:00
// Do not use GETPOST here, function is not defined and define must be done before including main.inc.php
// TODO This should be useless. Because entity must be retreive from object ref and not from url.
$entity = ( ! empty ( $_GET [ 'entity' ]) ? ( int ) $_GET [ 'entity' ] : ( ! empty ( $_POST [ 'entity' ]) ? ( int ) $_POST [ 'entity' ] : 1 ));
2014-06-09 15:21:20 +02:00
if ( is_numeric ( $entity )) define ( " DOLENTITY " , $entity );
2014-01-07 16:29:25 +01:00
2012-08-22 23:24:21 +02:00
require '../../main.inc.php' ;
2012-08-22 23:11:24 +02:00
require_once DOL_DOCUMENT_ROOT . '/paybox/lib/paybox.lib.php' ;
require_once DOL_DOCUMENT_ROOT . '/core/lib/company.lib.php' ;
2017-05-13 14:03:09 +02:00
require_once DOL_DOCUMENT_ROOT . '/core/lib/payments.lib.php' ;
2009-02-11 21:44:00 +01:00
2009-07-15 15:32:01 +02:00
// Security check
2015-07-04 14:56:43 +02:00
if ( empty ( $conf -> paybox -> enabled )) accessforbidden ( '' , 0 , 0 , 1 );
2009-07-15 15:32:01 +02:00
2018-10-01 08:22:23 +02:00
$langs -> loadLangs ( array ( " main " , " other " , " dict " , " bills " , " companies " , " paybox " , " paypal " , " stripe " ));
2009-02-11 21:44:00 +01:00
2017-05-13 21:10:56 +02:00
$object = new stdClass (); // For triggers
2009-02-11 21:44:00 +01:00
2017-05-14 16:17:00 +02:00
$paymentmethod = 'paybox' ;
2009-02-11 21:44:00 +01:00
/*
* Actions
*/
/*
* View
*/
2017-06-18 19:42:59 +02:00
dol_syslog ( " Callback url when a PayBox payment was canceled. query_string= " . ( dol_escape_htmltag ( $_SERVER [ " QUERY_STRING " ]) ? dol_escape_htmltag ( $_SERVER [ " QUERY_STRING " ]) : '' ) . " script_uri= " . ( dol_escape_htmltag ( $_SERVER [ " SCRIPT_URI " ]) ? dol_escape_htmltag ( $_SERVER [ " SCRIPT_URI " ]) : '' ), LOG_DEBUG , 0 , '_paybox' );
2013-02-28 17:37:07 +01:00
2013-03-30 14:27:13 +01:00
$tracepost = " " ;
foreach ( $_POST as $k => $v ) $tracepost .= " { $k } - { $v } \n " ;
dol_syslog ( " POST= " . $tracepost , LOG_DEBUG , 0 , '_paybox' );
2010-11-01 13:41:32 +01:00
2013-04-06 16:14:28 +02:00
2017-05-14 16:17:00 +02:00
if ( ! empty ( $_SESSION [ 'ipaddress' ])) // To avoid to make action twice
2013-06-05 16:24:32 +02:00
{
2017-05-14 16:17:00 +02:00
// Get on url call
$fulltag = $FULLTAG ;
$onlinetoken = empty ( $PAYPALTOKEN ) ? $_SESSION [ 'onlinetoken' ] : $PAYPALTOKEN ;
$payerID = empty ( $PAYPALPAYERID ) ? $_SESSION [ 'payerID' ] : $PAYPALPAYERID ;
// Set by newpayment.php
$paymentType = $_SESSION [ 'PaymentType' ];
$currencyCodeType = $_SESSION [ 'currencyCodeType' ];
2017-08-31 02:34:07 +02:00
$FinalPaymentAmt = $_SESSION [ " FinalPaymentAmt " ];
2017-05-14 16:17:00 +02:00
// From env
$ipaddress = $_SESSION [ 'ipaddress' ];
2017-08-31 02:34:07 +02:00
2017-05-14 16:17:00 +02:00
// Appel des triggers
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php' ;
$interface = new Interfaces ( $db );
$result = $interface -> run_triggers ( 'PAYBOX_PAYMENT_OK' , $object , $user , $langs , $conf );
if ( $result < 0 ) { $error ++ ; $errors = $interface -> errors ; }
// Fin appel triggers
2017-08-31 02:34:07 +02:00
2017-05-14 16:17:00 +02:00
// Send an email
$sendemail = '' ;
2017-08-31 02:34:07 +02:00
if ( ! empty ( $conf -> global -> ONLINE_PAYMENT_SENDEMAIL )) $sendemail = $conf -> global -> ONLINE_PAYMENT_SENDEMAIL ;
2017-05-14 16:17:00 +02:00
if ( $sendemail )
{
$sendto = $sendemail ;
$from = $conf -> global -> MAILING_EMAIL_FROM ;
2017-08-31 02:34:07 +02:00
2017-05-14 16:17:00 +02:00
// Define link to login card
$appli = constant ( 'DOL_APPLICATION_TITLE' );
if ( ! empty ( $conf -> global -> MAIN_APPLICATION_TITLE ))
{
$appli = $conf -> global -> MAIN_APPLICATION_TITLE ;
if ( preg_match ( '/\d\.\d/' , $appli ))
{
if ( ! preg_match ( '/' . preg_quote ( DOL_VERSION ) . '/' , $appli )) $appli .= " ( " . DOL_VERSION . " ) " ; // If new title contains a version that is different than core
}
else $appli .= " " . DOL_VERSION ;
}
else $appli .= " " . DOL_VERSION ;
2017-08-31 02:34:07 +02:00
2017-05-14 16:17:00 +02:00
$urlback = $_SERVER [ " REQUEST_URI " ];
$topic = '[' . $appli . '] ' . $langs -> transnoentitiesnoconv ( " NewOnlinePaymentFailed " );
$content = " " ;
$content .= $langs -> transnoentitiesnoconv ( " ValidationOfOnlinePaymentFailed " ) . " \n " ;
$content .= " \n " ;
$content .= $langs -> transnoentitiesnoconv ( " TechnicalInformation " ) . " : \n " ;
$content .= $langs -> transnoentitiesnoconv ( " OnlinePaymentSystem " ) . ': ' . $paymentmethod . " <br> \n " ;
$content .= $langs -> transnoentitiesnoconv ( " ReturnURLAfterPayment " ) . ': ' . $urlback . " \n " ;
$content .= " tag= " . $fulltag . " \n paymentType= " . $paymentType . " currencycodeType= " . $currencyCodeType . " payerId= " . $payerID . " ipaddress= " . $ipaddress . " FinalPaymentAmt= " . $FinalPaymentAmt ;
require_once DOL_DOCUMENT_ROOT . '/core/class/CMailFile.class.php' ;
$mailfile = new CMailFile ( $topic , $sendto , $from , $content );
2017-08-31 02:34:07 +02:00
2017-05-14 16:17:00 +02:00
$result = $mailfile -> sendfile ();
if ( $result )
{
dol_syslog ( " EMail sent to " . $sendto , LOG_DEBUG , 0 , '_paybox' );
}
else
{
dol_syslog ( " Failed to send EMail to " . $sendto , LOG_ERR , 0 , '_paybox' );
}
}
2017-08-31 02:34:07 +02:00
2017-05-14 16:17:00 +02:00
unset ( $_SESSION [ 'ipaddress' ]);
2013-06-05 16:24:32 +02:00
}
2013-04-06 16:14:28 +02:00
2017-05-13 14:03:09 +02:00
$head = '' ;
2017-08-31 02:34:07 +02:00
if ( ! empty ( $conf -> global -> ONLINE_PAYMENT_CSS_URL )) $head = '<link rel="stylesheet" type="text/css" href="' . $conf -> global -> ONLINE_PAYMENT_CSS_URL . '?lang=' . $langs -> defaultlang . '">' . " \n " ;
2017-05-13 14:03:09 +02:00
2017-05-13 15:19:35 +02:00
$conf -> dol_hide_topmenu = 1 ;
$conf -> dol_hide_leftmenu = 1 ;
2017-05-13 14:03:09 +02:00
2017-05-13 15:19:35 +02:00
llxHeader ( $head , $langs -> trans ( " PaymentForm " ), '' , '' , 0 , 0 , '' , '' , '' , 'onlinepaymentbody' );
2009-02-11 21:44:00 +01:00
2010-11-01 13:41:32 +01:00
// Show message
2010-10-31 21:09:50 +01:00
print '<span id="dolpaymentspan"></span>' . " \n " ;
2010-11-01 13:41:32 +01:00
print '<div id="dolpaymentdiv" align="center">' . " \n " ;
2010-10-31 21:09:50 +01:00
2014-01-07 16:53:07 +01:00
print $langs -> trans ( " YourPaymentHasNotBeenRecorded " ) . " <br><br> \n " ;
2010-10-03 20:16:14 +02:00
2017-09-09 10:03:09 +02:00
$key = 'ONLINE_PAYMENT_MESSAGE_KO' ;
if ( ! empty ( $conf -> global -> $key )) print $conf -> global -> $key ;
2009-02-11 21:44:00 +01:00
2010-11-01 13:41:32 +01:00
print " \n </div> \n " ;
2009-02-11 21:44:00 +01:00
2017-09-09 10:54:30 +02:00
htmlPrintOnlinePaymentFooter ( $mysoc , $langs , 0 , $suffix );
2010-11-01 13:41:32 +01:00
2009-02-11 21:44:00 +01:00
2017-05-13 15:19:35 +02:00
llxFooter ( '' , 'public' );
2012-12-16 19:42:58 +01:00
$db -> close ();