【问题标题】:Matching user email with PayPal email from IPN将用户电子邮件与来自 IPN 的 PayPal 电子邮件匹配
【发布时间】:2013-06-16 00:29:22
【问题描述】:

我正在从 this 教程和 ipnlistener.php 配置一个 PayPal IPN 侦听器。

当我需要用户付款时,我给他看这个表格

<form name="_xclick" action="https://www.sandbox.paypal.com/cgi-bin/webscr" 
    method="post">
    <input type="hidden" name="cmd" value="_xclick">
    <input type="hidden" name="business" value="<? echo $myPaypalEmail; ?>">
    <input type="hidden" name="currency_code" value="USD">
    <input type="hidden" name="item_name" value="Digital Download">
    <input type="hidden" name="amount" value="<? echo $price; ?>">
    <input type="hidden" name="return" value="THIS URL">
    <input type="hidden" name="notify_url" value="myhost.com/ipn.php">
    <input type="image" src="http://www.paypal.com/en_US/i/btn/btn_buynow_LG.gif" 
        border="0" name="submit">
</form>

按照指南,我正确收到了对文件 ipn.php 的 POST 请求。我收到了很多关于付款的有用数据,但我的问题是:我怎么知道是哪个用户进行了付款?

“用户”是在我的网站上注册的人,向我提供个人信息和他/她的电子邮件地址。如何将这些信息连接到我从 PayPal 收到的 POST 请求?在我的网站上注册时使用的电子邮件可能与在 PayPal 中使用的不同。

我能想到 2 个解决方案:

a) 在返回 URL 中放置一个唯一的用户 id,用 $_GET 解析它,然后......这很难解决问题。

b) 交易开始后立即获取付款 ID。但我不知道该怎么做。

如您所见,我的问题是将用户与事务 ID 相关联。工作流程是:

HTML Form -> Paypal website -> ipn.php

HTML 表单有用户信息,而 ipn.php 接收交易信息:我需要用户信息进入 ipn.php 以检查总金额是否已正确支付并执行操作用户帐户。我该怎么做?

非常感谢。

【问题讨论】:

    标签: php paypal paypal-ipn


    【解决方案1】:

    您还可以在“自定义”字段中传递用户 ID。这实际上可以是您想要的任何内容,最多 255 个字符。这将传递给 Paypal,并在 IPN 响应中发送。我在存储 IPN 数据时使用此字段来区分我的各种数据库。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:
      <input type="hidden" name="item_number" value="UNIQUE_USER_ID">
      

      item_number 允许来回传递任意数值。我可以使用它从付款中识别用户。 $_POST['item_number'] 将允许在 ipn.php 文件中查看此值。

      【讨论】:

        猜你喜欢
        • 2013-12-22
        • 2016-03-20
        • 2011-10-08
        • 2013-09-30
        • 1970-01-01
        • 2013-02-15
        • 1970-01-01
        • 2017-10-06
        • 2018-09-04
        相关资源
        最近更新 更多