从 Paypal 获取 first_name(和其他信息)并使用 paypal-recurring gem 创建 Rails Devise 帐户

Posted

技术标签:

【中文标题】从 Paypal 获取 first_name(和其他信息)并使用 paypal-recurring gem 创建 Rails Devise 帐户【英文标题】:Get first_name (and other info) from Paypal and create Rails Devise account using paypal-recurring gem 【发布时间】:2014-01-08 06:29:39 【问题描述】:

我已经使用 the RailsCast 创建了订阅 Paypal 的基础知识,现在我正在做那里缺少的事情。

现在我正在开发流程,以便在付款完成后一起进行 Devise 用户注册。目前,我正在尝试类似this 和this。

the RailsCast 使用此行从 PayPal 收到电子邮件:

@subscription.email = PayPal::Recurring.new(token: params[:token]).checkout_details.email

所以,我认为我也可以从 PayPal 获得名字、中间名和姓氏。从PayPal documentation 看来这是可能的,但我无法通过paypal-recurring gem 获得它。 我试图看看我是否可以从paypal-recurring GitHub 文档和代码中学习我必须做的事情,但我找不到并尝试了一些没有成功的可能性。

有可能吗?也许以另一种方式不使用 paypal-recurring gem?

如果您有其他建议/参考来完成此注册过程,请告诉我。

更新

正如@Andrew 建议的 PayPal IPN,我认为最好更新我的问题,因为我希望将 PayPal 中的 first_name 作为默认值,以简化用户在我的数据库中注册的过程,但他或她可能想要更改为另一个名称。

我想要的过程是这样的:

    用户选择他的计划并使用 PayPal 付款 用户被发送到 PayPal 用户在 PayPal 网站上填写付款信息 用户再次被发送到我的网站 我的网站从 PayPal 获取电子邮件和用户姓名,并要求用户确认或更改数据,并提供他的密码以创建我网站的登录名 我的网站使用提供的用户数据来注册用户并将请求发送到 PayPal 以请求付款并创建定期配置文件

【问题讨论】:

【参考方案1】:

好的,根据您当前的步骤大纲,您可以使用 Express Checkout 处理该确切流程。

SetExpressCheckout 将为您生成一个令牌,然后您将用户重定向到 PayPal。他们审核并批准付款,然后被重定向回您的网站。在那里您可以致电GetExpressCheckoutDetails 以获取电子邮件、姓名、地址等,并显示最终审核页面供客户确认一切或在必要时进行更改。最后,您可以致电DoExpressCheckoutPayment,使用客户确认的详细信息完成付款。

【讨论】:

嗯...看来您对PayPal了解很多,而且似乎可以工作。所以,我接受了答案。但是,我现在不会实现这个,因为我使用的是 paypal-recurring gem。另一方面,我希望在您的回答的帮助下,我可以在不久的将来更改宝石。所以,谢谢!【参考方案2】:

我会看PayPal IPN (Instant Payment Notification)。它会将交易详细信息发布到您在服务器上的侦听器脚本,以便您可以实时相应地处理数据。

【讨论】:

最初,我认为这可行,但我意识到这对我来说行不通,因为我想要的是方便注册,但用户可能想要使用另一个名字(也许作为礼物某人)。我会更新我的问题,当您花时间回答并且它可以帮助某人时,我会投票 如果我理解正确,您仍然可以使用 IPN 来实现这一点。你有几个选择。首先,您可以在支付请求的 CUSTOM 参数中发送用户想要使用的名称。这将在 IPN 中返回,因此您可以提取该值并相应地使用它。或者,您可以在将用户发送到 PayPal 之前将有关订单的详细信息保存到数据库中。订单可以以待处理状态保存,并且可以包含任何必要的名称,然后您可以使用 INVOICE 参数在 PayPal 付款中传递该记录 ID。 同样,INVOICE 参数将返回到 IPN 中,因此您可以使用相应的付款详细信息更新该记录。 好像不能很好地沟通。所以我再次更新了我的问题。无论哪种方式,我都必须在下周左右学习 IPN,我可能会更好地理解它。

以上是关于从 Paypal 获取 first_name(和其他信息)并使用 paypal-recurring gem 创建 Rails Devise 帐户的主要内容,如果未能解决你的问题,请参考以下文章

使用社交框架从 Facebook 获取基本信息(id、first_name) - 附上源代码和屏幕截图

通过 API 从 Paypal 获取交易信息

从 PayPal 获取有关新订阅的通知

从 paypal webhook 获取事件数据

Paypal 从 php 中的支付密钥获取交易详情

从 PayPal SDK 获取交易 ID