From ed5f35d0f5046faac90a15967e624034d3da7a8b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 31 Oct 2010 15:06:26 +0000 Subject: [PATCH] Work on paypal module --- htdocs/admin/ldap.php | 15 +- htdocs/paypal/lib/paypalfunctions.php | 437 ++++++++++++++++++ htdocs/paypal/paypalfunctions.php | 437 ------------------ .../{ => public}/paypal/expresscheckout.php | 27 +- htdocs/public/paypal/newpayment.php | 98 ++-- htdocs/public/paypal/paymentko.php | 4 +- htdocs/public/paypal/paymentok.php | 2 + htdocs/webservices/admin/webservices.php | 4 +- 8 files changed, 534 insertions(+), 490 deletions(-) create mode 100755 htdocs/paypal/lib/paypalfunctions.php delete mode 100644 htdocs/paypal/paypalfunctions.php rename htdocs/{ => public}/paypal/expresscheckout.php (67%) mode change 100644 => 100755 diff --git a/htdocs/admin/ldap.php b/htdocs/admin/ldap.php index 64f57c4547c..b555a52a6f4 100644 --- a/htdocs/admin/ldap.php +++ b/htdocs/admin/ldap.php @@ -1,9 +1,9 @@ - * Copyright (C) 2004 Sebastien Di Cintio - * Copyright (C) 2004 Benoit Mortier - * Copyright (C) 2005 Regis Houssin - * Copyright (C) 2006 Laurent Destailleur +/* Copyright (C) 2004 Rodolphe Quiedeville + * Copyright (C) 2004 Sebastien Di Cintio + * Copyright (C) 2004 Benoit Mortier + * Copyright (C) 2005 Regis Houssin + * Copyright (C) 2006-2010 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 @@ -232,11 +232,10 @@ else } print ' '; - -$var=!$var; -print ''; print ''; +print '
'; + print ''; print ''; diff --git a/htdocs/paypal/lib/paypalfunctions.php b/htdocs/paypal/lib/paypalfunctions.php new file mode 100755 index 00000000000..d07287c5ff5 --- /dev/null +++ b/htdocs/paypal/lib/paypalfunctions.php @@ -0,0 +1,437 @@ + + * + * 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 2 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, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +/** \file htdocs/paypal/lib/paypalfunctions.php + * \ingroup paypal + * \brief Page with Paypal functions. Downloaded from Paypal. + * \version $Id$ + */ + +/******************************************** + PayPal API Module + + Defines all the global variables and the wrapper functions + ********************************************/ +$PROXY_HOST = '127.0.0.1'; +$PROXY_PORT = '808'; + +$SandboxFlag = ($PAYPAL_API_SANDBOX?true:false); + +//'------------------------------------ +//' PayPal API Credentials +//' Replace with your API Username +//' Replace with your API Password +//' Replace with your Signature +//'------------------------------------ +$API_UserName=$PAYPAL_API_USER; +$API_Password=$PAYPAL_API_PASSWORD; +$API_Signature=$PAYPAL_API_SIGNATURE; + +// BN Code is only applicable for partners +$sBNCode = "PP-ECWizard"; + + +/* + ' Define the PayPal Redirect URLs. + ' This is the URL that the buyer is first sent to do authorize payment with their paypal account + ' change the URL depending if you are testing on the sandbox or the live PayPal site + ' + ' For the sandbox, the URL is https://www.sandbox.paypal.com/webscr&cmd=_express-checkout&token= + ' For the live site, the URL is https://www.paypal.com/webscr&cmd=_express-checkout&token= + */ + +if ($SandboxFlag == true) +{ + $API_Endpoint = "https://api-3t.sandbox.paypal.com/nvp"; + $PAYPAL_URL = "https://www.sandbox.paypal.com/webscr?cmd=_express-checkout&token="; +} +else +{ + $API_Endpoint = "https://api-3t.paypal.com/nvp"; + $PAYPAL_URL = "https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token="; +} + +$USE_PROXY = false; +$version="2.3"; + +if (session_id() == "") +session_start(); + +/* An express checkout transaction starts with a token, that + identifies to PayPal your transaction + In this example, when the script sees a token, the script + knows that the buyer has already authorized payment through + paypal. If no token was found, the action is to send the buyer + to PayPal to first authorize payment + */ + +/* + '------------------------------------------------------------------------------------------------------------------------------------------- + ' Purpose: Prepares the parameters for the SetExpressCheckout API Call. + ' Inputs: + ' paymentAmount: Total value of the shopping cart + ' currencyCodeType: Currency code value the PayPal API + ' paymentType: paymentType has to be one of the following values: Sale or Order or Authorization + ' returnURL: the page where buyers return to after they are done with the payment review on PayPal + ' cancelURL: the page where buyers return to when they cancel the payment review on PayPal + '-------------------------------------------------------------------------------------------------------------------------------------------- + */ +function CallShortcutExpressCheckout( $paymentAmount, $currencyCodeType, $paymentType, $returnURL, $cancelURL) +{ + //------------------------------------------------------------------------------------------------------------------------------------ + // Construct the parameter string that describes the SetExpressCheckout API call in the shortcut implementation + + $nvpstr="&Amt=". $paymentAmount; + $nvpstr = $nvpstr . "&PAYMENTACTION=" . $paymentType; + $nvpstr = $nvpstr . "&ReturnUrl=" . $returnURL; + $nvpstr = $nvpstr . "&CANCELURL=" . $cancelURL; + $nvpstr = $nvpstr . "&CURRENCYCODE=" . $currencyCodeType; + + $_SESSION["currencyCodeType"] = $currencyCodeType; + $_SESSION["PaymentType"] = $paymentType; + + //'--------------------------------------------------------------------------------------------------------------- + //' Make the API call to PayPal + //' If the API call succeded, then redirect the buyer to PayPal to begin to authorize payment. + //' If an error occured, show the resulting errors + //'--------------------------------------------------------------------------------------------------------------- + $resArray=hash_call("SetExpressCheckout", $nvpstr); + $ack = strtoupper($resArray["ACK"]); + if($ack=="SUCCESS" || $ack=="SUCCESSWITHWARNING") + { + $token = urldecode($resArray["TOKEN"]); + $_SESSION['TOKEN']=$token; + } + + return $resArray; +} + +/* + '------------------------------------------------------------------------------------------------------------------------------------------- + ' Purpose: Prepares the parameters for the SetExpressCheckout API Call. + ' Inputs: + ' paymentAmount: Total value of the shopping cart + ' currencyCodeType: Currency code value the PayPal API + ' paymentType: paymentType has to be one of the following values: Sale or Order or Authorization + ' returnURL: the page where buyers return to after they are done with the payment review on PayPal + ' cancelURL: the page where buyers return to when they cancel the payment review on PayPal + ' shipToName: the Ship to name entered on the merchant's site + ' shipToStreet: the Ship to Street entered on the merchant's site + ' shipToCity: the Ship to City entered on the merchant's site + ' shipToState: the Ship to State entered on the merchant's site + ' shipToCountryCode: the Code for Ship to Country entered on the merchant's site + ' shipToZip: the Ship to ZipCode entered on the merchant's site + ' shipToStreet2: the Ship to Street2 entered on the merchant's site + ' phoneNum: the phoneNum entered on the merchant's site + '-------------------------------------------------------------------------------------------------------------------------------------------- + */ +function CallMarkExpressCheckout( $paymentAmount, $currencyCodeType, $paymentType, $returnURL, +$cancelURL, $shipToName, $shipToStreet, $shipToCity, $shipToState, +$shipToCountryCode, $shipToZip, $shipToStreet2, $phoneNum +) +{ + //------------------------------------------------------------------------------------------------------------------------------------ + // Construct the parameter string that describes the SetExpressCheckout API call in the shortcut implementation + + $nvpstr="&Amt=". $paymentAmount; + $nvpstr = $nvpstr . "&PAYMENTACTION=" . $paymentType; + $nvpstr = $nvpstr . "&ReturnUrl=" . $returnURL; + $nvpstr = $nvpstr . "&CANCELURL=" . $cancelURL; + $nvpstr = $nvpstr . "&CURRENCYCODE=" . $currencyCodeType; + $nvpstr = $nvpstr . "&ADDROVERRIDE=1"; + $nvpstr = $nvpstr . "&SHIPTONAME=" . $shipToName; + $nvpstr = $nvpstr . "&SHIPTOSTREET=" . $shipToStreet; + $nvpstr = $nvpstr . "&SHIPTOSTREET2=" . $shipToStreet2; + $nvpstr = $nvpstr . "&SHIPTOCITY=" . $shipToCity; + $nvpstr = $nvpstr . "&SHIPTOSTATE=" . $shipToState; + $nvpstr = $nvpstr . "&SHIPTOCOUNTRYCODE=" . $shipToCountryCode; + $nvpstr = $nvpstr . "&SHIPTOZIP=" . $shipToZip; + $nvpstr = $nvpstr . "&PHONENUM=" . $phoneNum; + + $_SESSION["currencyCodeType"] = $currencyCodeType; + $_SESSION["PaymentType"] = $paymentType; + + //'--------------------------------------------------------------------------------------------------------------- + //' Make the API call to PayPal + //' If the API call succeded, then redirect the buyer to PayPal to begin to authorize payment. + //' If an error occured, show the resulting errors + //'--------------------------------------------------------------------------------------------------------------- + $resArray=hash_call("SetExpressCheckout", $nvpstr); + $ack = strtoupper($resArray["ACK"]); + if($ack=="SUCCESS" || $ack=="SUCCESSWITHWARNING") + { + $token = urldecode($resArray["TOKEN"]); + $_SESSION['TOKEN']=$token; + } + + return $resArray; +} + +/* + '------------------------------------------------------------------------------------------- + ' Purpose: Prepares the parameters for the GetExpressCheckoutDetails API Call. + ' + ' Inputs: + ' None + ' Returns: + ' The NVP Collection object of the GetExpressCheckoutDetails Call Response. + '------------------------------------------------------------------------------------------- + */ +function GetShippingDetails( $token ) +{ + //'-------------------------------------------------------------- + //' At this point, the buyer has completed authorizing the payment + //' at PayPal. The function will call PayPal to obtain the details + //' of the authorization, incuding any shipping information of the + //' buyer. Remember, the authorization is not a completed transaction + //' at this state - the buyer still needs an additional step to finalize + //' the transaction + //'-------------------------------------------------------------- + + //'--------------------------------------------------------------------------- + //' Build a second API request to PayPal, using the token as the + //' ID to get the details on the payment authorization + //'--------------------------------------------------------------------------- + $nvpstr="&TOKEN=" . $token; + + //'--------------------------------------------------------------------------- + //' Make the API call and store the results in an array. + //' If the call was a success, show the authorization details, and provide + //' an action to complete the payment. + //' If failed, show the error + //'--------------------------------------------------------------------------- + $resArray=hash_call("GetExpressCheckoutDetails",$nvpstr); + $ack = strtoupper($resArray["ACK"]); + if($ack == "SUCCESS" || $ack=="SUCCESSWITHWARNING") + { + $_SESSION['payer_id'] = $resArray['PAYERID']; + } + return $resArray; +} + +/* + '------------------------------------------------------------------------------------------------------------------------------------------- + ' Purpose: Prepares the parameters for the GetExpressCheckoutDetails API Call. + ' + ' Inputs: + ' sBNCode: The BN code used by PayPal to track the transactions from a given shopping cart. + ' Returns: + ' The NVP Collection object of the GetExpressCheckoutDetails Call Response. + '-------------------------------------------------------------------------------------------------------------------------------------------- + */ +function ConfirmPayment( $FinalPaymentAmt ) +{ + /* Gather the information to make the final call to + finalize the PayPal payment. The variable nvpstr + holds the name value pairs + */ + + + //Format the other parameters that were stored in the session from the previous calls + $token = urlencode($_SESSION['TOKEN']); + $paymentType = urlencode($_SESSION['PaymentType']); + $currencyCodeType = urlencode($_SESSION['currencyCodeType']); + $payerID = urlencode($_SESSION['payer_id']); + + $serverName = urlencode($_SERVER['SERVER_NAME']); + + $nvpstr = '&TOKEN=' . $token . '&PAYERID=' . $payerID . '&PAYMENTACTION=' . $paymentType . '&AMT=' . $FinalPaymentAmt; + $nvpstr .= '&CURRENCYCODE=' . $currencyCodeType . '&IPADDRESS=' . $serverName; + + /* Make the call to PayPal to finalize payment + If an error occured, show the resulting errors + */ + $resArray=hash_call("DoExpressCheckoutPayment",$nvpstr); + + /* Display the API response back to the browser. + If the response from PayPal was a success, display the response parameters' + If the response was an error, display the errors received using APIError.php. + */ + $ack = strtoupper($resArray["ACK"]); + + return $resArray; +} + +/* + '------------------------------------------------------------------------------------------------------------------------------------------- + ' Purpose: This function makes a DoDirectPayment API call + ' + ' Inputs: + ' paymentType: paymentType has to be one of the following values: Sale or Order or Authorization + ' paymentAmount: total value of the shopping cart + ' currencyCode: currency code value the PayPal API + ' firstName: first name as it appears on credit card + ' lastName: last name as it appears on credit card + ' street: buyer's street address line as it appears on credit card + ' city: buyer's city + ' state: buyer's state + ' countryCode: buyer's country code + ' zip: buyer's zip + ' creditCardType: buyer's credit card type (i.e. Visa, MasterCard ... ) + ' creditCardNumber: buyers credit card number without any spaces, dashes or any other characters + ' expDate: credit card expiration date + ' cvv2: Card Verification Value + ' + '------------------------------------------------------------------------------------------- + ' + ' Returns: + ' The NVP Collection object of the DoDirectPayment Call Response. + '-------------------------------------------------------------------------------------------------------------------------------------------- + */ + + +function DirectPayment( $paymentType, $paymentAmount, $creditCardType, $creditCardNumber, +$expDate, $cvv2, $firstName, $lastName, $street, $city, $state, $zip, +$countryCode, $currencyCode ) +{ + //Construct the parameter string that describes DoDirectPayment + $nvpstr = "&AMT=" . $paymentAmount; + $nvpstr = $nvpstr . "&CURRENCYCODE=" . $currencyCode; + $nvpstr = $nvpstr . "&PAYMENTACTION=" . $paymentType; + $nvpstr = $nvpstr . "&CREDITCARDTYPE=" . $creditCardType; + $nvpstr = $nvpstr . "&ACCT=" . $creditCardNumber; + $nvpstr = $nvpstr . "&EXPDATE=" . $expDate; + $nvpstr = $nvpstr . "&CVV2=" . $cvv2; + $nvpstr = $nvpstr . "&FIRSTNAME=" . $firstName; + $nvpstr = $nvpstr . "&LASTNAME=" . $lastName; + $nvpstr = $nvpstr . "&STREET=" . $street; + $nvpstr = $nvpstr . "&CITY=" . $city; + $nvpstr = $nvpstr . "&STATE=" . $state; + $nvpstr = $nvpstr . "&COUNTRYCODE=" . $countryCode; + $nvpstr = $nvpstr . "&IPADDRESS=" . $_SERVER['REMOTE_ADDR']; + + $resArray=hash_call("DoDirectPayment", $nvpstr); + + return $resArray; +} + + +/** + '------------------------------------------------------------------------------------------------------------------------------------------- + * hash_call: Function to perform the API call to PayPal using API signature + * @methodName is name of API method. + * @nvpStr is nvp string. + * returns an associtive array containing the response from the server. + '------------------------------------------------------------------------------------------------------------------------------------------- + */ +function hash_call($methodName,$nvpStr) +{ + //declaring of global variables + global $API_Endpoint, $version, $API_UserName, $API_Password, $API_Signature; + global $USE_PROXY, $PROXY_HOST, $PROXY_PORT; + global $gv_ApiErrorURL; + global $sBNCode; + + //setting the curl parameters. + $ch = curl_init(); + /*print $API_Endpoint."-".$version."-".$API_UserName."-".$API_Password."-".$API_Signature."
"; + print $USE_PROXY."-".$gv_ApiErrorURL."-".$sBNCode."
"; + print $nvpStr; + exit;*/ + curl_setopt($ch, CURLOPT_URL,$API_Endpoint); + curl_setopt($ch, CURLOPT_VERBOSE, 1); + + //turning off the server and peer verification(TrustManager Concept). + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); + curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); + + curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); + curl_setopt($ch, CURLOPT_POST, 1); + + //if USE_PROXY constant set to TRUE in Constants.php, then only proxy will be enabled. + //Set proxy name to PROXY_HOST and port number to PROXY_PORT in constants.php + if($USE_PROXY) + curl_setopt ($ch, CURLOPT_PROXY, $PROXY_HOST. ":" . $PROXY_PORT); + + //NVPRequest for submitting to server + $nvpreq="METHOD=" . urlencode($methodName) . "&VERSION=" . urlencode($version) . "&PWD=" . urlencode($API_Password) . "&USER=" . urlencode($API_UserName) . "&SIGNATURE=" . urlencode($API_Signature) . $nvpStr . "&BUTTONSOURCE=" . urlencode($sBNCode); + + //setting the nvpreq as POST FIELD to curl + curl_setopt($ch, CURLOPT_POSTFIELDS, $nvpreq); + + //getting response from server + $response = curl_exec($ch); + + //convrting NVPResponse to an Associative Array + $nvpResArray=deformatNVP($response); + $nvpReqArray=deformatNVP($nvpreq); + $_SESSION['nvpReqArray']=$nvpReqArray; + + if (curl_errno($ch)) + { + // moving to display page to display curl errors + $_SESSION['curl_error_no']=curl_errno($ch) ; + $_SESSION['curl_error_msg']=curl_error($ch); + + //Execute the Error handling module to display errors. + } + else + { + //closing the curl + curl_close($ch); + } + + return $nvpResArray; +} + +/*'---------------------------------------------------------------------------------- + Purpose: Redirects to PayPal.com site. + Inputs: NVP string. + Returns: + ---------------------------------------------------------------------------------- + */ +function RedirectToPayPal ( $token ) +{ + global $PAYPAL_URL; + + // Redirect to paypal.com here + $payPalURL = $PAYPAL_URL . $token; + header("Location: ".$payPalURL); +} + + +/*'---------------------------------------------------------------------------------- + * This function will take NVPString and convert it to an Associative Array and it will decode the response. + * It is usefull to search for a particular key and displaying arrays. + * @nvpstr is NVPString. + * @nvpArray is Associative Array. + ---------------------------------------------------------------------------------- + */ +function deformatNVP($nvpstr) +{ + $intial=0; + $nvpArray = array(); + + while(strlen($nvpstr)) + { + //postion of Key + $keypos= strpos($nvpstr,'='); + //position of value + $valuepos = strpos($nvpstr,'&') ? strpos($nvpstr,'&'): strlen($nvpstr); + + /*getting the Key and Value values and storing in a Associative Array*/ + $keyval=substr($nvpstr,$intial,$keypos); + $valval=substr($nvpstr,$keypos+1,$valuepos-$keypos-1); + //decoding the respose + $nvpArray[urldecode($keyval)] =urldecode( $valval); + $nvpstr=substr($nvpstr,$valuepos+1,strlen($nvpstr)); + } + return $nvpArray; +} + +?> \ No newline at end of file diff --git a/htdocs/paypal/paypalfunctions.php b/htdocs/paypal/paypalfunctions.php deleted file mode 100644 index 9cc3aecf508..00000000000 --- a/htdocs/paypal/paypalfunctions.php +++ /dev/null @@ -1,437 +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 2 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, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -/** \file htdocs/paypal/paypalfunctions.php - * \ingroup paypal - * \brief Page with Paypal functions - * \version $Id$ - */ - -/******************************************** - PayPal API Module - - Defines all the global variables and the wrapper functions - ********************************************/ - $PROXY_HOST = '127.0.0.1'; - $PROXY_PORT = '808'; - - $SandboxFlag = ($PAYPAL_API_SANDBOX?true:false); - - //'------------------------------------ - //' PayPal API Credentials - //' Replace with your API Username - //' Replace with your API Password - //' Replace with your Signature - //'------------------------------------ - $API_UserName=$PAYPAL_API_USER; - $API_Password=$PAYPAL_API_PASSWORD; - $API_Signature=$PAYPAL_API_SIGNATURE; - - // BN Code is only applicable for partners - $sBNCode = "PP-ECWizard"; - - - /* - ' Define the PayPal Redirect URLs. - ' This is the URL that the buyer is first sent to do authorize payment with their paypal account - ' change the URL depending if you are testing on the sandbox or the live PayPal site - ' - ' For the sandbox, the URL is https://www.sandbox.paypal.com/webscr&cmd=_express-checkout&token= - ' For the live site, the URL is https://www.paypal.com/webscr&cmd=_express-checkout&token= - */ - - if ($SandboxFlag == true) - { - $API_Endpoint = "https://api-3t.sandbox.paypal.com/nvp"; - $PAYPAL_URL = "https://www.sandbox.paypal.com/webscr?cmd=_express-checkout&token="; - } - else - { - $API_Endpoint = "https://api-3t.paypal.com/nvp"; - $PAYPAL_URL = "https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token="; - } - - $USE_PROXY = false; - $version="2.3"; - - if (session_id() == "") - session_start(); - - /* An express checkout transaction starts with a token, that - identifies to PayPal your transaction - In this example, when the script sees a token, the script - knows that the buyer has already authorized payment through - paypal. If no token was found, the action is to send the buyer - to PayPal to first authorize payment - */ - - /* - '------------------------------------------------------------------------------------------------------------------------------------------- - ' Purpose: Prepares the parameters for the SetExpressCheckout API Call. - ' Inputs: - ' paymentAmount: Total value of the shopping cart - ' currencyCodeType: Currency code value the PayPal API - ' paymentType: paymentType has to be one of the following values: Sale or Order or Authorization - ' returnURL: the page where buyers return to after they are done with the payment review on PayPal - ' cancelURL: the page where buyers return to when they cancel the payment review on PayPal - '-------------------------------------------------------------------------------------------------------------------------------------------- - */ - function CallShortcutExpressCheckout( $paymentAmount, $currencyCodeType, $paymentType, $returnURL, $cancelURL) - { - //------------------------------------------------------------------------------------------------------------------------------------ - // Construct the parameter string that describes the SetExpressCheckout API call in the shortcut implementation - - $nvpstr="&Amt=". $paymentAmount; - $nvpstr = $nvpstr . "&PAYMENTACTION=" . $paymentType; - $nvpstr = $nvpstr . "&ReturnUrl=" . $returnURL; - $nvpstr = $nvpstr . "&CANCELURL=" . $cancelURL; - $nvpstr = $nvpstr . "&CURRENCYCODE=" . $currencyCodeType; - - $_SESSION["currencyCodeType"] = $currencyCodeType; - $_SESSION["PaymentType"] = $paymentType; - - //'--------------------------------------------------------------------------------------------------------------- - //' Make the API call to PayPal - //' If the API call succeded, then redirect the buyer to PayPal to begin to authorize payment. - //' If an error occured, show the resulting errors - //'--------------------------------------------------------------------------------------------------------------- - $resArray=hash_call("SetExpressCheckout", $nvpstr); - $ack = strtoupper($resArray["ACK"]); - if($ack=="SUCCESS" || $ack=="SUCCESSWITHWARNING") - { - $token = urldecode($resArray["TOKEN"]); - $_SESSION['TOKEN']=$token; - } - - return $resArray; - } - - /* - '------------------------------------------------------------------------------------------------------------------------------------------- - ' Purpose: Prepares the parameters for the SetExpressCheckout API Call. - ' Inputs: - ' paymentAmount: Total value of the shopping cart - ' currencyCodeType: Currency code value the PayPal API - ' paymentType: paymentType has to be one of the following values: Sale or Order or Authorization - ' returnURL: the page where buyers return to after they are done with the payment review on PayPal - ' cancelURL: the page where buyers return to when they cancel the payment review on PayPal - ' shipToName: the Ship to name entered on the merchant's site - ' shipToStreet: the Ship to Street entered on the merchant's site - ' shipToCity: the Ship to City entered on the merchant's site - ' shipToState: the Ship to State entered on the merchant's site - ' shipToCountryCode: the Code for Ship to Country entered on the merchant's site - ' shipToZip: the Ship to ZipCode entered on the merchant's site - ' shipToStreet2: the Ship to Street2 entered on the merchant's site - ' phoneNum: the phoneNum entered on the merchant's site - '-------------------------------------------------------------------------------------------------------------------------------------------- - */ - function CallMarkExpressCheckout( $paymentAmount, $currencyCodeType, $paymentType, $returnURL, - $cancelURL, $shipToName, $shipToStreet, $shipToCity, $shipToState, - $shipToCountryCode, $shipToZip, $shipToStreet2, $phoneNum - ) - { - //------------------------------------------------------------------------------------------------------------------------------------ - // Construct the parameter string that describes the SetExpressCheckout API call in the shortcut implementation - - $nvpstr="&Amt=". $paymentAmount; - $nvpstr = $nvpstr . "&PAYMENTACTION=" . $paymentType; - $nvpstr = $nvpstr . "&ReturnUrl=" . $returnURL; - $nvpstr = $nvpstr . "&CANCELURL=" . $cancelURL; - $nvpstr = $nvpstr . "&CURRENCYCODE=" . $currencyCodeType; - $nvpstr = $nvpstr . "&ADDROVERRIDE=1"; - $nvpstr = $nvpstr . "&SHIPTONAME=" . $shipToName; - $nvpstr = $nvpstr . "&SHIPTOSTREET=" . $shipToStreet; - $nvpstr = $nvpstr . "&SHIPTOSTREET2=" . $shipToStreet2; - $nvpstr = $nvpstr . "&SHIPTOCITY=" . $shipToCity; - $nvpstr = $nvpstr . "&SHIPTOSTATE=" . $shipToState; - $nvpstr = $nvpstr . "&SHIPTOCOUNTRYCODE=" . $shipToCountryCode; - $nvpstr = $nvpstr . "&SHIPTOZIP=" . $shipToZip; - $nvpstr = $nvpstr . "&PHONENUM=" . $phoneNum; - - $_SESSION["currencyCodeType"] = $currencyCodeType; - $_SESSION["PaymentType"] = $paymentType; - - //'--------------------------------------------------------------------------------------------------------------- - //' Make the API call to PayPal - //' If the API call succeded, then redirect the buyer to PayPal to begin to authorize payment. - //' If an error occured, show the resulting errors - //'--------------------------------------------------------------------------------------------------------------- - $resArray=hash_call("SetExpressCheckout", $nvpstr); - $ack = strtoupper($resArray["ACK"]); - if($ack=="SUCCESS" || $ack=="SUCCESSWITHWARNING") - { - $token = urldecode($resArray["TOKEN"]); - $_SESSION['TOKEN']=$token; - } - - return $resArray; - } - - /* - '------------------------------------------------------------------------------------------- - ' Purpose: Prepares the parameters for the GetExpressCheckoutDetails API Call. - ' - ' Inputs: - ' None - ' Returns: - ' The NVP Collection object of the GetExpressCheckoutDetails Call Response. - '------------------------------------------------------------------------------------------- - */ - function GetShippingDetails( $token ) - { - //'-------------------------------------------------------------- - //' At this point, the buyer has completed authorizing the payment - //' at PayPal. The function will call PayPal to obtain the details - //' of the authorization, incuding any shipping information of the - //' buyer. Remember, the authorization is not a completed transaction - //' at this state - the buyer still needs an additional step to finalize - //' the transaction - //'-------------------------------------------------------------- - - //'--------------------------------------------------------------------------- - //' Build a second API request to PayPal, using the token as the - //' ID to get the details on the payment authorization - //'--------------------------------------------------------------------------- - $nvpstr="&TOKEN=" . $token; - - //'--------------------------------------------------------------------------- - //' Make the API call and store the results in an array. - //' If the call was a success, show the authorization details, and provide - //' an action to complete the payment. - //' If failed, show the error - //'--------------------------------------------------------------------------- - $resArray=hash_call("GetExpressCheckoutDetails",$nvpstr); - $ack = strtoupper($resArray["ACK"]); - if($ack == "SUCCESS" || $ack=="SUCCESSWITHWARNING") - { - $_SESSION['payer_id'] = $resArray['PAYERID']; - } - return $resArray; - } - - /* - '------------------------------------------------------------------------------------------------------------------------------------------- - ' Purpose: Prepares the parameters for the GetExpressCheckoutDetails API Call. - ' - ' Inputs: - ' sBNCode: The BN code used by PayPal to track the transactions from a given shopping cart. - ' Returns: - ' The NVP Collection object of the GetExpressCheckoutDetails Call Response. - '-------------------------------------------------------------------------------------------------------------------------------------------- - */ - function ConfirmPayment( $FinalPaymentAmt ) - { - /* Gather the information to make the final call to - finalize the PayPal payment. The variable nvpstr - holds the name value pairs - */ - - - //Format the other parameters that were stored in the session from the previous calls - $token = urlencode($_SESSION['TOKEN']); - $paymentType = urlencode($_SESSION['PaymentType']); - $currencyCodeType = urlencode($_SESSION['currencyCodeType']); - $payerID = urlencode($_SESSION['payer_id']); - - $serverName = urlencode($_SERVER['SERVER_NAME']); - - $nvpstr = '&TOKEN=' . $token . '&PAYERID=' . $payerID . '&PAYMENTACTION=' . $paymentType . '&AMT=' . $FinalPaymentAmt; - $nvpstr .= '&CURRENCYCODE=' . $currencyCodeType . '&IPADDRESS=' . $serverName; - - /* Make the call to PayPal to finalize payment - If an error occured, show the resulting errors - */ - $resArray=hash_call("DoExpressCheckoutPayment",$nvpstr); - - /* Display the API response back to the browser. - If the response from PayPal was a success, display the response parameters' - If the response was an error, display the errors received using APIError.php. - */ - $ack = strtoupper($resArray["ACK"]); - - return $resArray; - } - - /* - '------------------------------------------------------------------------------------------------------------------------------------------- - ' Purpose: This function makes a DoDirectPayment API call - ' - ' Inputs: - ' paymentType: paymentType has to be one of the following values: Sale or Order or Authorization - ' paymentAmount: total value of the shopping cart - ' currencyCode: currency code value the PayPal API - ' firstName: first name as it appears on credit card - ' lastName: last name as it appears on credit card - ' street: buyer's street address line as it appears on credit card - ' city: buyer's city - ' state: buyer's state - ' countryCode: buyer's country code - ' zip: buyer's zip - ' creditCardType: buyer's credit card type (i.e. Visa, MasterCard ... ) - ' creditCardNumber: buyers credit card number without any spaces, dashes or any other characters - ' expDate: credit card expiration date - ' cvv2: Card Verification Value - ' - '------------------------------------------------------------------------------------------- - ' - ' Returns: - ' The NVP Collection object of the DoDirectPayment Call Response. - '-------------------------------------------------------------------------------------------------------------------------------------------- - */ - - - function DirectPayment( $paymentType, $paymentAmount, $creditCardType, $creditCardNumber, - $expDate, $cvv2, $firstName, $lastName, $street, $city, $state, $zip, - $countryCode, $currencyCode ) - { - //Construct the parameter string that describes DoDirectPayment - $nvpstr = "&AMT=" . $paymentAmount; - $nvpstr = $nvpstr . "&CURRENCYCODE=" . $currencyCode; - $nvpstr = $nvpstr . "&PAYMENTACTION=" . $paymentType; - $nvpstr = $nvpstr . "&CREDITCARDTYPE=" . $creditCardType; - $nvpstr = $nvpstr . "&ACCT=" . $creditCardNumber; - $nvpstr = $nvpstr . "&EXPDATE=" . $expDate; - $nvpstr = $nvpstr . "&CVV2=" . $cvv2; - $nvpstr = $nvpstr . "&FIRSTNAME=" . $firstName; - $nvpstr = $nvpstr . "&LASTNAME=" . $lastName; - $nvpstr = $nvpstr . "&STREET=" . $street; - $nvpstr = $nvpstr . "&CITY=" . $city; - $nvpstr = $nvpstr . "&STATE=" . $state; - $nvpstr = $nvpstr . "&COUNTRYCODE=" . $countryCode; - $nvpstr = $nvpstr . "&IPADDRESS=" . $_SERVER['REMOTE_ADDR']; - - $resArray=hash_call("DoDirectPayment", $nvpstr); - - return $resArray; - } - - - /** - '------------------------------------------------------------------------------------------------------------------------------------------- - * hash_call: Function to perform the API call to PayPal using API signature - * @methodName is name of API method. - * @nvpStr is nvp string. - * returns an associtive array containing the response from the server. - '------------------------------------------------------------------------------------------------------------------------------------------- - */ - function hash_call($methodName,$nvpStr) - { - //declaring of global variables - global $API_Endpoint, $version, $API_UserName, $API_Password, $API_Signature; - global $USE_PROXY, $PROXY_HOST, $PROXY_PORT; - global $gv_ApiErrorURL; - global $sBNCode; - - //setting the curl parameters. - $ch = curl_init(); - /*print $API_Endpoint."-".$version."-".$API_UserName."-".$API_Password."-".$API_Signature."
"; - print $USE_PROXY."-".$gv_ApiErrorURL."-".$sBNCode."
"; - print $nvpStr; - exit;*/ - curl_setopt($ch, CURLOPT_URL,$API_Endpoint); - curl_setopt($ch, CURLOPT_VERBOSE, 1); - - //turning off the server and peer verification(TrustManager Concept). - curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); - curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); - - curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); - curl_setopt($ch, CURLOPT_POST, 1); - - //if USE_PROXY constant set to TRUE in Constants.php, then only proxy will be enabled. - //Set proxy name to PROXY_HOST and port number to PROXY_PORT in constants.php - if($USE_PROXY) - curl_setopt ($ch, CURLOPT_PROXY, $PROXY_HOST. ":" . $PROXY_PORT); - - //NVPRequest for submitting to server - $nvpreq="METHOD=" . urlencode($methodName) . "&VERSION=" . urlencode($version) . "&PWD=" . urlencode($API_Password) . "&USER=" . urlencode($API_UserName) . "&SIGNATURE=" . urlencode($API_Signature) . $nvpStr . "&BUTTONSOURCE=" . urlencode($sBNCode); - - //setting the nvpreq as POST FIELD to curl - curl_setopt($ch, CURLOPT_POSTFIELDS, $nvpreq); - - //getting response from server - $response = curl_exec($ch); - - //convrting NVPResponse to an Associative Array - $nvpResArray=deformatNVP($response); - $nvpReqArray=deformatNVP($nvpreq); - $_SESSION['nvpReqArray']=$nvpReqArray; - - if (curl_errno($ch)) - { - // moving to display page to display curl errors - $_SESSION['curl_error_no']=curl_errno($ch) ; - $_SESSION['curl_error_msg']=curl_error($ch); - - //Execute the Error handling module to display errors. - } - else - { - //closing the curl - curl_close($ch); - } - - return $nvpResArray; - } - - /*'---------------------------------------------------------------------------------- - Purpose: Redirects to PayPal.com site. - Inputs: NVP string. - Returns: - ---------------------------------------------------------------------------------- - */ - function RedirectToPayPal ( $token ) - { - global $PAYPAL_URL; - - // Redirect to paypal.com here - $payPalURL = $PAYPAL_URL . $token; - header("Location: ".$payPalURL); - } - - - /*'---------------------------------------------------------------------------------- - * This function will take NVPString and convert it to an Associative Array and it will decode the response. - * It is usefull to search for a particular key and displaying arrays. - * @nvpstr is NVPString. - * @nvpArray is Associative Array. - ---------------------------------------------------------------------------------- - */ - function deformatNVP($nvpstr) - { - $intial=0; - $nvpArray = array(); - - while(strlen($nvpstr)) - { - //postion of Key - $keypos= strpos($nvpstr,'='); - //position of value - $valuepos = strpos($nvpstr,'&') ? strpos($nvpstr,'&'): strlen($nvpstr); - - /*getting the Key and Value values and storing in a Associative Array*/ - $keyval=substr($nvpstr,$intial,$keypos); - $valval=substr($nvpstr,$keypos+1,$valuepos-$keypos-1); - //decoding the respose - $nvpArray[urldecode($keyval)] =urldecode( $valval); - $nvpstr=substr($nvpstr,$valuepos+1,strlen($nvpstr)); - } - return $nvpArray; - } - -?> \ No newline at end of file diff --git a/htdocs/paypal/expresscheckout.php b/htdocs/public/paypal/expresscheckout.php old mode 100644 new mode 100755 similarity index 67% rename from htdocs/paypal/expresscheckout.php rename to htdocs/public/paypal/expresscheckout.php index 3bd1c9dcc88..cb8b23e7c6a --- a/htdocs/paypal/expresscheckout.php +++ b/htdocs/public/paypal/expresscheckout.php @@ -16,13 +16,15 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/** \file htdocs/paypal/expresscheckout.php +/** \file htdocs/public/paypal/expresscheckout.php * \ingroup paypal - * \brief Page with Paypal functions + * \brief Page with Paypal redirect page. Code provided by Paypal. * \version $Id$ */ -require_once ("paypalfunctions.php"); +// This file is not called directly but is included into another one +require_once (DOL_DOCUMENT_ROOT."/paypal/lib/paypalfunctions.php"); + // ================================== // PayPal Express Checkout Module // ================================== @@ -40,7 +42,7 @@ $paymentAmount = $_SESSION["Payment_Amount"]; //' The currencyCodeType and paymentType //' are set to the selections made on the Integration Assistant //'------------------------------------ -$currencyCodeType = "EUR"; +$currencyCodeType = $PAYPAL_API_DEVISE; // "EUR" $paymentType = "Sale"; //'------------------------------------ @@ -69,12 +71,25 @@ if (empty($conf->global->PAYPAL_API_INTEGRAL_OR_PAYPALONLY)) $conf->global->PAYP // For payment with Paypal only if ($conf->global->PAYPAL_API_INTEGRAL_OR_PAYPALONLY == 'paypalonly') { - $resArray = CallShortcutExpressCheckout ($paymentAmount, $currencyCodeType, $paymentType, $returnURL, $cancelURL); + dol_syslog("expresscheckout redirect with CallShortcutExpressCheckout $paymentAmount, $currencyCodeType, $paymentType, $returnURL, $cancelURL"); + $resArray = CallShortcutExpressCheckout ($paymentAmount, $currencyCodeType, $paymentType, $returnURL, $cancelURL); } // For payment with Credit card or Paypal if ($conf->global->PAYPAL_API_INTEGRAL_OR_PAYPALONLY == 'integral') { - $resArray = CallMarkExpressCheckout ($paymentAmount, $currencyCodeType, $paymentType, $returnURL, $cancelURL); + $shipToName=GETPOST("shipToName"); + $shipToStreet=GETPOST("shipToStreet"); + $shipToCity=GETPOST("shipToCity"); + $shipToState=GETPOST("shipToState"); + $shipToCountryCode=GETPOST("shipToCountryCode"); + $shipToZip=GETPOST("shipToZip"); + $shipToStreet2=GETPOST("shipToStreet2"); + $phoneNum=GETPOST("phoneNum"); + + dol_syslog("expresscheckout redirect with CallMarkExpressCheckout $paymentAmount, $currencyCodeType, $paymentType, $returnURL, $cancelURL, $shipToName, $shipToStreet, $shipToCity, $shipToState, $shipToCountryCode, $shipToZip, $shipToStreet2, $phoneNum"); + //$resArray = CallMarkExpressCheckout ($paymentAmount, $currencyCodeType, $paymentType, $returnURL, $cancelURL); + $resArray = CallMarkExpressCheckout ($paymentAmount, $currencyCodeType, $paymentType, $returnURL, $cancelURL, + $shipToName, $shipToStreet, $shipToCity, $shipToState, $shipToCountryCode, $shipToZip, $shipToStreet2, $phoneNum); } // For direct payment with credit card if ($conf->global->PAYPAL_API_INTEGRAL_OR_PAYPALONLY == 'cconly') diff --git a/htdocs/public/paypal/newpayment.php b/htdocs/public/paypal/newpayment.php index 25ffc3fe533..73fa011e9f5 100755 --- a/htdocs/public/paypal/newpayment.php +++ b/htdocs/public/paypal/newpayment.php @@ -84,6 +84,24 @@ if (! GETPOST("action")) } $suffix=GETPOST("suffix"); +$urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',$dolibarr_main_url_root); +$urlok=$urlwithouturlroot.DOL_URL_ROOT.'/public/paypal/paymentok.php?'; +$urlko=$urlwithouturlroot.DOL_URL_ROOT.'/public/paypal/paymentko.php?'; + +$TAG=GETPOST("tag"); +$FULLTAG=GETPOST("fulltag"); // fulltag is tag with more informations + +if (!empty($TAG)) +{ + $urlok.='tag='.$TAG.'&'; + $urlko.='tag='.$TAG.'&'; +} +if (!empty($FULLTAG)) +{ + $urlok.='fulltag='.$FULLTAG.'&'; + $urlko.='fulltag='.$FULLTAG.'&'; +} + /* @@ -91,22 +109,17 @@ $suffix=GETPOST("suffix"); */ if (GETPOST("action") == 'dopayment') { - $urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',$dolibarr_main_url_root); - - $PAYPAL_API_PRICE=$_REQUEST["newamount"]; - $EMAIL=$_REQUEST["EMAIL"]; - $urlok=$urlwithouturlroot.DOL_URL_ROOT.'/public/paypal/paymentok.php'; - $urlko=$urlwithouturlroot.DOL_URL_ROOT.'/public/paypal/paymentko.php'; - $TAG=$_REQUEST["newtag"]; - $ID=$_REQUEST["id"]; + $PAYPAL_API_PRICE=GETPOST("newamount"); + $EMAIL=GETPOST("EMAIL"); + $ID=GETPOST("id"); $mesg=''; if (empty($PAYPAL_API_PRICE)) $mesg=$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Amount")); elseif (empty($EMAIL)) $mesg=$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("YourEMail")); elseif (! isValidEMail($EMAIL)) $mesg=$langs->trans("ErrorBadEMail",$EMAIL); - elseif (empty($TAG)) $mesg=$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("PaymentCode")); + elseif (empty($FULLTAG)) $mesg=$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("PaymentCode")); - var_dump($_POST); + //var_dump($_POST); if (empty($mesg)) { /* @@ -158,7 +171,7 @@ if (GETPOST("action") == 'dopayment') dol_syslog("Soumission Paypal", LOG_DEBUG); dol_syslog("PAYPAL_API_USER: $PAYPAL_API_USER", LOG_DEBUG); - dol_syslog("PAYPAL_API_PASSWORD: $PAYPAL_API_PASSWORD", LOG_DEBUG); + //dol_syslog("PAYPAL_API_PASSWORD: $PAYPAL_API_PASSWORD", LOG_DEBUG); // No password into log files dol_syslog("PAYPAL_API_SIGNATURE: $PAYPAL_API_SIGNATURE", LOG_DEBUG); dol_syslog("PAYPAL_API_SANDBOX: $PAYPAL_API_SANDBOX", LOG_DEBUG); dol_syslog("PAYPAL_API_OK: $PAYPAL_API_OK", LOG_DEBUG); @@ -178,7 +191,7 @@ if (GETPOST("action") == 'dopayment') $_SESSION["Payment_Amount"]=$PAYPAL_API_PRICE; // A redirect is added if API call successfull - require_once(DOL_DOCUMENT_ROOT."/paypal/expresscheckout.php"); + require_once(DOL_DOCUMENT_ROOT."/public/paypal/expresscheckout.php"); // Formulaire pour module Paybox // print '
'."\n"; @@ -229,7 +242,11 @@ print ''."\n"; print ''."\n"; print "\n"; print ''."\n"; -print ''."\n"; +print ''."\n"; +print ''."\n"; +print ''."\n"; +print ''."\n"; +print ''."\n"; print "\n"; print ''."\n"; @@ -283,7 +300,7 @@ if (empty($_REQUEST["source"])) { $found=true; $tag=$_REQUEST["tag"]; - $newtag=$tag; + $fulltag=$tag; // Creditor $var=!$var; @@ -308,9 +325,9 @@ if (empty($_REQUEST["source"])) // Tag $var=!$var; print ''."\n"; // EMail @@ -344,9 +361,9 @@ if ($_REQUEST["source"] == 'order') $amount=$order->total_ttc; if ($_REQUEST["amount"]) $amount=$_REQUEST["amount"]; - $newtag='IR='.$order->ref.'.TPID='.$order->client->id.'.TP='.strtr($order->client->nom,"-"," "); - if (! empty($_REQUEST["tag"])) { $tag=$_REQUEST["tag"]; $newtag.='.TAG='.$_REQUEST["tag"]; } - $newtag=dol_string_unaccent($newtag); + $fulltag='IR='.$order->ref.'.TPID='.$order->client->id.'.TP='.strtr($order->client->nom,"-"," "); + if (! empty($_REQUEST["tag"])) { $tag=$_REQUEST["tag"]; $fulltag.='.TAG='.$_REQUEST["tag"]; } + $fulltag=dol_string_unaccent($fulltag); // Creditor $var=!$var; @@ -384,9 +401,9 @@ if ($_REQUEST["source"] == 'order') // Tag $var=!$var; print ''."\n"; // EMail @@ -396,6 +413,9 @@ if ($_REQUEST["source"] == 'order') $email=$order->client->email; $email=(GETPOST("EMAIL")?GETPOST("EMAIL"):(isValidEmail($email)?$email:'')); print ''."\n"; + + // We do not add fields shipToName, shipToStreet, shipToCity, shipToState, shipToCountryCode, shipToZip, shipToStreet2, phoneNum + // as they don't exists (buyer is unknown, tag is free). } @@ -422,9 +442,9 @@ if ($_REQUEST["source"] == 'invoice') $amount=$invoice->total_ttc - $invoice->getSommePaiement(); if ($_REQUEST["amount"]) $amount=$_REQUEST["amount"]; - $newtag='IR='.$invoice->ref.'.TPID='.$invoice->client->id.'.TP='.strtr($invoice->client->nom,"-"," "); - if (! empty($_REQUEST["tag"])) { $tag=$_REQUEST["tag"]; $newtag.='.TAG='.$_REQUEST["tag"]; } - $newtag=dol_string_unaccent($newtag); + $fulltag='IR='.$invoice->ref.'.TPID='.$invoice->client->id.'.TP='.strtr($invoice->client->nom,"-"," "); + if (! empty($_REQUEST["tag"])) { $tag=$_REQUEST["tag"]; $fulltag.='.TAG='.$_REQUEST["tag"]; } + $fulltag=dol_string_unaccent($fulltag); // Creditor $var=!$var; @@ -462,9 +482,9 @@ if ($_REQUEST["source"] == 'invoice') // Tag $var=!$var; print ''."\n"; // EMail @@ -474,6 +494,9 @@ if ($_REQUEST["source"] == 'invoice') $email=$invoice->client->email; $email=(GETPOST("EMAIL")?GETPOST("EMAIL"):(isValidEmail($email)?$email:'')); print ''."\n"; + + // TODO Add fields shipToName, shipToStreet, shipToCity, shipToState, shipToCountryCode, shipToZip, shipToStreet2, phoneNum + } // Payment on contract line @@ -543,9 +566,9 @@ if ($_REQUEST["source"] == 'contractline') } if ($_REQUEST["amount"]) $amount=$_REQUEST["amount"]; - $newtag='CLR='.$contractline->ref.'.CR='.$contract->ref.'.TPID='.$contract->client->id.'.TP='.strtr($contract->client->nom,"-"," "); - if (! empty($_REQUEST["tag"])) { $tag=$_REQUEST["tag"]; $newtag.='.TAG='.$_REQUEST["tag"]; } - $newtag=dol_string_unaccent($newtag); + $fulltag='CLR='.$contractline->ref.'.CR='.$contract->ref.'.TPID='.$contract->client->id.'.TP='.strtr($contract->client->nom,"-"," "); + if (! empty($_REQUEST["tag"])) { $tag=$_REQUEST["tag"]; $fulltag.='.TAG='.$_REQUEST["tag"]; } + $fulltag=dol_string_unaccent($fulltag); $qty=1; if (isset($_REQUEST["qty"])) $qty=$_REQUEST["qty"]; @@ -628,9 +651,9 @@ if ($_REQUEST["source"] == 'contractline') // Tag $var=!$var; print ''."\n"; // EMail @@ -641,6 +664,7 @@ if ($_REQUEST["source"] == 'contractline') $email=(GETPOST("EMAIL")?GETPOST("EMAIL"):(isValidEmail($email)?$email:'')); print ''."\n"; + // TODO Add fields shipToName, shipToStreet, shipToCity, shipToState, shipToCountryCode, shipToZip, shipToStreet2, phoneNum } // Payment on member subscription @@ -667,9 +691,9 @@ if ($_REQUEST["source"] == 'membersubscription') $amount=$subscription->total_ttc; if ($_REQUEST["amount"]) $amount=$_REQUEST["amount"]; - $newtag='MID='.$member->id.'.M='.strtr($member->getFullName($langs),"-"," "); - if (! empty($_REQUEST["tag"])) { $tag=$_REQUEST["tag"]; $newtag.='.TAG='.$_REQUEST["tag"]; } - $newtag=dol_string_unaccent($newtag); + $fulltag='MID='.$member->id.'.M='.strtr($member->getFullName($langs),"-"," "); + if (! empty($_REQUEST["tag"])) { $tag=$_REQUEST["tag"]; $fulltag.='.TAG='.$_REQUEST["tag"]; } + $fulltag=dol_string_unaccent($fulltag); // Creditor $var=!$var; @@ -707,9 +731,9 @@ if ($_REQUEST["source"] == 'membersubscription') // Tag $var=!$var; print ''."\n"; // EMail @@ -719,6 +743,8 @@ if ($_REQUEST["source"] == 'membersubscription') $email=$member->client->email; $email=(GETPOST("EMAIL")?GETPOST("EMAIL"):(isValidEmail($email)?$email:'')); print ''."\n"; + + // TODO Add fields shipToName, shipToStreet, shipToCity, shipToState, shipToCountryCode, shipToZip, shipToStreet2, phoneNum } diff --git a/htdocs/public/paypal/paymentko.php b/htdocs/public/paypal/paymentko.php index c265c2af580..8961918bc25 100755 --- a/htdocs/public/paypal/paymentko.php +++ b/htdocs/public/paypal/paymentko.php @@ -20,7 +20,9 @@ /** * \file htdocs/public/paybox/paymentko.php * \ingroup paybox - * \brief File to show page after a failed payment + * \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. * \author Laurent Destailleur * \version $Id$ */ diff --git a/htdocs/public/paypal/paymentok.php b/htdocs/public/paypal/paymentok.php index 9bb0f52cccd..a7d4578fb30 100755 --- a/htdocs/public/paypal/paymentok.php +++ b/htdocs/public/paypal/paymentok.php @@ -21,6 +21,8 @@ * \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 competed with parameter TOKEN=xxx + * This token can be used to get more informations. * \author Laurent Destailleur * \version $Id$ */ diff --git a/htdocs/webservices/admin/webservices.php b/htdocs/webservices/admin/webservices.php index ca95fd587fc..6da12defe65 100644 --- a/htdocs/webservices/admin/webservices.php +++ b/htdocs/webservices/admin/webservices.php @@ -69,12 +69,12 @@ $urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',$dolib print ''.$langs->trans("WSDLCanBeDownloadedHere").':
'; $url=$urlwithouturlroot.DOL_URL_ROOT.'/webservices/server.php?wsdl'; -print img_picto('','puce.png').' '.''.$url."
\n"; +print img_picto('','object_globe.png').' '.''.$url."
\n"; print '
'; print ''.$langs->trans("EndPointIs").':
'; $url=$urlwithouturlroot.DOL_URL_ROOT.'/webservices/server.php'; -print img_picto('','puce.png').' '.''.$url."
\n"; +print img_picto('','object_globe.png').' '.''.$url."
\n"; print '
'; $db->close();
'.$langs->trans("PaymentCode"); - print ''.$newtag.''; + print ''.$fulltag.''; print ''; - print ''; + print ''; print '
'.$langs->trans("PaymentCode"); - print ''.$newtag.''; + print ''.$fulltag.''; print ''; - print ''; + print ''; print '
'.$langs->trans("PaymentCode"); - print ''.$newtag.''; + print ''.$fulltag.''; print ''; - print ''; + print ''; print '
'.$langs->trans("PaymentCode"); - print ''.$newtag.''; + print ''.$fulltag.''; print ''; - print ''; + print ''; print '
'.$langs->trans("PaymentCode"); - print ''.$newtag.''; + print ''.$fulltag.''; print ''; - print ''; + print ''; print '