贝宝:在收到IPN之前获取买家ID(快速结账,PHP)

贝宝:在收到IPN之前获取买家ID(快速结账,PHP),php,paypal,paypal-ipn,express-checkout,Php,Paypal,Paypal Ipn,Express Checkout,帕亚尔说,IPN可能需要一段时间才能传递命令。我想知道,当用户被重定向到我网站的成功URL时,是否有其他Paypal API可以立即获取订单信息的方法 问题是,在查询字符串中,似乎只有两个变量被中继到我的成功页面:token和PayerID 我这样做的原因是我想允许用户在不登录我的网站的情况下完成结帐过程,但一旦订单完成并发送到我的成功页面,我希望我的网站能够将他们链接到以前的订单以及从我的数据库中提取的此订单 是否可以使用令牌和/或PayerID完成此操作?如果是,怎么做?(我使用的是Expr

帕亚尔说,IPN可能需要一段时间才能传递命令。我想知道,当用户被重定向到我网站的成功URL时,是否有其他Paypal API可以立即获取订单信息的方法

问题是,在查询字符串中,似乎只有两个变量被中继到我的成功页面:
token
PayerID

我这样做的原因是我想允许用户在不登录我的网站的情况下完成结帐过程,但一旦订单完成并发送到我的成功页面,我希望我的网站能够将他们链接到以前的订单以及从我的数据库中提取的此订单


是否可以使用
令牌
和/或
PayerID
完成此操作?如果是,怎么做?(我使用的是Express checkout向导提供的PHP脚本)

IPN通常非常实时。有时,它会变得有点滞后,可能会有点慢,但它似乎不会发生太多

也就是说,签出中的API调用确实会在实际响应中返回很多好信息。您的URL仅包含您提到的参数(令牌和付款人ID),但是,GetExpressCheckoutDetails响应将包含您需要的所有买家信息,并且DoExpressCheckoutPayment将返回交易ID、付款状态、付款人状态等。因此,DECP可能拥有您需要的大部分信息

您可以使用会话变量相应地保存GECD响应数据和DECP响应数据,然后在调用DECP后更新数据库、发送电子邮件通知等

问题是,由于各种原因,付款可能最终被“搁置”。因此,IPN仍然是处理这类事情的最佳方式,这样您就可以更新您的DB并发送一个待处理付款的通知,然后在付款实际清除后发送另一个更新/电子邮件