';
diff --git a/htdocs/public/paybox/index.php b/htdocs/public/paybox/index.php
deleted file mode 100644
index 60da64aad9d..00000000000
--- a/htdocs/public/paybox/index.php
+++ /dev/null
@@ -1,26 +0,0 @@
-
- *
- * 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
- * the Free Software Foundation; either version 3 of the License, or
- * (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
- * along with this program. If not, see .
- */
-
-/**
- * \file htdocs/public/paybox/index.php
- * \ingroup core
- * \brief A redirect page to an error
- */
-
-require '../../master.inc.php';
-
-header("Location: ".DOL_URL_ROOT.'/public/error-404.php');
diff --git a/htdocs/public/paybox/newpayment.php b/htdocs/public/paybox/newpayment.php
deleted file mode 100644
index 9524b1be9ed..00000000000
--- a/htdocs/public/paybox/newpayment.php
+++ /dev/null
@@ -1,48 +0,0 @@
-
- * Copyright (C) 2006-2012 Laurent Destailleur
- * Copyright (C) 2009 Regis Houssin
- *
- * 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
- * the Free Software Foundation; either version 3 of the License, or
- * (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
- * along with this program. If not, see .
- */
-
-/**
- * \file htdocs/public/paybox/newpayment.php
- * \ingroup paybox
- * \brief File to offer a way to make a payment for a particular Dolibarr entity
- */
-
-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.
-
-// For MultiCompany module.
-// 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));
-if (is_numeric($entity)) define("DOLENTITY", $entity);
-
-require '../../main.inc.php';
-require_once DOL_DOCUMENT_ROOT.'/paybox/lib/paybox.lib.php';
-require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
-require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php';
-require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
-require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
-
-// Security check
-if (empty($conf->paybox->enabled)) accessforbidden('', 0, 0, 1);
-
-$newurl = $_SERVER['REQUEST_URI'];
-$newurl = preg_replace('/\/paybox\/newpayment/', '/payment/newpayment', $newurl);
-header("Location: ".$newurl.(preg_match('/\?/', $newurl)?'&':'?').'paymentmethod=paybox');
-exit;
diff --git a/htdocs/public/paybox/paymentko.php b/htdocs/public/paybox/paymentko.php
deleted file mode 100644
index a2f9f52e9e5..00000000000
--- a/htdocs/public/paybox/paymentko.php
+++ /dev/null
@@ -1,162 +0,0 @@
-
- * Copyright (C) 2006-2013 Laurent Destailleur
- *
- * 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
- * the Free Software Foundation; either version 3 of the License, or
- * (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
- * along with this program. If not, see .
- */
-
-/**
- * \file htdocs/public/paybox/paymentko.php
- * \ingroup paybox
- * \brief File to show page after a failed payment
- */
-
-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.
-
-// For MultiCompany module.
-// 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));
-if (is_numeric($entity)) define("DOLENTITY", $entity);
-
-require '../../main.inc.php';
-require_once DOL_DOCUMENT_ROOT.'/paybox/lib/paybox.lib.php';
-require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
-require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php';
-
-// Security check
-if (empty($conf->paybox->enabled)) accessforbidden('', 0, 0, 1);
-
-$langs->loadLangs(array("main", "other", "dict", "bills", "companies", "paybox", "paypal", "stripe"));
-
-$object = new stdClass(); // For triggers
-
-$paymentmethod='paybox';
-
-
-/*
- * Actions
- */
-
-
-
-
-
-/*
- * View
- */
-
-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');
-
-$tracepost = "";
-foreach($_POST as $k => $v) $tracepost .= "{$k} - {$v}\n";
-dol_syslog("POST=".$tracepost, LOG_DEBUG, 0, '_paybox');
-
-
-if (! empty($_SESSION['ipaddress'])) // To avoid to make action twice
-{
- // 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'];
- $FinalPaymentAmt = $_SESSION["FinalPaymentAmt"];
- // From env
- $ipaddress = $_SESSION['ipaddress'];
-
- // 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
-
- // Send an email
- $sendemail = '';
- if (! empty($conf->global->ONLINE_PAYMENT_SENDEMAIL)) $sendemail=$conf->global->ONLINE_PAYMENT_SENDEMAIL;
-
- if ($sendemail)
- {
- $sendto=$sendemail;
- $from=$conf->global->MAILING_EMAIL_FROM;
-
- // 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;
-
- $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." \n";
- $content.=$langs->transnoentitiesnoconv("ReturnURLAfterPayment").': '.$urlback."\n";
- $content.="tag=".$fulltag."\npaymentType=".$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);
-
- $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');
- }
- }
-
- unset($_SESSION['ipaddress']);
-}
-
-$head='';
-if (! empty($conf->global->ONLINE_PAYMENT_CSS_URL)) $head=''."\n";
-
-$conf->dol_hide_topmenu=1;
-$conf->dol_hide_leftmenu=1;
-
-llxHeader($head, $langs->trans("PaymentForm"), '', '', 0, 0, '', '', '', 'onlinepaymentbody');
-
-
-// Show message
-print ''."\n";
-print '
\n";
-
-
-htmlPrintOnlinePaymentFooter($mysoc, $langs, 0, $suffix);
-
-
-llxFooter('', 'public');
-
-$db->close();
diff --git a/htdocs/public/paybox/paymentok.php b/htdocs/public/paybox/paymentok.php
deleted file mode 100644
index efa49ce84fc..00000000000
--- a/htdocs/public/paybox/paymentok.php
+++ /dev/null
@@ -1,194 +0,0 @@
-
- * Copyright (C) 2006-2013 Laurent Destailleur
- *
- * 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
- * the Free Software Foundation; either version 3 of the License, or
- * (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
- * along with this program. If not, see .
- */
-
-/**
- * \file htdocs/public/paybox/paymentok.php
- * \ingroup paybox
- * \brief File to show page after a successful payment
- */
-
-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.
-
-// For MultiCompany module.
-// 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));
-if (is_numeric($entity)) define("DOLENTITY", $entity);
-
-require '../../main.inc.php';
-require_once DOL_DOCUMENT_ROOT.'/paybox/lib/paybox.lib.php';
-require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
-require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php';
-
-// Security check
-if (empty($conf->paybox->enabled)) accessforbidden('', 0, 0, 1);
-
-$langs->loadLangs(array("main", "other", "dict", "bills", "companies", "paybox", "paypal", "stripe"));
-
-/*$source=GETPOST('source');
-$ref=GETPOST('ref');
-$PAYBOXTOKEN=GETPOST('TOKEN');
-if (empty($PAYBOXTOKEN)) $PAYBOXTOKEN=GETPOST('token');
-$PAYBOXPAYERID=GETPOST('PAYERID');
-if (empty($PAYBOXPAYERID)) $PAYBOXPAYERID=GETPOST('PayerID');
-*/
-$FULLTAG=GETPOST('FULLTAG');
-if (empty($FULLTAG)) $FULLTAG=GETPOST('fulltag');
-
-
-$object = new stdClass(); // For triggers
-
-$paymentmethod='paybox';
-
-
-/*
- * Actions
- */
-
-
-
-
-
-/*
- * View
- */
-
-dol_syslog("Callback url when a PayBox payment was done. 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');
-
-$tracepost = "";
-foreach($_POST as $k => $v) $tracepost .= "{$k} - {$v}\n";
-dol_syslog("POST=".$tracepost, LOG_DEBUG, 0, '_paybox');
-
-
-$head='';
-if (! empty($conf->global->ONLINE_PAYMENT_CSS_URL)) $head=''."\n";
-
-$conf->dol_hide_topmenu=1;
-$conf->dol_hide_leftmenu=1;
-
-llxHeader($head, $langs->trans("PaymentForm"), '', '', 0, 0, '', '', '', 'onlinepaymentbody');
-
-
-// Show message
-print ''."\n";
-print '
'."\n";
-
-// Get on url call
-/*
-$onlinetoken = $PAYBOXTOKEN;
-*/
-$fulltag = $FULLTAG;
-/*$payerID = $PAYBOXPAYERID;
-// Set by newpayment.php
-$paymentType = $_SESSION['PaymentType'];
-$currencyCodeType = $_SESSION['currencyCodeType'];
-$FinalPaymentAmt = $_SESSION["FinalPaymentAmt"];
-// From env
-$ipaddress = $_SESSION['ipaddress'];
-
-dol_syslog("Call newpaymentok with token=".$onlinetoken." paymentType=".$paymentType." currencyCodeType=".$currencyCodeType." payerID=".$payerID." ipaddress=".$ipaddress." FinalPaymentAmt=".$FinalPaymentAmt." fulltag=".$fulltag);
-*/
-
-
-print $langs->trans("YourPaymentHasBeenRecorded")."
\n";
-
-$key='ONLINE_PAYMENT_MESSAGE_OK';
-if (! empty($conf->global->$key)) print $conf->global->$key;
-
-
-// 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
-
-$tmptag=dolExplodeIntoArray($fulltag, '.', '=');
-
-// Send an email
-if (! empty($conf->global->ONLINE_PAYMENT_SENDEMAIL))
-{
- $sendto=$conf->global->ONLINE_PAYMENT_SENDEMAIL;
- $from=$conf->global->MAILING_EMAIL_FROM;
- // Define $urlwithroot
- $urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT, '/').'$/i', '', trim($dolibarr_main_url_root));
- $urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file
- //$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current
-
- // 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;
-
- $urlback=$_SERVER["REQUEST_URI"];
- $topic='['.$appli.'] '.$langs->transnoentitiesnoconv("NewOnlinePaymentReceived");
- $content="";
- if (! empty($tmptag['MEM']))
- {
- $langs->load("members");
- $url=$urlwithroot."/adherents/subscription.php?rowid=".$tmptag['MEM'];
- $content.=$langs->trans("PaymentSubscription")." \n";
- $content.=$langs->trans("MemberId").': '.$tmptag['MEM']." \n";
- $content.=$langs->trans("Link").': '.$url.''." \n";
- }
- else
- {
- $content.=$langs->transnoentitiesnoconv("NewOnlinePaymentReceived")." \n";
- }
- $content.=" \n";
- $content.=$langs->transnoentitiesnoconv("TechnicalInformation").": \n";
- $content.=$langs->transnoentitiesnoconv("OnlinePaymentSystem").': '.$paymentmethod." \n";
- $content.=$langs->transnoentitiesnoconv("ReturnURLAfterPayment").': '.$urlback." \n";
- $content.="tag=".$fulltag." \n";
-
- $ishtml=dol_textishtml($content); // May contain urls
-
- require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
- $mailfile = new CMailFile($topic, $sendto, $from, $content, array(), array(), array(), '', '', 0, $ishtml);
-
- // Send an email
- $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');
- }
-}
-
-
-
-print "\n
\n";
-
-htmlPrintOnlinePaymentFooter($mysoc, $langs, 0, $suffix);
-
-
-llxFooter('', 'public');
-
-$db->close();
diff --git a/htdocs/public/paypal/index.php b/htdocs/public/paypal/index.php
deleted file mode 100644
index 54e81788f49..00000000000
--- a/htdocs/public/paypal/index.php
+++ /dev/null
@@ -1,26 +0,0 @@
-
- *
- * 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
- * the Free Software Foundation; either version 3 of the License, or
- * (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
- * along with this program. If not, see .
- */
-
-/**
- * \file htdocs/public/paypal/index.php
- * \ingroup core
- * \brief A redirect page to an error
- */
-
-require '../../master.inc.php';
-
-header("Location: ".DOL_URL_ROOT.'/public/error-404.php');
diff --git a/htdocs/public/paypal/newpayment.php b/htdocs/public/paypal/newpayment.php
deleted file mode 100644
index ce6bb62500b..00000000000
--- a/htdocs/public/paypal/newpayment.php
+++ /dev/null
@@ -1,52 +0,0 @@
-
- * Copyright (C) 2006-2017 Laurent Destailleur
- * Copyright (C) 2009-2012 Regis Houssin
- *
- * 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
- * the Free Software Foundation; either version 3 of the License, or
- * (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
- * along with this program. If not, see .
- *
- * For paypal test: https://developer.paypal.com/
- * For paybox test: ???
- */
-
-/**
- * \file htdocs/public/paypal/newpayment.php
- * \ingroup paypal
- * \brief File to offer a way to make a payment for a particular Dolibarr entity
- */
-
-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.
-
-// For MultiCompany module.
-// 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));
-if (is_numeric($entity)) define("DOLENTITY", $entity);
-
-require '../../main.inc.php';
-require_once DOL_DOCUMENT_ROOT.'/paypal/lib/paypal.lib.php';
-require_once DOL_DOCUMENT_ROOT.'/paypal/lib/paypalfunctions.lib.php';
-require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
-require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php';
-require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
-require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
-
-// Security check
-if (empty($conf->paypal->enabled)) accessforbidden('', 0, 0, 1);
-
-$newurl = $_SERVER['REQUEST_URI'];
-$newurl = preg_replace('/\/paypal\/newpayment/', '/payment/newpayment', $newurl);
-header("Location: ".$newurl.(preg_match('/\?/', $newurl)?'&':'?').'paymentmethod=paypal');
-exit;
diff --git a/htdocs/public/paypal/paymentko.php b/htdocs/public/paypal/paymentko.php
deleted file mode 100644
index 2a80f5e5ba4..00000000000
--- a/htdocs/public/paypal/paymentko.php
+++ /dev/null
@@ -1,173 +0,0 @@
-
- * Copyright (C) 2006-2013 Laurent Destailleur
- * Copyright (C) 2012 Regis Houssin
- *
- * 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
- * the Free Software Foundation; either version 3 of the License, or
- * (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
- * along with this program. If not, see .
- */
-
-/**
- * \file htdocs/public/paypal/paymentko.php
- * \ingroup paypal
- * \brief File to show page after a failed payment.
- * This page is called by paypal with url provided to payal competed with parameter TOKEN=xxx
- * This token can be used to get more informations.
- */
-
-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.
-
-// For MultiCompany module.
-// 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));
-if (is_numeric($entity)) define("DOLENTITY", $entity);
-
-require '../../main.inc.php';
-require_once DOL_DOCUMENT_ROOT.'/paypal/lib/paypal.lib.php';
-require_once DOL_DOCUMENT_ROOT.'/paypal/lib/paypalfunctions.lib.php';
-require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
-require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php';
-
-// Security check
-if (empty($conf->paypal->enabled)) accessforbidden('', 0, 0, 1);
-
-$langs->loadLangs(array("main", "other", "dict", "bills", "companies", "paybox", "paypal", "stripe"));
-
-$PAYPALTOKEN=GETPOST('TOKEN');
-if (empty($PAYPALTOKEN)) $PAYPALTOKEN=GETPOST('token');
-$PAYPALPAYERID=GETPOST('PAYERID');
-if (empty($PAYPALPAYERID)) $PAYPALPAYERID=GETPOST('PayerID');
-$FULLTAG=GETPOST('FULLTAG');
-if (empty($FULLTAG)) $FULLTAG=GETPOST('fulltag');
-
-
-$object = new stdClass(); // For triggers
-
-$paymentmethod='paypal';
-
-
-/*
- * Actions
- */
-
-
-
-
-/*
- * View
- */
-
-dol_syslog("Callback url when a PayPal 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, '_paypal');
-
-$tracepost = "";
-foreach($_POST as $k => $v) $tracepost .= "{$k} - {$v}\n";
-dol_syslog("POST=".$tracepost, LOG_DEBUG, 0, '_paypal');
-
-if (! empty($_SESSION['ipaddress'])) // To avoid to make action twice
-{
- // 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'];
- $FinalPaymentAmt = $_SESSION["FinalPaymentAmt"];
- // From env
- $ipaddress = $_SESSION['ipaddress'];
-
- // Appel des triggers
- include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
- $interface=new Interfaces($db);
- $result=$interface->run_triggers('PAYPAL_PAYMENT_KO', $object, $user, $langs, $conf);
- if ($result < 0) { $error++; $errors=$interface->errors; }
- // Fin appel triggers
-
- // Send an email
- $sendemail = '';
- if (! empty($conf->global->ONLINE_PAYMENT_SENDEMAIL)) $sendemail=$conf->global->ONLINE_PAYMENT_SENDEMAIL;
-
- if ($sendemail)
- {
- $sendto=$sendemail;
- $from=$conf->global->MAILING_EMAIL_FROM;
-
- // 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;
-
- $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." \n";
- $content.=$langs->transnoentitiesnoconv("ReturnURLAfterPayment").': '.$urlback."\n";
- $content.="tag=".$fulltag."\ntoken=".$onlinetoken." 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);
-
- $result=$mailfile->sendfile();
- if ($result)
- {
- dol_syslog("EMail sent to ".$sendto, LOG_DEBUG, 0, '_paypal');
- }
- else
- {
- dol_syslog("Failed to send EMail to ".$sendto, LOG_ERR, 0, '_paypal');
- }
- }
-
- unset($_SESSION['ipaddress']);
-}
-
-
-$head='';
-if (! empty($conf->global->ONLINE_PAYMENT_CSS_URL)) $head=''."\n";
-
-$conf->dol_hide_topmenu=1;
-$conf->dol_hide_leftmenu=1;
-
-llxHeader($head, $langs->trans("PaymentForm"), '', '', 0, 0, '', '', '', 'onlinepaymentbody');
-
-
-// Show ko message
-print ''."\n";
-print '
\n";
-
-
-htmlPrintOnlinePaymentFooter($mysoc, $langs, 0, $suffix);
-
-
-llxFooter('', 'public');
-
-$db->close();
diff --git a/htdocs/public/paypal/paymentok.php b/htdocs/public/paypal/paymentok.php
deleted file mode 100644
index 6319945ce00..00000000000
--- a/htdocs/public/paypal/paymentok.php
+++ /dev/null
@@ -1,332 +0,0 @@
-
- * Copyright (C) 2006-2013 Laurent Destailleur
- * Copyright (C) 2012 Regis Houssin
- *
- * 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
- * the Free Software Foundation; either version 3 of the License, or
- * (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
- * along with this program. If not, see .
- */
-
-/**
- * \file htdocs/public/paypal/paymentok.php
- * \ingroup paypal
- * \brief File to show page after a successful payment
- * This page is called by paypal with url provided to payal completed with parameter TOKEN=xxx
- * This token can be used to get more informations.
- */
-
-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.
-
-// For MultiCompany module.
-// 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));
-if (is_numeric($entity)) define("DOLENTITY", $entity);
-
-require '../../main.inc.php';
-require_once DOL_DOCUMENT_ROOT.'/paypal/lib/paypal.lib.php';
-require_once DOL_DOCUMENT_ROOT.'/paypal/lib/paypalfunctions.lib.php';
-require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
-require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php';
-
-// Security check
-if (empty($conf->paypal->enabled)) accessforbidden('', 0, 0, 1);
-
-$langs->loadLangs(array("main","other","dict","bills","companies","paybox","paypal","stripe"));
-
-// Clean parameters
-$PAYPAL_API_USER="";
-if (! empty($conf->global->PAYPAL_API_USER)) $PAYPAL_API_USER=$conf->global->PAYPAL_API_USER;
-$PAYPAL_API_PASSWORD="";
-if (! empty($conf->global->PAYPAL_API_PASSWORD)) $PAYPAL_API_PASSWORD=$conf->global->PAYPAL_API_PASSWORD;
-$PAYPAL_API_SIGNATURE="";
-if (! empty($conf->global->PAYPAL_API_SIGNATURE)) $PAYPAL_API_SIGNATURE=$conf->global->PAYPAL_API_SIGNATURE;
-$PAYPAL_API_SANDBOX="";
-if (! empty($conf->global->PAYPAL_API_SANDBOX)) $PAYPAL_API_SANDBOX=$conf->global->PAYPAL_API_SANDBOX;
-$PAYPAL_API_OK="";
-if ($urlok) $PAYPAL_API_OK=$urlok;
-$PAYPAL_API_KO="";
-if ($urlko) $PAYPAL_API_KO=$urlko;
-if (empty($PAYPAL_API_USER))
-{
- dol_print_error('', "Paypal setup param PAYPAL_API_USER not defined");
- return -1;
-}
-if (empty($PAYPAL_API_PASSWORD))
-{
- dol_print_error('', "Paypal setup param PAYPAL_API_PASSWORD not defined");
- return -1;
-}
-if (empty($PAYPAL_API_SIGNATURE))
-{
- dol_print_error('', "Paypal setup param PAYPAL_API_SIGNATURE not defined");
- return -1;
-}
-
-$source=GETPOST('source');
-$ref=GETPOST('ref');
-$PAYPALTOKEN=GETPOST('TOKEN');
-if (empty($PAYPALTOKEN)) $PAYPALTOKEN=GETPOST('token');
-$PAYPALPAYERID=GETPOST('PAYERID');
-if (empty($PAYPALPAYERID)) $PAYPALPAYERID=GETPOST('PayerID');
-$FULLTAG=GETPOST('FULLTAG');
-if (empty($FULLTAG)) $FULLTAG=GETPOST('fulltag');
-
-
-$object = new stdClass(); // For triggers
-
-$paymentmethod='paypal';
-
-
-/*
- * Actions
- */
-
-
-
-/*
- * View
- */
-
-dol_syslog("Callback url when a PayPal payment was done. 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, '_paypal');
-
-$tracepost = "";
-foreach($_POST as $k => $v) $tracepost .= "{$k} - {$v}\n";
-dol_syslog("POST=".$tracepost, LOG_DEBUG, 0, '_paypal');
-
-
-$head='';
-if (! empty($conf->global->ONLINE_PAYMENT_CSS_URL)) $head=''."\n";
-
-$conf->dol_hide_topmenu=1;
-$conf->dol_hide_leftmenu=1;
-
-llxHeader($head, $langs->trans("PaymentForm"), '', '', 0, 0, '', '', '', 'onlinepaymentbody');
-
-
-// Show message
-print ''."\n";
-print '
\n";
-
- $key='ONLINE_PAYMENT_MESSAGE_OK';
- if (! empty($conf->global->$key)) print $conf->global->$key;
-
- // Appel des triggers
- include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
- $interface=new Interfaces($db);
- $result=$interface->run_triggers('PAYPAL_PAYMENT_OK', $object, $user, $langs, $conf);
- if ($result < 0) { $error++; $errors=$interface->errors; }
- // Fin appel triggers
-
- $tmptag=dolExplodeIntoArray($fulltag, '.', '=');
-
- // Send an email
- if (! empty($conf->global->ONLINE_PAYMENT_SENDEMAIL))
- {
- $sendto=$conf->global->ONLINE_PAYMENT_SENDEMAIL;
- $from=$conf->global->MAILING_EMAIL_FROM;
- // Define $urlwithroot
- $urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT, '/').'$/i', '', trim($dolibarr_main_url_root));
- $urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file
- //$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current
-
- // 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;
-
- $urlback=$_SERVER["REQUEST_URI"];
- $topic='['.$appli.'] '.$langs->transnoentitiesnoconv("NewOnlinePaymentReceived");
- $content="";
- if (! empty($tmptag['MEM']))
- {
- $langs->load("members");
- $url=$urlwithroot."/adherents/subscription.php?rowid=".$tmptag['MEM'];
- $content.=$langs->trans("PaymentSubscription")." \n";
- $content.=$langs->trans("MemberId").': '.$tmptag['MEM']." \n";
- $content.=$langs->trans("Link").': '.$url.''." \n";
- }
- else
- {
- $content.=$langs->transnoentitiesnoconv("NewOnlinePaymentReceived")." \n";
- }
- $content.=" \n";
- $content.=$langs->transnoentitiesnoconv("TechnicalInformation").": \n";
- $content.=$langs->transnoentitiesnoconv("OnlinePaymentSystem").': '.$paymentmethod." \n";
- $content.=$langs->transnoentitiesnoconv("ReturnURLAfterPayment").': '.$urlback." \n";
- $content.="tag=".$fulltag."\ntoken=".$onlinetoken." paymentType=".$paymentType." currencycodeType=".$currencyCodeType." payerId=".$payerID." ipaddress=".$ipaddress." FinalPaymentAmt=".$FinalPaymentAmt;
-
- $ishtml=dol_textishtml($content); // May contain urls
-
- require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
- $mailfile = new CMailFile($topic, $sendto, $from, $content, array(), array(), array(), '', '', 0, $ishtml);
-
- $result=$mailfile->sendfile();
- if ($result)
- {
- dol_syslog("EMail sent to ".$sendto, LOG_DEBUG, 0, '_paypal');
- }
- else
- {
- dol_syslog("Failed to send EMail to ".$sendto, LOG_ERR, 0, '_paypal');
- }
- }
- }
- else
- {
- // Appel des triggers
- include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
- $interface=new Interfaces($db);
- $result=$interface->run_triggers('PAYPAL_PAYMENT_KO', $object, $user, $langs, $conf);
- if ($result < 0) { $error++; $errors=$interface->errors; }
- // Fin appel triggers
-
- //Display a user friendly Error on the page using any of the following error information returned by PayPal
- $ErrorCode = urldecode($resArray["L_ERRORCODE0"]);
- $ErrorShortMsg = urldecode($resArray["L_SHORTMESSAGE0"]);
- $ErrorLongMsg = urldecode($resArray["L_LONGMESSAGE0"]);
- $ErrorSeverityCode = urldecode($resArray["L_SEVERITYCODE0"]);
-
- echo $langs->trans('DoExpressCheckoutPaymentAPICallFailed') . " \n";
- echo $langs->trans('DetailedErrorMessage') . ": " . $ErrorLongMsg." \n";
- echo $langs->trans('ShortErrorMessage') . ": " . $ErrorShortMsg." \n";
- echo $langs->trans('ErrorCode') . ": " . $ErrorCode." \n";
- echo $langs->trans('ErrorSeverityCode') . ": " . $ErrorSeverityCode." \n";
-
- if ($mysoc->email) echo "\nPlease, send a screenshot of this page to ".$mysoc->email." \n";
-
- $tmptag=dolExplodeIntoArray($fulltag, '.', '=');
-
- // Send an email
- if (! empty($conf->global->ONLINE_PAYMENT_SENDEMAIL))
- {
- $sendto=$conf->global->ONLINE_PAYMENT_SENDEMAIL;
- $from=$conf->global->MAILING_EMAIL_FROM;
- // Define $urlwithroot
- $urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT, '/').'$/i', '', trim($dolibarr_main_url_root));
- $urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file
- //$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current
-
- // 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;
-
- $urlback=$_SERVER["REQUEST_URI"];
- $topic='['.$appli.'] '.$langs->transnoentitiesnoconv("ValidationOfPaymentFailed");
- $content="";
- $content.=$langs->transnoentitiesnoconv("PaymentSystemConfirmPaymentPageWasCalledButFailed")."\n";
- $content.="\n";
- $content.=$langs->transnoentitiesnoconv("TechnicalInformation").":\n";
- $content.=$langs->transnoentitiesnoconv("OnlinePaymentSystem").': '.$paymentmethod."\n";
- $content.=$langs->transnoentitiesnoconv("ReturnURLAfterPayment").': '.$urlback."\n";
- $content.="tag=".$fulltag."\ntoken=".$onlinetoken." paymentType=".$paymentType." currencycodeType=".$currencyCodeType." payerId=".$payerID." ipaddress=".$ipaddress." FinalPaymentAmt=".$FinalPaymentAmt;
-
- $ishtml=dol_textishtml($content); // May contain urls
-
- require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
- $mailfile = new CMailFile($topic, $sendto, $from, $content, array(), array(), array(), '', '', 0, $ishtml);
-
- $result=$mailfile->sendfile();
- if ($result)
- {
- dol_syslog("EMail sent to ".$sendto, LOG_DEBUG, 0, '_paypal');
- }
- else
- {
- dol_syslog("Failed to send EMail to ".$sendto, LOG_ERR, 0, '_paypal');
- }
- }
- }
- }
- else
- {
- dol_print_error('', 'Session expired');
- }
-}
-else
-{
- // No TOKEN parameter in URL
- dol_print_error('', 'No TOKEN parameter in URL');
-}
-
-print "\n
\n";
-
-htmlPrintOnlinePaymentFooter($mysoc, $langs, 0, $suffix);
-
-
-llxFooter('', 'public');
-
-$db->close();
diff --git a/htdocs/public/stripe/ipn.php b/htdocs/public/stripe/ipn.php
index 2f44c6390ff..7b57c315e34 100644
--- a/htdocs/public/stripe/ipn.php
+++ b/htdocs/public/stripe/ipn.php
@@ -146,7 +146,7 @@ $societeName = $conf->global->MAIN_INFO_SOCIETE_NOM;
if (! empty($conf->global->MAIN_APPLICATION_TITLE)) $societeName = $conf->global->MAIN_APPLICATION_TITLE;
-dol_syslog("Stripe IPN was called with event->type = ".$event->type);
+dol_syslog("***** Stripe IPN was called with event->type = ".$event->type);
if ($event->type == 'payout.created') {
@@ -404,18 +404,7 @@ elseif ($event->type == 'charge.failed') {
// TODO: Redirect to paymentko.php
}
elseif (($event->type == 'source.chargeable') && ($event->data->object->type == 'three_d_secure') && ($event->data->object->three_d_secure->authenticated==true)) {
-
- $fulltag=$event->data->object->metadata->FULLTAG;
- dol_syslog("fulltag=".$fulltag);
- // Save into $tmptag all metadata
- $tmptag=dolExplodeIntoArray($fulltag, '.', '=');
-
- $stripe=new Stripe($db);
- /*
- $stripeacc = $stripe->getStripeAccount($service); // Stripe OAuth connect account of dolibarr user (no network access here)
- $stripecu = $stripe->getStripeCustomerAccount($tmptag['CUS'], $servicestatus); // Get thirdparty cu_...
- $charge=$stripe->createPaymentStripe($event->data->object->amount/100, $event->data->object->currency, $origin, $item, $event->data->object->id, $stripecu, $stripeacc, $servicestatus);
- */
+ // This event is deprecated.
}
http_response_code(200); // PHP 5.4 or greater
diff --git a/htdocs/public/stripe/newpayment.php b/htdocs/public/stripe/newpayment.php
deleted file mode 100644
index 38f76865cb7..00000000000
--- a/htdocs/public/stripe/newpayment.php
+++ /dev/null
@@ -1,51 +0,0 @@
-
- * Copyright (C) 2017 Saasprov
- * Copyright (C) 2017 Laurent Destailleur
- * Copyright (C) 2017 Ferran Marcet
- *
- * 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
- * the Free Software Foundation, either version 3 of the License, or
- * (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
- * along with this program. If not, see .
- *
- * Page is called with payment parameters then called with action='dopayment', then called with action='charge' then redirect is done on urlok/jo
- */
-
-/**
- * \file htdocs/public/stripe/newpayment.php
- * \ingroup Stripe
- * \brief Page to do payment with Stripe
- */
-
-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.
-
-// For MultiCompany module.
-// 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));
-if (is_numeric($entity)) define("DOLENTITY", $entity);
-
-require '../../main.inc.php';
-require_once DOL_DOCUMENT_ROOT.'/stripe/config.php';
-require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
-require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php';
-require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
-require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
-
-// Security check
-if (empty($conf->stripe->enabled)) accessforbidden('', 0, 0, 1);
-
-$newurl = $_SERVER['REQUEST_URI'];
-$newurl = preg_replace('/\/stripe\/newpayment/', '/stripe/newpayment', $newurl);
-header("Location: ".$newurl.(preg_match('/\?/', $newurl)?'&':'?').'paymentmethod=stripe');
-exit;
diff --git a/htdocs/public/stripe/paymentko.php b/htdocs/public/stripe/paymentko.php
deleted file mode 100644
index fa4eb5730eb..00000000000
--- a/htdocs/public/stripe/paymentko.php
+++ /dev/null
@@ -1,160 +0,0 @@
-
- *
- * 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
- * the Free Software Foundation; either version 3 of the License, or
- * (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
- * along with this program. If not, see .
- */
-
-/**
- * \file htdocs/public/stripe/paymentko.php
- * \ingroup core
- * \brief File to show page after a failed payment.
- * This page is called by payment system with url provided to it competed with parameter FULLTAG=xxx
- * More data like token are saved into session. This token can be used to get more informations.
- */
-
-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.
-
-// For MultiCompany module.
-// 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));
-if (is_numeric($entity)) define("DOLENTITY", $entity);
-
-require '../../main.inc.php';
-require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
-require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php';
-
-$langs->loadLangs(array("main", "other", "dict", "bills", "companies", "paybox", "paypal", "stripe"));
-
-$FULLTAG=GETPOST('FULLTAG');
-if (empty($FULLTAG)) $FULLTAG=GETPOST('fulltag');
-
-// Security check
-if (empty($conf->stripe->enabled)) accessforbidden('', 0, 0, 1);
-
-$object = new stdClass(); // For triggers
-
-$paymentmethod='stripe';
-
-
-/*
- * Actions
- */
-
-
-
-
-/*
- * View
- */
-
-dol_syslog("Callback url when a PayPal payment was canceled. query_string=".(empty($_SERVER["QUERY_STRING"])?'':$_SERVER["QUERY_STRING"])." script_uri=".(empty($_SERVER["SCRIPT_URI"])?'':$_SERVER["SCRIPT_URI"]), LOG_DEBUG, 0, '_stripe');
-
-$tracepost = "";
-foreach($_POST as $k => $v) $tracepost .= "{$k} - {$v}\n";
-dol_syslog("POST=".$tracepost, LOG_DEBUG, 0, '_stripe');
-
-if (! empty($_SESSION['ipaddress'])) // To avoid to make action twice
-{
- $fulltag = $FULLTAG;
- $onlinetoken = empty($PAYPALTOKEN)?$_SESSION['onlinetoken']:$PAYPALTOKEN;
- $payerID = empty($PAYPALPAYERID)?$_SESSION['payerID']:$PAYPALPAYERID;
- $currencyCodeType = $_SESSION['currencyCodeType'];
- $paymentType = $_SESSION['paymentType'];
- $FinalPaymentAmt = $_SESSION['FinalPaymentAmt'];
- $ipaddress = $_SESSION['ipaddress'];
-
- // Appel des triggers
- include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
- $interface=new Interfaces($db);
- $result=$interface->run_triggers('STRIPE_PAYMENT_KO', $object, $user, $langs, $conf);
- if ($result < 0) { $error++; $errors=$interface->errors; }
- // Fin appel triggers
-
- // Send an email
- $sendemail = '';
- if (! empty($conf->global->ONLINE_PAYMENT_SENDEMAIL)) $sendemail=$conf->global->ONLINE_PAYMENT_SENDEMAIL;
-
- if ($sendemail)
- {
- // Get on url call
- $sendto=$sendemail;
- $from=$conf->global->MAILING_EMAIL_FROM;
-
- // 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;
-
- $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."\n";
- $content.=$langs->transnoentitiesnoconv("ReturnURLAfterPayment").': '.$urlback."\n";
- $content.="tag=".$fulltag."\ntoken=".$onlinetoken." 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);
-
- $result=$mailfile->sendfile();
- if ($result)
- {
- dol_syslog("EMail sent to ".$sendto, LOG_DEBUG, 0, '_stripe');
- }
- else
- {
- dol_syslog("Failed to send EMail to ".$sendto, LOG_ERR, 0, '_stripe');
- }
- }
-
- unset($_SESSION['ipaddress']);
-}
-
-$head='';
-if (! empty($conf->global->ONLINE_PAYMENT_CSS_URL)) $head=''."\n";
-
-$conf->dol_hide_topmenu=1;
-$conf->dol_hide_leftmenu=1;
-
-llxHeader($head, $langs->trans("PaymentForm"), '', '', 0, 0, '', '', '', 'onlinepaymentbody');
-
-
-// Show ko message
-print ''."\n";
-print '
\n";
-
-
-htmlPrintOnlinePaymentFooter($mysoc, $langs, 0, $suffix);
-
-
-llxFooter('', 'public');
-
-$db->close();
diff --git a/htdocs/public/stripe/paymentok.php b/htdocs/public/stripe/paymentok.php
deleted file mode 100644
index 76df44be576..00000000000
--- a/htdocs/public/stripe/paymentok.php
+++ /dev/null
@@ -1,196 +0,0 @@
-
- *
- * 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
- * the Free Software Foundation; either version 3 of the License, or
- * (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
- * along with this program. If not, see .
- */
-
-/**
- * \file htdocs/public/stripe/paymentok.php
- * \ingroup core
- * \brief File to show page after a successful payment
- * This page is called by payment system with url provided to it completed with parameter FULLTAG=xxx
- * More data like token are saved into session. This token can be used to get more informations.
- */
-
-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.
-
-// For MultiCompany module.
-// 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));
-if (is_numeric($entity)) define("DOLENTITY", $entity);
-
-require '../../main.inc.php';
-require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
-require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php';
-
-$langs->loadLangs(array("main", "other", "dict", "bills", "companies", "paybox", "paypal"));
-
-$FULLTAG=GETPOST('FULLTAG');
-if (empty($FULLTAG)) $FULLTAG=GETPOST('fulltag');
-$source=GETPOST('source');
-$ref=GETPOST('ref');
-
-// Security check
-if (empty($conf->stripe->enabled)) accessforbidden('', 0, 0, 1);
-
-
-$ispaymentok = false;
-// If payment is ok
-$PAYMENTSTATUS=$TRANSACTIONID=$TAXAMT=$NOTE='';
-// If payment is ko
-$ErrorCode=$ErrorShortMsg=$ErrorLongMsg=$ErrorSeverityCode='';
-
-
-$object = new stdClass(); // For triggers
-
-$paymentmethod='stripe';
-
-
-/*
- * Actions
- */
-
-
-
-/*
- * View
- */
-
-dol_syslog("Callback url when a payment was done. query_string=".(empty($_SERVER["QUERY_STRING"])?'':$_SERVER["QUERY_STRING"])." script_uri=".(empty($_SERVER["SCRIPT_URI"])?'':$_SERVER["SCRIPT_URI"]), LOG_DEBUG, 0, '_stripe');
-
-$tracepost = "";
-foreach($_POST as $k => $v) $tracepost .= "{$k} - {$v}\n";
-dol_syslog("POST=".$tracepost, LOG_DEBUG, 0, '_stripe');
-
-$head='';
-if (! empty($conf->global->ONLINE_PAYMENT_CSS_URL)) $head=''."\n";
-
-$conf->dol_hide_topmenu=1;
-$conf->dol_hide_leftmenu=1;
-
-llxHeader($head, $langs->trans("PaymentForm"), '', '', 0, 0, '', '', '', 'onlinepaymentbody');
-
-
-
-// Show message
-print ''."\n";
-print '
'."\n";
-
-$ispaymentok = true; // We call this page if payment is ok
-if ($ispaymentok)
-{
- // 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'];
- $FinalPaymentAmt = $_SESSION["FinalPaymentAmt"];
- // From env
- $ipaddress = $_SESSION['ipaddress'];
- $TRANSACTIONID = $_SESSION['TRANSACTIONID'];
-
- // Appel des triggers
- include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
- $interface=new Interfaces($db);
- $result=$interface->run_triggers('STRIPE_PAYMENT_OK', $object, $user, $langs, $conf);
- if ($result < 0) { $error++; $errors=$interface->errors; }
- // Fin appel triggers
-
-
- print $langs->trans("YourPaymentHasBeenRecorded")." \n";
- print $langs->trans("ThisIsTransactionId", $TRANSACTIONID)."
\n";
-
- $key='ONLINE_PAYMENT_MESSAGE_OK';
- if (! empty($conf->global->$key)) print $conf->global->$key;
-
- $sendemail = '';
- if (! empty($conf->global->ONLINE_PAYMENT_SENDEMAIL)) $sendemail=$conf->global->ONLINE_PAYMENT_SENDEMAIL;
-
- $tmptag=dolExplodeIntoArray($fulltag, '.', '=');
-
- // Send an email
- if ($sendemail)
- {
- $sendto=$sendemail;
- $from=$conf->global->MAILING_EMAIL_FROM;
- // Define $urlwithroot
- $urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT, '/').'$/i', '', trim($dolibarr_main_url_root));
- $urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file
- //$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current
-
- // 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;
-
- $urlback=$_SERVER["REQUEST_URI"];
- $topic='['.$appli.'] '.$langs->transnoentitiesnoconv("NewOnlinePaymentReceived");
- $content="";
- if (! empty($tmptag['MEM']))
- {
- $langs->load("members");
- $url=$urlwithroot."/adherents/subscription.php?rowid=".$tmptag['MEM'];
- $content.=$langs->trans("PaymentSubscription")." \n";
- $content.=$langs->trans("MemberId").': '.$tmptag['MEM']." \n";
- $content.=$langs->trans("Link").': '.$url.''." \n";
- }
- else
- {
- $content.=$langs->transnoentitiesnoconv("NewOnlinePaymentReceived")." \n";
- }
- $content.=" \n";
- $content.=$langs->transnoentitiesnoconv("TechnicalInformation").": \n";
- $content.=$langs->transnoentitiesnoconv("OnlinePaymentSystem").': '.$paymentmethod." \n";
- $content.=$langs->transnoentitiesnoconv("ReturnURLAfterPayment").': '.$urlback." \n";
- $content.="tag=".$fulltag."\ntoken=".$onlinetoken." paymentType=".$paymentType." currencycodeType=".$currencyCodeType." payerId=".$payerID." ipaddress=".$ipaddress." FinalPaymentAmt=".$FinalPaymentAmt;
-
- $ishtml=dol_textishtml($content); // May contain urls
-
- require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
- $mailfile = new CMailFile($topic, $sendto, $from, $content, array(), array(), array(), '', '', 0, $ishtml);
-
- $result=$mailfile->sendfile();
- if ($result)
- {
- dol_syslog("EMail sent to ".$sendto, LOG_DEBUG, 0, '_stripe');
- }
- else
- {
- dol_syslog("Failed to send EMail to ".$sendto, LOG_ERR, 0, '_stripe');
- }
- }
-}
-
-
-print "\n
\n";
-
-
-htmlPrintOnlinePaymentFooter($mysoc, $langs, 0, $suffix);
-
-
-llxFooter('', 'public');
-
-$db->close();
diff --git a/htdocs/societe/paymentmodes.php b/htdocs/societe/paymentmodes.php
index 90d90b388ac..a9f0d9aed0b 100644
--- a/htdocs/societe/paymentmodes.php
+++ b/htdocs/societe/paymentmodes.php
@@ -486,7 +486,7 @@ if (empty($reshook))
$_POST['lang_id'] = GETPOST('lang_idrib'.GETPOST('companybankid', 'int'), 'alpha');
$_POST['model'] = GETPOST('modelrib'.GETPOST('companybankid', 'int'), 'alpha');
}
- https://dashboard.stripe.com/search?query=risk_level%3Ahighest&account=acct_1CVGWQLYhjvFj9Sz
+
$id = $socid;
$upload_dir = $conf->societe->multidir_output[$object->entity];
$permissioncreate=$user->rights->societe->creer;
diff --git a/htdocs/stripe/class/stripe.class.php b/htdocs/stripe/class/stripe.class.php
index 9c0bc9ebae3..cff5f17494b 100644
--- a/htdocs/stripe/class/stripe.class.php
+++ b/htdocs/stripe/class/stripe.class.php
@@ -60,6 +60,7 @@ class Stripe extends CommonObject
public $type;
public $code;
+ public $declinecode;
public $message;
@@ -305,16 +306,18 @@ class Stripe extends CommonObject
* @param string $currency_code Currency code
* @param string $tag Tag
* @param string $description Description
- * @param Societe $object Object to pay with Stripe
+ * @param mixed $object Object to pay with Stripe
* @param string $customer Stripe customer ref 'cus_xxxxxxxxxxxxx' via customerStripe()
* @param string $key ''=Use common API. If not '', it is the Stripe connect account 'acc_....' to use Stripe connect
* @param int $status Status (0=test, 1=live)
* @param int $usethirdpartyemailforreceiptemail 1=use thirdparty email for receipt
* @param int $mode automatic=automatic confirmation/payment when conditions are ok, manual=need to call confirm() on intent
* @param boolean $confirmnow false=default, true=try to confirm immediatly after create (if conditions are ok)
+ * @param string $payment_method 'pm_....' (if known)
+ * @param string $off_session If we use an already known payment method to pay off line.
* @return \Stripe\PaymentIntent|null Stripe PaymentIntent or null if not found and failed to create
*/
- public function getPaymentIntent($amount, $currency_code, $tag, $description = '', $object = null, $customer = null, $key = null, $status = 0, $usethirdpartyemailforreceiptemail = 0, $mode = 'automatic', $confirmnow = false)
+ public function getPaymentIntent($amount, $currency_code, $tag, $description = '', $object = null, $customer = null, $key = null, $status = 0, $usethirdpartyemailforreceiptemail = 0, $mode = 'automatic', $confirmnow = false, $payment_method = null, $off_session = 0)
{
global $conf;
@@ -335,7 +338,7 @@ class Stripe extends CommonObject
} elseif ($fee < $conf->global->STRIPE_APPLICATION_FEE_MINIMAL) {
$fee = $conf->global->STRIPE_APPLICATION_FEE_MINIMAL;
}
- if (! in_array($currency, $arrayzerounitcurrency)) $stripefee = round($fee * 100);
+ if (! in_array($currency_code, $arrayzerounitcurrency)) $stripefee = round($fee * 100);
else $stripefee = round($fee);
$paymentintent = null;
@@ -411,6 +414,16 @@ class Stripe extends CommonObject
// payment_method =
// payment_method_types = array('card')
//var_dump($dataforintent);
+ if ($off_session)
+ {
+ unset($dataforintent['setup_future_usage']);
+ $dataforintent["off_session"] = true;
+ }
+ if (! is_null($payment_method))
+ {
+ $dataforintent["payment_method"] = $payment_method;
+ $description.=' - '.$payment_method;
+ }
if ($conf->entity!=$conf->global->STRIPECONNECT_PRINCIPAL && $stripefee > 0)
{
@@ -434,7 +447,6 @@ class Stripe extends CommonObject
$paymentintent = \Stripe\PaymentIntent::create($dataforintent, array("idempotency_key" => "$description", "stripe_account" => $key));
//$paymentintent = \Stripe\PaymentIntent::create($dataforintent, array("stripe_account" => $key));
}
- //var_dump($paymentintent->id);
// Store the payment intent
if (is_object($object))
@@ -479,19 +491,29 @@ class Stripe extends CommonObject
$_SESSION["stripe_payment_intent"] = $paymentintent;
}
}
+ catch(Stripe\Error\Card $e)
+ {
+ $error++;
+ $this->error = $e->getMessage();
+ $this->code = $e->getStripeCode();
+ $this->declinecode = $e->getDeclineCode();
+ }
catch(Exception $e)
{
/*var_dump($dataforintent);
var_dump($description);
var_dump($key);
var_dump($paymentintent);
- var_dump($e->getMessage());*/
- $error++;
+ var_dump($e->getMessage());
+ var_dump($e);*/
+ $error++;
$this->error = $e->getMessage();
+ $this->code = '';
+ $this->declinecode = '';
}
}
- dol_syslog("getPaymentIntent return error=".$error, LOG_INFO, -1);
+ dol_syslog("getPaymentIntent return error=".$error." this->error=".$this->error, LOG_INFO, -1);
if (! $error)
{
@@ -654,7 +676,7 @@ class Stripe extends CommonObject
* @param string $stripeacc ''=Use common API. If not '', it is the Stripe connect account 'acc_....' to use Stripe connect
* @param int $status Status (0=test, 1=live)
* @param int $createifnotlinkedtostripe 1=Create the stripe card and the link if the card is not yet linked to a stripe card
- * @return \Stripe\StripeCard|null Stripe Card or null if not found
+ * @return \Stripe\StripeCard|\Stripe\PaymentMethod|null Stripe Card or null if not found
*/
public function cardStripe($cu, CompanyPaymentMode $object, $stripeacc = '', $status = 0, $createifnotlinkedtostripe = 0)
{
@@ -680,10 +702,24 @@ class Stripe extends CommonObject
{
try {
if (empty($stripeacc)) { // If the Stripe connect account not set, we use common API usage
- $card = $cu->sources->retrieve($cardref);
+ if (! preg_match('/^pm_/', $cardref))
+ {
+ $card = $cu->sources->retrieve($cardref);
+ }
+ else
+ {
+ $card = \Stripe\PaymentMethod::retrieve($cardref);
+ }
} else {
- //$card = $cu->sources->retrieve($cardref, array("stripe_account" => $stripeacc)); // this API fails when array stripe_account is provided
- $card = $cu->sources->retrieve($cardref);
+ if (! preg_match('/^pm_/', $cardref))
+ {
+ //$card = $cu->sources->retrieve($cardref, array("stripe_account" => $stripeacc)); // this API fails when array stripe_account is provided
+ $card = $cu->sources->retrieve($cardref);
+ }
+ else {
+ //$card = \Stripe\PaymentMethod::retrieve($cardref, array("stripe_account" => $stripeacc)); // Don't know if this works
+ $card = \Stripe\PaymentMethod::retrieve($cardref);
+ }
}
}
catch(Exception $e)
@@ -707,12 +743,28 @@ class Stripe extends CommonObject
//$a = \Stripe\Stripe::getApiKey();
//var_dump($a);var_dump($stripeacc);exit;
- dol_syslog("Try to create card dataforcard = ".json_encode($dataforcard));
+ dol_syslog("Try to create card with dataforcard = ".json_encode($dataforcard));
try {
if (empty($stripeacc)) { // If the Stripe connect account not set, we use common API usage
- $card = $cu->sources->create($dataforcard);
+ if (empty($conf->global->STRIPE_USE_INTENT_WITH_AUTOMATIC_CONFIRMATION))
+ {
+ $card = $cu->sources->create($dataforcard);
+ }
+ else
+ {
+ // TODO
+ dol_syslog("Error: This case is not supported", LOG_ERR);
+ }
} else {
- $card = $cu->sources->create($dataforcard, array("stripe_account" => $stripeacc));
+ if (empty($conf->global->STRIPE_USE_INTENT_WITH_AUTOMATIC_CONFIRMATION))
+ {
+ $card = $cu->sources->create($dataforcard, array("stripe_account" => $stripeacc));
+ }
+ else
+ {
+ // TODO
+ dol_syslog("Error: This case is not supported", LOG_ERR);
+ }
}
if ($card)
@@ -752,13 +804,12 @@ class Stripe extends CommonObject
/**
* Create charge with public/payment/newpayment.php, stripe/card.php, cronjobs or REST API
- * This is using old Stripe API charge.
*
* @param int $amount Amount to pay
* @param string $currency EUR, GPB...
* @param string $origin Object type to pay (order, invoice, contract...)
* @param int $item Object id to pay
- * @param string $source src_xxxxx or card_xxxxx
+ * @param string $source src_xxxxx or card_xxxxx or pm_xxxxx
* @param string $customer Stripe customer ref 'cus_xxxxxxxxxxxxx' via customerStripe()
* @param string $account Stripe account ref 'acc_xxxxxxxxxxxxx' via getStripeAccount()
* @param int $status Status (0=test, 1=live)
diff --git a/htdocs/stripe/payment.php b/htdocs/stripe/payment.php
index 6811df8d589..41f802062a2 100644
--- a/htdocs/stripe/payment.php
+++ b/htdocs/stripe/payment.php
@@ -28,7 +28,7 @@
/**
* \file htdocs/stripe/payment.php
* \ingroup stripe
- * \brief Payment page for customers invoices
+ * \brief Payment page for customers invoices. TODO Seems deprecated and bugged !
*/
// Load Dolibarr environment
@@ -71,6 +71,7 @@ if ($user->societe_id > 0)
}
$object=new Facture($db);
+$stripe=new Stripe($db);
// Load object
if ($facid > 0)
@@ -78,9 +79,9 @@ if ($facid > 0)
$ret=$object->fetch($facid);
}
-if (! empty($conf->stripe->enabled))
+if (empty($conf->stripe->enabled))
{
- access_forbidden();
+ accessforbidden();
}
if (empty($conf->global->STRIPE_LIVE) || GETPOST('forcesandbox', 'alpha'))
@@ -306,7 +307,7 @@ if (empty($reshook))
elseif (preg_match('/src_/i', $source))
{
- $customer2 = $customerstripe=$stripe->customerStripe($facture->thirdparty, $stripeacc, $servicestatus);
+ $customer2 = $customerstripe=$stripe->customerStripe($facture->thirdparty, $stripeacc, $servicestatus);
$src = $customer2->sources->retrieve("$source");
if ($src->type=='card')
{
@@ -1082,7 +1083,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
if (! GETPOST('action'))
{
- if ($page == -1) $page = 0 ;
+ if ($page == -1 || empty($page)) $page = 0 ;
$limit = GETPOST('limit', 'int')?GETPOST('limit', 'int'):$conf->liste_limit;
$offset = $limit * $page ;
diff --git a/htdocs/theme/dolibarr_logo_squarred.png b/htdocs/theme/dolibarr_logo_squarred.png
new file mode 100644
index 00000000000..bd8d7ac3bfd
Binary files /dev/null and b/htdocs/theme/dolibarr_logo_squarred.png differ
diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php
index 5beebb89a36..334fbe00ba1 100644
--- a/htdocs/theme/eldy/global.inc.php
+++ b/htdocs/theme/eldy/global.inc.php
@@ -655,6 +655,14 @@ select.flat.selectlimit {
max-width: 0;
overflow: auto;
}
+.divintdwithtwolinesmax {
+ width: 75px;
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ -webkit-line-clamp: 2;
+ overflow: hidden;
+}
+
.tablelistofcalendars {
margin-top: 25px !important;
}
@@ -921,6 +929,7 @@ select.selectarrowonleft option {
.maxwidth75onsmartphone { max-width: 50px; }
.maxwidth100onsmartphone { max-width: 70px; }
.maxwidth150onsmartphone { max-width: 120px; }
+ .maxwidth150onsmartphoneimp { max-width: 120px !important; }
.maxwidth200onsmartphone { max-width: 200px; }
.maxwidth300onsmartphone { max-width: 300px; }
.maxwidth400onsmartphone { max-width: 400px; }
@@ -2650,7 +2659,7 @@ table.liste th, table.noborder th, table.noborder tr.liste_titre td, table.nobor
}
table.liste td, table.noborder td, div.noborder form div, table.tableforservicepart1 td, table.tableforservicepart2 td {
padding: 7px 8px 7px 8px; /* t r b l */
- line-height: 22px;
+ /* line-height: 22px; This create trouble on cell login on list of last events of a contract*/
height: 22px;
}
div.liste_titre_bydiv .divsearchfield {
@@ -5673,7 +5682,7 @@ div.tabsElem a.tab {
/* nboftopmenuentries = , fontsize= */
/* rule to reduce top menu - 1st reduction: Reduce width of top menu icons */
-@media only screen and (max-width: global->THEME_ELDY_WITDHOFFSET_FOR_REDUC1) ? round($nbtopmenuentries * 90, 0) + 240 : $conf->global->THEME_ELDY_WITDHOFFSET_FOR_REDUC1; ?>px) /* reduction 1 */
+@media only screen and (max-width: global->THEME_ELDY_WITDHOFFSET_FOR_REDUC1) ? round($nbtopmenuentries * 90, 0) + 340 : $conf->global->THEME_ELDY_WITDHOFFSET_FOR_REDUC1; ?>px) /* reduction 1 */
{
div.tmenucenter {
width: px; /* size of viewport */
@@ -5706,7 +5715,7 @@ div.tabsElem a.tab {
}
}
/* rule to reduce top menu - 2nd reduction: Reduce width of top menu icons again */
-@media only screen and (max-width: global->THEME_ELDY_WITDHOFFSET_FOR_REDUC2) ? round($nbtopmenuentries * 69, 0) + 40 : $conf->global->THEME_ELDY_WITDHOFFSET_FOR_REDUC2; ?>px) /* reduction 2 */
+@media only screen and (max-width: global->THEME_ELDY_WITDHOFFSET_FOR_REDUC2) ? round($nbtopmenuentries * 69, 0) + 140 : $conf->global->THEME_ELDY_WITDHOFFSET_FOR_REDUC2; ?>px) /* reduction 2 */
{
li.tmenucompanylogo {
display: none;
@@ -5733,7 +5742,7 @@ div.tabsElem a.tab {
}
}
/* rule to reduce top menu - 3rd reduction: The menu for user is on left */
-@media only screen and (max-width: global->THEME_ELDY_WITDHOFFSET_FOR_REDUC3) ? round($nbtopmenuentries * 47, 0) + 40 : $conf->global->THEME_ELDY_WITDHOFFSET_FOR_REDUC3; ?>px) /* reduction 3 */
+@media only screen and (max-width: global->THEME_ELDY_WITDHOFFSET_FOR_REDUC3) ? round($nbtopmenuentries * 47, 0) + 140 : $conf->global->THEME_ELDY_WITDHOFFSET_FOR_REDUC3; ?>px) /* reduction 3 */
{
.side-nav {
z-index: 200;
diff --git a/htdocs/theme/md/main_menu_fa_icons.inc.php b/htdocs/theme/md/main_menu_fa_icons.inc.php
index 681c90c75ae..4386d607050 100644
--- a/htdocs/theme/md/main_menu_fa_icons.inc.php
+++ b/htdocs/theme/md/main_menu_fa_icons.inc.php
@@ -9,7 +9,7 @@
font-variant: normal;
text-rendering: auto;
line-height: 26px;
- font-size: ;
+ font-size: 1.5em;
-webkit-font-smoothing: antialiased;
text-align:center;
text-decoration:none;
diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php
index 8c78e8be88b..4d0fbe1d09f 100644
--- a/htdocs/theme/md/style.css.php
+++ b/htdocs/theme/md/style.css.php
@@ -1083,6 +1083,7 @@ select.selectarrowonleft option {
.maxwidth75onsmartphone { max-width: 50px; }
.maxwidth100onsmartphone { max-width: 70px; }
.maxwidth150onsmartphone { max-width: 120px; }
+ .maxwidth150onsmartphoneimp { max-width: 120px !important; }
.maxwidth200onsmartphone { max-width: 200px; }
.maxwidth300onsmartphone { max-width: 300px; }
.maxwidth400onsmartphone { max-width: 400px; }
@@ -5670,7 +5671,7 @@ border-top-right-radius: 6px;
/* nboftopmenuentries = , fontsize= */
/* disableimages = */
/* rule to reduce top menu - 1st reduction */
-@media only screen and (max-width: px)
+@media only screen and (max-width: px)
{
div.tmenucenter {
max-width: px; /* size of viewport */
@@ -5697,7 +5698,7 @@ border-top-right-radius: 6px;
}
}
/* rule to reduce top menu - 2nd reduction */
-@media only screen and (max-width: px)
+@media only screen and (max-width: px)
{
li.tmenucompanylogo {
display: none;
diff --git a/htdocs/website/index.php b/htdocs/website/index.php
index 5d4c259bf9c..6394428bd42 100644
--- a/htdocs/website/index.php
+++ b/htdocs/website/index.php
@@ -3308,7 +3308,7 @@ if ($action == 'replacesite' || $action == 'replacesiteconfirm')
print '