Forum Replies Created

Viewing 7 replies - 16 through 22 (of 22 total)
  • Thread Starter exedesign2

    (@exedesign2)

    I a using http://wordpress.org/plugins/paypal-framework/ , but I can tell you it has nothing to do with the theme.
    The price/amount I want to automate is require by my paypal checkout file
    that is called on the header of above codes require_once ("paypalfunctions.php")

    the paypal checkout is:

    /********************************************
    	PayPal API Module
    
    	Defines all the global variables and the wrapper functions
    	********************************************/
    	$PROXY_HOST = '127.0.0.1';
    	$PROXY_PORT = '808';
    
    	$SandboxFlag = true;
    	//' TODO:
    	//'------------------------------------
    	//' PayPal API Credentials
    	//' Replace <API_USERNAME> with your API Username
    	//' Replace <API_PASSWORD> with your API Password
    	//' Replace <API_SIGNATURE> with your Signature
    	//'------------------------------------
    	$API_UserName=//this is hidden;
    	$API_Password=//this is hidden;
    	$API_Signature=//this is hidden;
    
    	// 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=";
    		$PAYPAL_DG_URL = "https://www.sandbox.paypal.com/incontext?token=";
    	}
    	else
    	{
    		$API_Endpoint = "https://api-3t.paypal.com/nvp";
    		$PAYPAL_URL = "https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=";
    		$PAYPAL_DG_URL = "https://www.paypal.com/incontext?token=";
    	}
    
    	$USE_PROXY = false;
    	$version = "84";
    
    	/* 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 for a Digital Goods payment.
    	' 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 SetExpressCheckoutDG( $paymentAmount, $currencyCodeType, $paymentType, $returnURL,
    										$cancelURL, $items)
    	{
    		//------------------------------------------------------------------------------------------------------------------------------------
    		// Construct the parameter string that describes the SetExpressCheckout API call in the shortcut implementation
    
    		$nvpstr = "&PAYMENTREQUEST_0_AMT=". $paymentAmount;
    		$nvpstr .= "&PAYMENTREQUEST_0_PAYMENTACTION=" . $paymentType;
    		$nvpstr .= "&RETURNURL=" . $returnURL;
    		$nvpstr .= "&CANCELURL=" . $cancelURL;
    		$nvpstr .= "&PAYMENTREQUEST_0_CURRENCYCODE=" . $currencyCodeType;
    		$nvpstr .= "&REQCONFIRMSHIPPING=0";
    		$nvpstr .= "&NOSHIPPING=1";
    
    		foreach($items as $index => $item) {
    
    			$nvpstr .= "&L_PAYMENTREQUEST_0_NAME" . $index . "=" . urlencode($item["name"]);
    			$nvpstr .= "&L_PAYMENTREQUEST_0_AMT" . $index . "=" . urlencode($item["amt"]);
    			$nvpstr .= "&L_PAYMENTREQUEST_0_QTY" . $index . "=" . urlencode($item["qty"]);
    			$nvpstr .= "&L_PAYMENTREQUEST_0_ITEMCATEGORY" . $index . "=Digital";
    		}
    
    		//'---------------------------------------------------------------------------------------------------------------
    		//' 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 GetExpressCheckoutDetails( $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")
    		{
    			return $resArray;
    		}
    		else return false;
    
    	}
    
    	/*
    	'-------------------------------------------------------------------------------------------------------------------------------------------
    	' 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( $token, $paymentType, $currencyCodeType, $payerID, $FinalPaymentAmt, $items )
    	{
    		/* Gather the information to make the final call to
    		   finalize the PayPal payment.  The variable nvpstr
    		   holds the name value pairs
    		   */
    		$token 				= urlencode($token);
    		$paymentType 		= urlencode($paymentType);
    		$currencyCodeType 	= urlencode($currencyCodeType);
    		$payerID 			= urlencode($payerID);
    		$serverName 		= urlencode($_SERVER['SERVER_NAME']);
    
    		$nvpstr  = '&TOKEN=' . $token . '&PAYERID=' . $payerID . '&PAYMENTREQUEST_0_PAYMENTACTION=' . $paymentType . '&PAYMENTREQUEST_0_AMT=' . $FinalPaymentAmt;
    		$nvpstr .= '&PAYMENTREQUEST_0_CURRENCYCODE=' . $currencyCodeType . '&IPADDRESS=' . $serverName; 
    
    		foreach($items as $index => $item) {
    
    			$nvpstr .= "&L_PAYMENTREQUEST_0_NAME" . $index . "=" . urlencode($item["name"]);
    			$nvpstr .= "&L_PAYMENTREQUEST_0_AMT" . $index . "=" . urlencode($item["amt"]);
    			$nvpstr .= "&L_PAYMENTREQUEST_0_QTY" . $index . "=" . urlencode($item["qty"]);
    			$nvpstr .= "&L_PAYMENTREQUEST_0_ITEMCATEGORY" . $index . "=Digital";
    		}
    		 /* 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;
    	}
    	/**
    	  '-------------------------------------------------------------------------------------------------------------------------------------------
    	  * 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();
    		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);
    		exit;
    	}
    	function RedirectToPayPalDG ( $token )
    	{
    		global $PAYPAL_DG_URL;
    
    		// Redirect to paypal.com here
    		$payPalURL = $PAYPAL_DG_URL . $token;
    		header("Location: ".$payPalURL);
    		exit;
    	}
    
    	/*'----------------------------------------------------------------------------------
    	 * 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;
    	}
    Thread Starter exedesign2

    (@exedesign2)

    It’s not a specific plugin, but I guess you can call it that way.

    Thanks, the above functions works great. I have a solution, but it was too lengthy. I added the template page option to the custom post type, but it’s ended up been on other pages.

    I used the function above to use a custom single post, but no success.
    I used a custom post type for my store so the pages won’t be mixed with regular site pages.
    I have example.com/store/checkout
    and I used single-842.php based on the page checkout id.
    Still not displaying checkout page based on single-842.php
    I am using wordpress 3.8

    I remove the meta box from a custom post type. it was working fine at first, but now I got a blanc page everywhere while the admin load fine and the meta box is removed from the cpt.

    // Remove Add Meta Tags
    function prefix_remove_meta_tags_options() {
    	remove_meta_box( 'amt_supported_post_types', 'store', 'normal' );
    }
    add_action( 'amt_supported_post_types', 'prefix_remove_meta_tags_options', 100000 );//end

    the function I am using is above.

    Thread Starter exedesign2

    (@exedesign2)

    I definitely need some sleep now. I know this better! A simple navigation to the permalink did it. The permalink needed to be flushed.

    Thread Starter exedesign2

    (@exedesign2)

    It’s working now and I haven’t change nothing in the code. Well maybe it was my cache.
    Great plugin. It’s cutting my work’s time.

Viewing 7 replies - 16 through 22 (of 22 total)