2010-10-12 101 views
4

我有一个表单是一个用户输入信息,然后我有一个PayPal按钮,用户在填写完字段后将单击该按钮。我遇到的问题是如何在paypal按钮时捕获用户信息点击,如果表格有action="http://paypl.com/something/something"单击PayPal按钮时如何捕获用户信息?

我是否必须将其设为一个2页的过程 - 一个是为了捕获用户信息,然后是一个让用户点击贝宝按钮?

顺便说一句 - 贝宝按钮指导用户paypal.com实际进行支付。

+0

这听起来像你正试图促进一个场景,贝宝标准api并不意味着。您无法可靠地捕获这些信息,因为客户可以在贝宝网站上取消这些信息,并且不会收到通知。以下两种解决方案都会在数据库中留下可能不正确的信息。如果您需要完全集成,您需要查看paypal pro flow api - 费用大约为每月30美元。 – Doug 2010-10-12 22:26:55

+2

@Doug:或者,他可以使用IPN脚本并避免每月费用。 – Josh 2010-10-12 22:54:48

+3

查看我的评论。它需要搜索,但PayPal完全适应了这些类型的情况。他们只是不记录它。哎呀,他们没有用简单的英语记录任何东西..... – bpeterson76 2010-10-12 23:06:12

回答

3

您在这里有几个选项。您可以制作两种表单,一种是向服务器提交捕获用户信息的表单,然后用“立即付款”按钮显示第二种表单。作为第二种选择,您可以使用JavaScript从表单中提取信息并使用AJAX将其提交给您的服务器,然后在AJAX请求完成时将表单提交给PayPal。这可能会也可能不会更复杂,但它不会改变现有的用户界面,这可能是可取的。

+0

我想过ajax,但我认为必须有更好的方法。我要去尝试ClarkeyBoy的解决方案。 – Catfish 2010-10-12 22:18:51

+0

他的解决方案可能工作得很好。我忘了我的头顶,如果贝宝需要一个POST – Josh 2010-10-12 22:19:29

3

我会使动作成为当前页面,点击按钮并存储用户信息,然后使用header: Location("http://paypl.com/something/something");。无论如何,它就是这样的。希望这可以帮助。

编辑:也见Josh的其他答案。他们同样有很好的可能性。请注意,Ajax选项需要打开JavaScript,因此在关闭的情况下,必须安装防护措施。

+1

我不敢相信我没有想到这一点。 – Catfish 2010-10-12 22:18:21

+0

别担心 - 每个人都会不时忽略明显的事情。通常需要多人才能找到最佳的解决方案 - 因此像Facebook这样的网站是由多人开发的! – ClarkeyBoy 2010-10-12 22:20:20

6

伙计们,这里有一个更简单的解决方案。 Paypal允许你将这些值传递给它,然后它会将它们吐回给你。实际上有两种获取数据的方法 - 一个返回URL,它在完成后发布返回值(我并不是非常幸运地完成这项工作),然后是一个单独的函数,它在完成交易后向您发送一个帖子给一个单独的页面上,您可以在其中收回您发布到网站的所有变量。我建议后者,因为在立即购买页面中,用户可能不会返回到网站,因为PayPal的返回按钮UI相当薄弱。

要设置它,您需要登录到您的贝宝账户,点击myaccount>个人资料>网站付款偏好。启用“支付数据传输”将会有所裨益。一旦你的设置正确,一旦交易完成后,它会发送你选择的页面给你发送的所有内容......记住,你可以发送诸如Name,Address等变量通过在表单中​​正确定义它们。所有可用的变量都可以找到here

当然,你可以通过Jquery或类似的方式从表单中抓取元素,然后做一个点击保存到数据库,但为什么要打呢?这是一个更多的工作,如果Javascript关闭可能会有问题。

不要忘了建立一个沙箱网站来测试!祝你好运。

+0

我还以为有这样的事情,但说实话,我没有打扰重新阅读PayPal文档。好答案。 – Josh 2010-10-13 12:31:58

1

我的建议是将所有用户/订单数据添加到您自己的本地数据库中,以便您可以生成某种订单ID。然后,您可以将此订单ID传递到名为发票的字段中的贝宝按钮代码。

这个值然后会以PDT/IPN作为$ _POST ['invoice']返回,这样您可以轻松地将所有数据全部取出并在您的应用程序中相应处理。

另一种选择是使用Express Checkout而不是Payments Standard。这有点多,但限制较少。

即使有了EC,我仍然建议发送一些与付款请求一起的订单ID,以便您可以轻松地将所有内容来回关联。

相关问题