thanks in advance
I am using Yahoo webhost with PHP 5.3.6.
The application is returning from a Paypal Sandbox transaction. I have the settings on my sandbox correct. I am trying to get the transaction info.
i put in some debugging lines so now I get this at the top of the webpage:
"CURL_INIT Resource id #3 Response: STATUS: "
i perform a $_GET on the calling page and I do get that info displayed.
i try to print what is returned from the function below and get nothing
Notice the Response and STATUS: have NO info
This is code(thanks Torleif Berger who's currently not available) from another page that does the call after Paypal returns to it:
<?php include 'process_pdt.function.php';
$payment_data = isset($_GET['tx'])
? process_pdt($_GET['tx'])
: FALSE;
$current_url = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'];
?>
-----------------------------------------
The process_pdt code follows
<?php
<?php include 'token';
/**
* Processes a PDT transaction id.
*
* @author Torleif Berger
* @link http://www.geekality.net/?p=1210
* @copyright © 2011 www.geekality.net
* @return The payment data if $tx was valid; otherwise FALSE.
*/
function process_pdt($tx)
{
// Init cURL
$request = curl_init();
printf("CURL_INIT %s\n",$request);
// Set request options
curl_setopt_array($request, array
(
CURLOPT_URL => 'https://www.sandbox.paypal.com/cgi-bin/webscr',
CURLOPT_POST => TRUE,
CURLOPT_POSTFIELDS => http_build_query(array
(
'cmd' => '_notify-synch',
'tx' => $tx,
'at' => $my_token,
)),
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_HEADER => FALSE,
CURLOPT_SSL_VERIFYPEER => TRUE,
CURLOPT_CAINFO => 'cacert.pem',
));
// Execute request and get response and status code
$response = curl_exec($request);
printf("Response: %s\n", $response);
$status = curl_getinfo($request, CURLINFO_HTTP_CODE);
printf("STATUS: \n",$status );
// Close connection
curl_close($request);
// Validate response
if($status == 200 AND strpos($response, 'SUCCESS') === 0)
{
// Remove SUCCESS part (7 characters long)
$response = "SUCCESS";
/* $response = substr($response, 7);
// Urldecode it
$response = urldecode($response);
// Turn it into associative array
preg_match_all('/^([^=\r\n]++)=(.*+)/m', $response, $m, PREG_PATTERN_ORDER);
$response = array_combine($m[1], $m[2]);
// Fix character encoding if needed
if(isset($response['charset']) AND strtoupper($response['charset']) !== 'UTF-8')
{
foreach($response as $key => $value)
{
$value = mb_convert_encoding($value, 'UTF-8', $response['charset']);
}
$response['charset_original'] = $response['charset'];
$response['charset'] = 'UTF-8';
}
// Sort on keys
ksort($response);
*/
// Done!
return $response;
}
$response = "FAIL";
return FALSE;
}