diff --git a/htdocs/core/lib/payments.lib.php b/htdocs/core/lib/payments.lib.php
index 591956bbffc..3a4d6b684f5 100644
--- a/htdocs/core/lib/payments.lib.php
+++ b/htdocs/core/lib/payments.lib.php
@@ -86,4 +86,73 @@ function payment_supplier_prepare_head(Paiement $object) {
complete_head_from_modules($conf,$langs,$object,$head,$h,'payment_supplier', 'remove');
return $head;
-}
\ No newline at end of file
+}
+
+
+
+/**
+ * Show footer of company in HTML pages
+ *
+ * @param Societe $fromcompany Third party
+ * @param Translate $langs Output language
+ * @return void
+ */
+function htmlPrintOnlinePaymentFooter($fromcompany,$langs)
+{
+ global $conf;
+
+ // Juridical status
+ $line1="";
+ if ($fromcompany->forme_juridique_code)
+ {
+ $line1.=($line1?" - ":"").getFormeJuridiqueLabel($fromcompany->forme_juridique_code);
+ }
+ // Capital
+ if ($fromcompany->capital)
+ {
+ $line1.=($line1?" - ":"").$langs->transnoentities("CapitalOf",$fromcompany->capital)." ".$langs->transnoentities("Currency".$conf->currency);
+ }
+ // Prof Id 1
+ if ($fromcompany->idprof1 && ($fromcompany->country_code != 'FR' || ! $fromcompany->idprof2))
+ {
+ $field=$langs->transcountrynoentities("ProfId1",$fromcompany->country_code);
+ if (preg_match('/\((.*)\)/i',$field,$reg)) $field=$reg[1];
+ $line1.=($line1?" - ":"").$field.": ".$fromcompany->idprof1;
+ }
+ // Prof Id 2
+ if ($fromcompany->idprof2)
+ {
+ $field=$langs->transcountrynoentities("ProfId2",$fromcompany->country_code);
+ if (preg_match('/\((.*)\)/i',$field,$reg)) $field=$reg[1];
+ $line1.=($line1?" - ":"").$field.": ".$fromcompany->idprof2;
+ }
+
+ // Second line of company infos
+ $line2="";
+ // Prof Id 3
+ if ($fromcompany->idprof3)
+ {
+ $field=$langs->transcountrynoentities("ProfId3",$fromcompany->country_code);
+ if (preg_match('/\((.*)\)/i',$field,$reg)) $field=$reg[1];
+ $line2.=($line2?" - ":"").$field.": ".$fromcompany->idprof3;
+ }
+ // Prof Id 4
+ if ($fromcompany->idprof4)
+ {
+ $field=$langs->transcountrynoentities("ProfId4",$fromcompany->country_code);
+ if (preg_match('/\((.*)\)/i',$field,$reg)) $field=$reg[1];
+ $line2.=($line2?" - ":"").$field.": ".$fromcompany->idprof4;
+ }
+ // IntraCommunautary VAT
+ if ($fromcompany->tva_intra != '')
+ {
+ $line2.=($line2?" - ":"").$langs->transnoentities("VATIntraShort").": ".$fromcompany->tva_intra;
+ }
+
+ print '
'."\n";
+
if (! empty($conf->paypal->enabled))
{
if ($PAYPALTOKEN)
@@ -147,7 +158,6 @@ if (! empty($conf->paypal->enabled))
dol_syslog("Call paymentok with token=".$token." paymentType=".$paymentType." currencyCodeType=".$currencyCodeType." payerID=".$payerID." ipaddress=".$ipaddress." FinalPaymentAmt=".$FinalPaymentAmt." fulltag=".$fulltag, LOG_DEBUG, 0, '_paypal');
-
// Validate record
if (! empty($paymentType))
{
@@ -159,7 +169,7 @@ if (! empty($conf->paypal->enabled))
$resArray=confirmPayment($token, $paymentType, $currencyCodeType, $payerID, $ipaddress, $FinalPaymentAmt, $fulltag);
$ack = strtoupper($resArray["ACK"]);
- if($ack=="SUCCESS" || $ack=="SUCCESSWITHWARNING")
+ if ($ack=="SUCCESS" || $ack=="SUCCESSWITHWARNING")
{
$object = new stdClass();
@@ -175,132 +185,153 @@ if (! empty($conf->paypal->enabled))
$TRANSACTIONID=urldecode($resArray["TRANSACTIONID"]);
$TAXAMT=urldecode($resArray["TAXAMT"]);
$NOTE=urldecode($resArray["NOTE"]);
-
- print $langs->trans("YourPaymentHasBeenRecorded")."
\n";
- print $langs->trans("ThisIsTransactionId",$TRANSACTIONID)."
\n";
- if (! empty($conf->global->PAYPAL_MESSAGE_OK)) print $conf->global->PAYPAL_MESSAGE_OK;
-
- // 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
-
- // Send an email
- if (! empty($conf->global->PAYPAL_PAYONLINE_SENDEMAIL))
- {
- $sendto=$conf->global->PAYPAL_PAYONLINE_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
-
- $urlback=$_SERVER["REQUEST_URI"];
- $topic='['.$conf->global->MAIN_APPLICATION_TITLE.'] '.$langs->transnoentitiesnoconv("NewPaypalPaymentReceived");
- $tmptag=dolExplodeIntoArray($fulltag,'.','=');
- $content="";
- if (! empty($tmptag['MEM']))
- {
- $langs->load("members");
- $url=$urlwithroot."/adherents/card_subscriptions.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("NewPaypalPaymentReceived")."
\n";
- }
- $content.="
\n";
- $content.=$langs->transnoentitiesnoconv("TechnicalInformation").":
\n";
- $content.=$langs->transnoentitiesnoconv("ReturnURLAfterPayment").': '.$urlback."
\n";
- $content.="tag=".$fulltag." token=".$token." 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, '_payment');
- }
- else
- {
- dol_syslog("Failed to send EMail to ".$sendto, LOG_ERR, 0, '_payment');
- }
- }
+
+ $ispaymentok=True;
}
else
- {
+ {
//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";
-
- // Send an email
- if (! empty($conf->global->PAYPAL_PAYONLINE_SENDEMAIL))
- {
- $sendto=$conf->global->PAYPAL_PAYONLINE_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
-
- $urlback=$_SERVER["REQUEST_URI"];
- $topic='['.$conf->global->MAIN_APPLICATION_TITLE.'] '.$langs->transnoentitiesnoconv("ValidationOfPaypalPaymentFailed");
- $content="";
- $content.=$langs->transnoentitiesnoconv("PaypalConfirmPaymentPageWasCalledButFailed")."\n";
- $content.="\n";
- $content.=$langs->transnoentitiesnoconv("TechnicalInformation").":\n";
- $content.=$langs->transnoentitiesnoconv("ReturnURLAfterPayment").': '.$urlback."\n";
- $content.="tag=".$fulltag."\ntoken=".$token." 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, '_payment');
- }
- else
- {
- dol_syslog("Failed to send EMail to ".$sendto, LOG_ERR, 0, '_payment');
- }
- }
}
}
else
{
dol_print_error('','Session expired');
- }
+ }
+ }
+ else
+ {
+ dol_print_error('','$PAYPALTOKEN not defined');
+ }
+}
+
+
+
+if ($ispaymentok)
+{
+ // Appel des triggers
+ include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
+ $interface=new Interfaces($db);
+ $result=$interface->run_triggers('PAYMENTONLINE_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";
+ if (! empty($conf->global->PAYMENT_MESSAGE_OK)) print $conf->global->PAYMENT_MESSAGE_OK;
+
+
+ // Send an email
+ if (! empty($conf->global->PAYMENTONLINE_SENDEMAIL))
+ {
+ $sendto=$conf->global->PAYMENTONLINE_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
+
+ $urlback=$_SERVER["REQUEST_URI"];
+ $topic='['.$conf->global->MAIN_APPLICATION_TITLE.'] '.$langs->transnoentitiesnoconv("NewPaypalPaymentReceived");
+ $tmptag=dolExplodeIntoArray($fulltag,'.','=');
+ $content="";
+ if (! empty($tmptag['MEM']))
+ {
+ $langs->load("members");
+ $url=$urlwithroot."/adherents/card_subscriptions.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("NewPaypalPaymentReceived")."
\n";
+ }
+ $content.="
\n";
+ $content.=$langs->transnoentitiesnoconv("TechnicalInformation").":
\n";
+ $content.=$langs->transnoentitiesnoconv("ReturnURLAfterPayment").': '.$urlback."
\n";
+ $content.="tag=".$fulltag." token=".$token." 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, '_payment');
+ }
+ else
+ {
+ dol_syslog("Failed to send EMail to ".$sendto, LOG_ERR, 0, '_payment');
+ }
}
}
else
{
- // No TOKEN parameter in URL
- dol_print_error('','No TOKEN parameter in URL');
+ // Appel des triggers
+ include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
+ $interface=new Interfaces($db);
+ $result=$interface->run_triggers('PAYMENTONLINE_PAYMENT_KO',$object,$user,$langs,$conf);
+ if ($result < 0) { $error++; $errors=$interface->errors; }
+ // Fin appel triggers
+
+
+ print $langs->trans('DoExpressCheckoutPaymentAPICallFailed') . "
\n";
+ print $langs->trans('DetailedErrorMessage') . ": " . $ErrorLongMsg."
\n";
+ print $langs->trans('ShortErrorMessage') . ": " . $ErrorShortMsg."
\n";
+ print $langs->trans('ErrorCode') . ": " . $ErrorCode."
\n";
+ print $langs->trans('ErrorSeverityCode') . ": " . $ErrorSeverityCode."
\n";
+
+ if ($mysoc->email) print "\nPlease, send a screenshot of this page to ".$mysoc->email."
\n";
+
+
+ // Send an email
+ if (! empty($conf->global->PAYMENTONLINE_SENDEMAIL))
+ {
+ $sendto=$conf->global->PAYMENTONLINE_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
+
+ $urlback=$_SERVER["REQUEST_URI"];
+ $topic='['.$conf->global->MAIN_APPLICATION_TITLE.'] '.$langs->transnoentitiesnoconv("ValidationOfPaypalPaymentFailed");
+ $content="";
+ $content.=$langs->transnoentitiesnoconv("PaypalConfirmPaymentPageWasCalledButFailed")."\n";
+ $content.="\n";
+ $content.=$langs->transnoentitiesnoconv("TechnicalInformation").":\n";
+ $content.=$langs->transnoentitiesnoconv("ReturnURLAfterPayment").': '.$urlback."\n";
+ $content.="tag=".$fulltag."\ntoken=".$token." 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, '_payment');
+ }
+ else
+ {
+ dol_syslog("Failed to send EMail to ".$sendto, LOG_ERR, 0, '_payment');
+ }
+ }
}
+
print "\n
\n";
-html_print_paypal_footer($mysoc,$langs);
+
+htmlPrintOnlinePaymentFooter($mysoc,$langs);
llxFooter();
diff --git a/htdocs/public/paypal/paymentko.php b/htdocs/public/paypal/paymentko.php
index 4bad572ed8b..7436693a1c1 100644
--- a/htdocs/public/paypal/paymentko.php
+++ b/htdocs/public/paypal/paymentko.php
@@ -39,6 +39,7 @@ 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);
@@ -113,7 +114,11 @@ if (! empty($conf->global->PAYPAL_PAYONLINE_SENDEMAIL))
}
-llxHeaderPaypal($langs->trans("PaymentForm"));
+$head='';
+if (! empty($conf->global->PAYPAL_CSS_URL)) $head='