如何通过PayPal结帐系统向用户的PayPal电子邮件地址提供其他电子邮件地址

时间:2018-10-30 10:17:10

标签: paypal paypal-ipn

我有一个网站,人们可以在这里购买数字下载。到目前为止,在结帐时,我从未从买家那里收到过电子邮件地址。我只是将他们传递给PayPal,并相信他们的PayPal帐户中设置了正确的电子邮件地址。

自然,很多人没有。他们将PayPal帐户绑定到多年未使用或检查过的电子邮件地址。

一旦他们付款,我就会通过PDT和IPN进行处理。 PDT可以让他们在PayPal将其重定向回我的站点后立即下载文件。在这种情况下,电子邮件地址无关紧要。

尽管很多人由于某种原因(例如关闭浏览器,网络中断等)而无法重定向,或者他们想重新访问该站点以便以后下载订单。

为此,我使用IPN。 PayPal与我的网站联系,告诉我有关交易的信息,然后我向他们发送订单确认电子邮件。

但是通常情况下,这会转到未经检查/旧的电子邮件地址,用户不再使用它。

总而言之,我想将当前的电子邮件地址传递到PayPal结帐流程中。

我在网站上拥有自己的自定义编码购物车,然后使用加密的“使用PayPal结帐”按钮,该按钮会将购物车中的所有数据发送到PayPal。

这种事情:

$cart['cmd']                = '_cart';
$cart['upload']             = 1;
$cart['custom']             = $_SESSION['cartGUID'];
$cart['business']           = WEBSITE_PAYPAL_EMAIL_ADDRESS;
$cart['currency_code']      = $currencyCode;
$cart['return']             = 'https://www.example.com/pdt';

$n = 0;
while ($a = $rs->fetch()) {
    $n++;

    $cart['amount_'.$n]         = $a['amount'];
    $cart['quantity_'.$n]       = $a['quantity'];
    $cart['shipping_'.$n]       = $a['postage'];
    $cart['item_number_'.$n]    = $a['id'];
    $cart['item_name_'.$n]      = $a['description'];
}

$encrypted = str_replace("\n", "", paypal_encrypt_via_exec($cart));

echo '<form action="https://www.paypal.com/cgi-bin/webscr" method="post">';
echo     '<input type="hidden" name="cmd" value="_s-xclick">';
echo     '<input type="hidden" name="encrypted" value="'.$encrypted.'">';

echo     '<p id="paypal-button">';
echo         '<input type="image" src="https://www.paypalobjects.com/webstatic/en_US/i/buttons/checkout-logo-large.png" name="submit" alt="Make payments with PayPal - it\'s fast, free and secure">
echo     '</p>';
echo '</form>';

您明白了。

要传递电子邮件,我可以将其附加到“自定义”字段中。

$cart['custom'] = $_SESSION['cartGUID'] . '|' . $email;

然后在'custom'通过IPN发送回站点时将其拆分。不过,这似乎很骇人吗?

因此,我尝试了这种方法,我认为这是正确的方法:

$cart['email']              = $userEmail;
$cart['address_override']   = 1;

但是它似乎不起作用,通过IPN传回的电子邮件地址仍然是其库存的PayPal电子邮件地址。

我在做什么错了?

谢谢

0 个答案:

没有答案