[paypal]付款数据传输 (PDT)php代码
作者:不详 来源:Internet
付款数据传输 (PDT) 使得商家能够向完成付款后跳转回其站点的买家显示交易详情
PHP 版示例 <?php // read the post from
PayPal system and add 'cmd' $req = 'cmd=_notify-synch';
$tx_token = $_GET['tx']; $auth_token =
"GX_sTf5bW3wxRfFEbgofs88nQxvMQ7nsI8m21rzNESnl_79ccFTWj2aPgQ0"; $req .=
"&tx=$tx_token&at=$auth_token";
// post back to PayPal system to validate $header .= "POST /cgi-bin/webscr
HTTP/1.0\r\n"; $header .= "Content-Type:
application/x-www-form-urlencoded\r\n"; $header .= "Content-Length: " .
strlen($req) . "\r\n\r\n"; $fp = fsockopen ('www.paypal.com', 80, $errno,
$errstr, 30); // If possible, securely post back to paypal using HTTPS //
Your PHP server will need to be SSL enabled // $fp = fsockopen
('ssl://www.paypal.com', 443, $errno, $errstr, 30);
if (!$fp) { // HTTP ERROR } else { fputs ($fp, $header .
$req); // read the body data $res = ''; $headerdone = false; while
(!feof($fp)) { $line = fgets ($fp, 1024); if (strcmp($line, "\r\n") == 0)
{ // read the header $headerdone = true; } else if
($headerdone) { // header has been read. now read the contents $res .=
$line; } }
// parse the data $lines = explode("\n", $res); $keyarray =
array(); if (strcmp ($lines[0], "SUCCESS") == 0) { for ($i=1;
$i<count($lines);$i++){ list($key,$val) = explode("=",
$lines[$i]); $keyarray[urldecode($key)] = urldecode($val); } // check
the payment_status is Completed // check that txn_id has not been previously
processed // check that receiver_email is your Primary PayPal email //
check that payment_amount/payment_currency are correct // process
payment $firstname = $keyarray['first_name']; $lastname =
$keyarray['last_name']; $itemname = $keyarray['item_name']; $amount =
$keyarray['payment_gross'];
echo ("<p><h3>Thank you for your
purchase!</h3></p>");
echo ("<b>Payment Details</b><br>\n"); echo
("<li>Name: $firstname $lastname</li>\n"); echo ("<li>Item:
$itemname</li>\n"); echo ("<li>Amount:
$amount</li>\n"); echo (""); } else if (strcmp ($lines[0],
"FAIL") == 0) { // log for manual investigation }
}
fclose ($fp);
?>
您的交易已完成,而且您所购买的物品收据也已经通过电子邮件发送给您。<br> 您可以前往<a
href='https://www.paypal.com'>www.paypal.com</a>登录到自己的账户以查看该交易的详情。<br>
|