1
我已成功創建了一個小號「立即付款」按鈕PayPal IPN and a listener。該按鈕本身是嚮導生成的。PayPal:將電子郵件地址傳遞給退貨/「謝謝」頁面
付款後,用戶被重定向到我的主機上的返回/「謝謝」頁面。
一切都按預期工作,但我還需要在「謝謝」頁面上收到客戶電子郵件:我該怎麼做?
我已成功創建了一個小號「立即付款」按鈕PayPal IPN and a listener。該按鈕本身是嚮導生成的。PayPal:將電子郵件地址傳遞給退貨/「謝謝」頁面
付款後,用戶被重定向到我的主機上的返回/「謝謝」頁面。
一切都按預期工作,但我還需要在「謝謝」頁面上收到客戶電子郵件:我該怎麼做?
您可以使用付款數據傳輸(PDT)獲取用戶電子郵件,該工具向您的重定向網址發送名爲tx
的GET變量。
tx
變量包含一個交易號碼,您可以使用該交易號碼發送到PayPal服務器的發送請求並檢索交易信息。
我上次使用PDT是在一年前,但我相信您的Paypal帳戶中有一個設置,您需要啓用並設置重定向網址才能運行。
下面是描述PDT更詳細一些鏈接:
下面是如何解析發送POST請求到Paypal和解析數據的示例。我只是從一箇舊文件中挖出來的。所以沒有保證它的作品。這是基於一個貝寶用作php的例子的腳本。你可以使用curl,這可能是更好的選擇。我認爲使用fsockopen存在某種安全問題。
//Paypal will give you a token to use once you enable PDT
$auth_token = 'token';
//Transaction number
$tx_token = $_GET['tx'];
$payPalUrl = ($dev === true) ? 'ssl://www.sandbox.paypal.com' : 'ssl://www.paypal.com';
$req = 'cmd=_notify-synch';
$req .= "&tx=$tx_token&at=$auth_token";
$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 ($payPalUrl, 443, $errno, $errstr, 30);
$keyarray = false;
if ($fp) {
fputs ($fp, $header . $req);
$res = '';
$headerdone = false;
while (!feof($fp)) {
$line = fgets ($fp, 1024);
if (strcmp($line, "\r\n") == 0) {
$headerdone = true;
}
else if ($headerdone) {
$res .= $line;
}
}
$lines = explode("\n", $res);
if (strcmp ($lines[0], "SUCCESS") == 0) {
//If successful we can now get the data returned in an associative array
$keyarray = array();
for ($i=1; $i<count($lines);$i++){
list($key,$val) = explode("=", $lines[$i]);
$keyarray[urldecode($key)] = urldecode($val);
}
}
}
fclose ($fp);
return $keyarray;