代码之家  ›  专栏  ›  技术社区  ›  Codemonkey

如何通过PayPal结账系统向用户的PayPal电子邮件地址提供不同的电子邮件地址

  •  0
  • Codemonkey  · 技术社区  · 7 年前

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

    当然,很多人不这么认为。他们的PayPal账户与多年未使用或检查的电子邮件地址绑定。

    一旦他们付款,我就通过PDT和IPN进行处理。PDT是这样的,一旦PayPal将他们的文件重定向回我的网站,他们就可以立即下载他们的文件。在这种情况下,电子邮件地址是不相关的。

    但是,很多人由于某种原因(关闭浏览器、网络中断等)没有被重定向,或者他们希望稍后重新访问该网站下载订单。

    为此,我使用IPN。贝宝联系我的网站,告诉我交易的情况,然后我向他们发送订单确认电子邮件。

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

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

    这类事情:

    $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传回的电子邮件地址仍然是他们的股票贝宝电子邮件地址。

    我做错了什么?

    0 回复  |  直到 7 年前
    推荐文章