Online Book Reader

Home Category

PayPal APIs_ Up and Running_ A Developer's Guide - Michael Balderas [34]

By Root 165 0
. urlencode($maxNumberOfPaymentsPerPeriod);

}

if ("" != $pinType)

{

$nvpstr .= "&pinType=" . urlencode($pinType);

}

/* Make the Preapproval call to PayPal */

$resArray = hash_call("Preapproval", $nvpstr);

/* Return the response array */

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 associative array containing the response from the server.

'----------------------------------------------------------------------------------

*/

function hash_call($methodName, $nvpStr)

{ //declaring of global variables

global $API_Endpoint, $API_UserName, $API_Password, $API_Signature, $API_AppID;

global $USE_PROXY, $PROXY_HOST, $PROXY_PORT;

$API_Endpoint .= "/" . $methodName;

//setting the curl parameters.

$ch = curl_init();

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);

// Set the HTTP Headers

curl_setopt($ch, CURLOPT_HTTPHEADER, array(

'X-PAYPAL-REQUEST-DATA-FORMAT: NV',

'X-PAYPAL-RESPONSE-DATA-FORMAT: NV',

'X-PAYPAL-SECURITY-USERID: ' . $API_UserName,

'X-PAYPAL-SECURITY-PASSWORD: ' .$API_Password,

'X-PAYPAL-SECURITY-SIGNATURE: ' . $API_Signature,

'X-PAYPAL-SERVICE-VERSION: 1.3.0',

'X-PAYPAL-APPLICATION-ID: ' . $API_AppID

));

//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);

// RequestEnvelope fields

$detailLevel = urlencode("ReturnAll"); // See DetailLevelCode in the WSDL

// for valid enumerations

$errorLanguage = urlencode("en_US"); // This should be the standard RFC

// 3066 language identification tag,

// e.g., en_US

// NVPRequest for submitting to server

$nvpreq = "requestEnvelope.errorLanguage=$errorLanguage&requestEnvelope";

$nvpreq .= "detailLevel=$detailLevel&$nvpStr";

//setting the nvpreq as POST FIELD to curl

curl_setopt($ch, CURLOPT_POSTFIELDS, $nvpreq);

//getting response from server

$response = curl_exec($ch);

//converting 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: $cmd is the querystring

Returns:

-------------------------------------------------------------------------------

*/

function RedirectToPayPal ( $cmd )

{

// Redirect to paypal.com here

global $Env;

$payPalURL = "";

if ($Env == "sandbox")

{

$payPalURL = "https://www.sandbox.paypal.com/webscr?" . $cmd;

}

else

{

$payPalURL = "https://www.paypal.com/webscr?" . $cmd;

}

header("Location: ".$payPalURL);

}

/*'----------------------------------------------------------------------------

* This function will take NVPString and convert it to an Associative Array

* and then will decode the response.

* It is useful to search for a particular key and display arrays.

* @nvpstr is NVPString.

* @nvpArray is Associative Array.

----------------------------------------------------------------------------

*/

function deformatNVP($nvpstr)

{

$intial=0;

$nvpArray = array();

while(strlen($nvpstr))

{

//postion of Key

$keypos= strpos($nvpstr,'=');

Return Main Page Previous Page Next Page

®Online Book Reader