From 54088f38fbad784c9678fdc495af524b3609c2fc Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 13 May 2017 14:03:09 +0200 Subject: [PATCH] Code standardization on online payment code --- htdocs/core/lib/payments.lib.php | 71 +++++++- htdocs/paybox/lib/paybox.lib.php | 116 ------------ htdocs/paypal/lib/paypal.lib.php | 138 --------------- htdocs/public/paybox/paymentko.php | 11 +- htdocs/public/paybox/paymentok.php | 12 +- htdocs/public/payment/paymentko.php | 4 +- htdocs/public/payment/paymentok.php | 265 ++++++++++++++++------------ htdocs/public/paypal/paymentko.php | 11 +- htdocs/public/paypal/paymentok.php | 11 +- 9 files changed, 254 insertions(+), 385 deletions(-) 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"; + print '
'."\n"; + print $fromcompany->name.'
'; + print $line1.'
'; + print $line2; + print '
'."\n"; +} diff --git a/htdocs/paybox/lib/paybox.lib.php b/htdocs/paybox/lib/paybox.lib.php index ca5fd6a71ad..09848ed905e 100644 --- a/htdocs/paybox/lib/paybox.lib.php +++ b/htdocs/paybox/lib/paybox.lib.php @@ -24,54 +24,6 @@ -/** - * Show header - * - * @param string $title Title of page - * @param string $head Head string to add int head section - * @return void - */ -function llxHeaderPaybox($title, $head = "") -{ - global $user, $conf, $langs; - - header("Content-type: text/html; charset=".$conf->file->character_set_client); - header("X-Content-Type-Options: nosniff"); - - print ''; - //print ''; - print "\n"; - print "\n"; - print "\n"; - print ''."\n"; - print ''."\n"; - print ''."\n"; - print "".$title."\n"; - if ($head) print $head."\n"; - if (! empty($conf->global->PAYBOX_CSS_URL)) print ''."\n"; - else - { - print ''."\n"; - print ''; - } - print "\n"; - print ''."\n"; -} - -/** - * Show footer - * - * @return void - */ -function llxFooterPayBox() -{ - print "\n"; - print "\n"; -} - /** * Create a redirect form to paybox form @@ -220,71 +172,3 @@ function print_paybox_redirect($PRICE,$CURRENCY,$EMAIL,$urlok,$urlko,$TAG) return; } - -/** - * Show footer of company in HTML pages - * - * @param Societe $fromcompany Third party - * @param Translate $langs Output language - * @return void - */ -function html_print_paybox_footer($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"; - print '
'."\n"; - print $fromcompany->name.'
'; - print $line1.'
'; - print $line2; - print '
'."\n"; -} - diff --git a/htdocs/paypal/lib/paypal.lib.php b/htdocs/paypal/lib/paypal.lib.php index b1be8f56647..9f08ffcb924 100644 --- a/htdocs/paypal/lib/paypal.lib.php +++ b/htdocs/paypal/lib/paypal.lib.php @@ -23,144 +23,6 @@ */ -/** - * Show header - * - * @param string $title Title - * @param string $head More header to add - * @return void - */ -function llxHeaderPaypal($title, $head = "") -{ - global $user, $conf, $langs; - - header("Content-type: text/html; charset=".$conf->file->character_set_client); - header("X-Content-Type-Options: nosniff"); - - $appli='Dolibarr'; - if (!empty($conf->global->MAIN_APPLICATION_TITLE)) $appli=$conf->global->MAIN_APPLICATION_TITLE; - - print ''; - //print ''; - print "\n"; - print "\n"; - print "\n"; - print ''."\n"; - print ''."\n"; - print ''."\n"; - print "".$title."\n"; - if ($head) print $head."\n"; - if (! empty($conf->global->PAYPAL_CSS_URL)) print ''."\n"; - else - { - print ''."\n"; - print ''; - } - - if ($conf->use_javascript_ajax) - { - print ''."\n"; - print ''."\n"; // JNotify - - // Output standard javascript links - $ext='.js'; - - // JQuery. Must be before other includes - print ''."\n"; - print ''."\n"; - // jQuery jnotify - if (empty($conf->global->MAIN_DISABLE_JQUERY_JNOTIFY)) - { - print ''."\n"; - print ''."\n"; - } - } - print "\n"; - print ''."\n"; -} - -/** - * Show footer - * - * @return void - */ -function llxFooterPaypal() -{ - print "\n"; - print "\n"; -} - - -/** - * Show footer of company in HTML pages - * - * @param Societe $fromcompany Third party - * @param Translate $langs Output language - * @return void - */ -function html_print_paypal_footer($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"; - print '
'."\n"; - print $fromcompany->name.'
'; - print $line1.'
'; - print $line2; - print '
'."\n"; -} - /** * Define head array for tabs of paypal tools setup pages * diff --git a/htdocs/public/paybox/paymentko.php b/htdocs/public/paybox/paymentko.php index 09de4525b39..0b6b0955bb2 100644 --- a/htdocs/public/paybox/paymentko.php +++ b/htdocs/public/paybox/paymentko.php @@ -35,6 +35,7 @@ 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); @@ -93,7 +94,11 @@ if (! empty($conf->global->PAYBOX_PAYONLINE_SENDEMAIL)) } -llxHeaderPayBox($langs->trans("PaymentForm")); +$head=''; +if (! empty($conf->global->PAYBOX_CSS_URL)) $head=''."\n"; + + +llxHeader($head, $langs->trans("PaymentForm")); // Show message @@ -107,9 +112,9 @@ if (! empty($conf->global->PAYBOX_MESSAGE_KO)) print $conf->global->PAYBOX_MESSA print "\n\n"; -html_print_paybox_footer($mysoc,$langs); +htmlPrintOnlinePaymentFooter($mysoc,$langs); -llxFooterPayBox(); +llxFooter(); $db->close(); diff --git a/htdocs/public/paybox/paymentok.php b/htdocs/public/paybox/paymentok.php index 9c3030a86ba..482f58ed909 100644 --- a/htdocs/public/paybox/paymentok.php +++ b/htdocs/public/paybox/paymentok.php @@ -35,6 +35,7 @@ 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); @@ -76,7 +77,12 @@ $tracepost = ""; foreach($_POST as $k => $v) $tracepost .= "{$k} - {$v}\n"; dol_syslog("POST=".$tracepost, LOG_DEBUG, 0, '_paybox'); -llxHeaderPayBox($langs->trans("PaymentForm")); + +$head=''; +if (! empty($conf->global->PAYBOX_CSS_URL)) $head=''."\n"; + + +llxHeader($head, $langs->trans("PaymentForm")); // Show message @@ -164,9 +170,9 @@ if (! empty($conf->global->PAYBOX_PAYONLINE_SENDEMAIL)) print "\n\n"; -html_print_paybox_footer($mysoc,$langs); +htmlPrintOnlinePaymentFooter($mysoc,$langs); -llxFooterPayBox(); +llxFooter(); $db->close(); diff --git a/htdocs/public/payment/paymentko.php b/htdocs/public/payment/paymentko.php index 70dac3c960b..5bd09f845da 100644 --- a/htdocs/public/payment/paymentko.php +++ b/htdocs/public/payment/paymentko.php @@ -37,6 +37,8 @@ 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'; + if (! empty($conf->paypal->enabled)) { require_once DOL_DOCUMENT_ROOT.'/paypal/lib/paypal.lib.php'; @@ -138,7 +140,7 @@ if (! empty($conf->global->PAYPAL_MESSAGE_KO)) print $conf->global->PAYPAL_MESSA print "\n\n"; -html_print_paypal_footer($mysoc,$langs); +htmlPrintOnlinePaymentFooter($mysoc,$langs); llxFooter(); diff --git a/htdocs/public/payment/paymentok.php b/htdocs/public/payment/paymentok.php index ce3fcd8bb29..221abec032f 100644 --- a/htdocs/public/payment/paymentok.php +++ b/htdocs/public/payment/paymentok.php @@ -37,15 +37,14 @@ 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'; + if (! empty($conf->paypal->enabled)) { require_once DOL_DOCUMENT_ROOT.'/paypal/lib/paypal.lib.php'; require_once DOL_DOCUMENT_ROOT.'/paypal/lib/paypalfunctions.lib.php'; } -// Security check -//if (empty($conf->paypal->enabled)) accessforbidden('',0,0,1); - $langs->load("main"); $langs->load("other"); $langs->load("dict"); @@ -84,16 +83,17 @@ if (! empty($conf->paypal->enabled)) dol_print_error('',"Paypal setup param PAYPAL_API_SIGNATURE not defined"); return -1; } + + $PAYPALTOKEN=GETPOST('TOKEN'); + if (empty($PAYPALTOKEN)) $PAYPALTOKEN=GETPOST('token'); + $PAYPALPAYERID=GETPOST('PAYERID'); + if (empty($PAYPALPAYERID)) $PAYPALPAYERID=GETPOST('PayerID'); + $PAYPALFULLTAG=GETPOST('FULLTAG'); + if (empty($PAYPALFULLTAG)) $PAYPALFULLTAG=GETPOST('fulltag'); } $source=GETPOST('source'); $ref=GETPOST('ref'); -$PAYPALTOKEN=GETPOST('TOKEN'); -if (empty($PAYPALTOKEN)) $PAYPALTOKEN=GETPOST('token'); -$PAYPALPAYERID=GETPOST('PAYERID'); -if (empty($PAYPALPAYERID)) $PAYPALPAYERID=GETPOST('PayerID'); -$PAYPALFULLTAG=GETPOST('FULLTAG'); -if (empty($PAYPALFULLTAG)) $PAYPALFULLTAG=GETPOST('fulltag'); $paymentmethod=array(); if (! empty($conf->paypal->enabled)) $paymentmethod['paypal']='paypal'; @@ -104,6 +104,14 @@ if (! empty($conf->paybox->enabled)) $paymentmethod['paybox']='paybox'; if (empty($paymentmethod)) accessforbidden('', 0, 0, 1); +// If payment is ok +$PAYMENTSTATUS=$TRANSACTIONID=$TAXAMT=$NOTE=''; +// If payment is ko +$ErrorCode=$ErrorShortMsg=$ErrorLongMsg=$ErrorSeverityCode=''; + +$ispaymentok = false; + + /* * Actions */ @@ -123,13 +131,16 @@ dol_syslog("POST=".$tracepost, LOG_DEBUG, 0, '_payment'); $head=''; if (! empty($conf->global->PAYMENT_CSS_URL)) $head=''."\n"; + llxHeader($head, $langs->trans("PaymentForm")); + // Show message print ''."\n"; 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=''."\n"; + + +llxHeader($head, $langs->trans("PaymentForm")); // Show ko message @@ -125,9 +130,9 @@ if (! empty($conf->global->PAYPAL_MESSAGE_KO)) print $conf->global->PAYPAL_MESSA print "\n\n"; -html_print_paypal_footer($mysoc,$langs); +htmlPrintOnlinePaymentFooter($mysoc,$langs); -llxFooterPaypal(); +llxFooter(); $db->close(); diff --git a/htdocs/public/paypal/paymentok.php b/htdocs/public/paypal/paymentok.php index 90f13aa6f17..984c282d161 100644 --- a/htdocs/public/paypal/paymentok.php +++ b/htdocs/public/paypal/paymentok.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); @@ -107,7 +108,11 @@ foreach($_POST as $k => $v) $tracepost .= "{$k} - {$v}\n"; dol_syslog("POST=".$tracepost, LOG_DEBUG, 0, '_paypal'); -llxHeaderPaypal($langs->trans("PaymentForm")); +$head=''; +if (! empty($conf->global->PAYPAL_CSS_URL)) $head=''."\n"; + + +llxHeader($head, $langs->trans("PaymentForm")); // Show message @@ -281,9 +286,9 @@ else print "\n\n"; -html_print_paypal_footer($mysoc,$langs); +htmlPrintOnlinePaymentFooter($mysoc,$langs); -llxFooterPaypal(); +llxFooter(); $db->close();