gpt4 book ai didi

php - PayPal:将电子邮件地址传递给返回/"thank you"页面

转载 作者:太空宇宙 更新时间:2023-11-03 16:03:50 25 4
gpt4 key购买 nike

我已经用 PayPal IPN and a listener 成功地创建了一个小的“立即付款”按钮.按钮本身是向导生成的。

付款后,用户将被重定向到我的主机上的返回/“谢谢”页面。

一切都按预期进行,但我还需要在“谢谢”页面上收到客户电子邮件:我该怎么做?

最佳答案

您可以使用支付数据传输 (PDT) 获取用户电子邮件,它会将名为 tx 的 GET 变量发送到您的重定向 url。

tx 变量包含一个交易号,您可以使用它向 Paypal 服务器发送 post 请求并检索交易信息。

我上次使用 PDT 是在一年前,但我相信您的 Paypal 帐户中有一个设置,您需要启用该设置并设置一个重定向 URL 才能正常工作。

以下是一些更详细地描述 PDT 的链接:

下面是一个示例,说明如何解析向 Paypal 发送 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;

关于php - PayPal:将电子邮件地址传递给返回/"thank you"页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9960365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com