【问题标题】:Retrieving PayPal email address after payment?付款后检索 PayPal 电子邮件地址?
【发布时间】:2021-11-04 16:37:49
【问题描述】:

当您设置 PayPal 立即购买按钮时,您可以在客户完成结账时将其带到该 URL。

有没有办法在 PayPal 结账后使用 $_GET 立即检索他们的 PayPal 电子邮件?

PayPal 是否会在您的感谢页面末尾附加某种?email=email@address.com?

或者在 PayPal 中键入成功 URL 时,我可以在感谢页面末尾添加任何变量吗?

基本上我想存储他们在存款时使用的 PayPal 电子邮件地址,这样当他们兑现时,将使用相同的 PayPal 电子邮件地址。

只是想让你知道我为什么有兴趣首先存储他们真实的 PayPal 电子邮件地址。

如果有这方面知识的人提供任何帮助,我们将不胜感激。

【问题讨论】:

    标签: php paypal


    【解决方案1】:

    使用从您的页面重定向的旧版 HTML 立即购买按钮,无法保证付款人在成功交易后会返回您的网站。有了这样一个旧的集成,获取付款人的电子邮件地址并将此信息记录在您的数据库中的唯一可靠方法是实现旧的 IPN 服务。


    相反,您应该对当前的 Standard Checkout 进行服务器端集成。

    按照Set up standard payments 指南在您的服务器上创建两条路线,一条用于“创建订单”,一条用于“捕获订单”documented here。两个路由都应该只返回 JSON 数据(没有 HTML 或文本)。在第二条路线中,当捕获 API 成功时,您应该将其生成的付款详细信息存储在您的数据库中(特别是 purchase_units[0].payments.captures[0].id,这是 PayPal 交易 ID - 以及 payer 对象的电子邮件地址,在您的情况下)并在将返回的 JSON 转发给前端调用者之前立即执行任何必要的业务逻辑(例如发送确认电子邮件或预订产品)。

    将这 2 条路由与前端审批流程配对:https://developer.paypal.com/demo/checkout/#/pattern/server

    【讨论】:

    • 感谢您的解释,普雷斯顿。目前这有点超出我的想象。希望 PayPal 有一个简单的变量供我在结帐后获取。感谢您的时间和精力!
    • 可以为 _GET 或 _POST 变量启用支付数据传输 (PDT),但我什至不愿提及这个非常古老的东西,因为它绝不可靠。正如我在回答中提到的,不能保证买家在付款后会返回您的网站。他们的浏览器可能会简单地崩溃,或者信用卡公司可能要求 PayPal 向他们出示收据,他们可能永远不会点击返回并关闭标签。
    • 所以新的标准集成是一个更好的选择。您可以在客户端完成所有操作并在“详细信息”对象中获取电子邮件地址,如果您无法开始服务器 API 集成 - 但您需要以某种方式将该数据传输到您的服务器,以便可靠地完成它应该只是一个服务器端的创建和捕获开始。
    猜你喜欢
    • 2018-02-09
    • 2018-07-27
    • 2014-01-26
    • 1970-01-01
    • 2013-05-30
    • 1970-01-01
    • 2012-10-03
    • 2020-05-08
    • 2017-06-19
    相关资源
    最近更新 更多