【发布时间】:2013-01-03 21:53:33
【问题描述】:
我正在通过“立即购买”按钮向我的网站添加贝宝付款,据我了解,它会向贝宝发布表单,然后用户在贝宝的网站上完成付款。
在使用 IPN 监听器确认付款后处理订单,但我也想在订购时在我们的服务器上进行一些处理。是否可以先将“立即购买”按钮提交到我们自己的服务器,以便我可以记录订单,然后再重定向到贝宝以获取付款详情?
【问题讨论】:
我正在通过“立即购买”按钮向我的网站添加贝宝付款,据我了解,它会向贝宝发布表单,然后用户在贝宝的网站上完成付款。
在使用 IPN 监听器确认付款后处理订单,但我也想在订购时在我们的服务器上进行一些处理。是否可以先将“立即购买”按钮提交到我们自己的服务器,以便我可以记录订单,然后再重定向到贝宝以获取付款详情?
【问题讨论】:
这里有两个选择。
第一个更简单但如果用户没有 javascript 可能会失败的选项是使用 ajax 使用您喜欢的数据发布到您的服务器,并且只有在返回您之后让用户继续提交。
第二种选择是将您的数据发布到您的服务器上的代码后面,在那里您准备一个简单的页面并自动提交到贝宝 - 实际上您是使用发布重定向。在这里你可以找到源代码和一个如何制作的例子:
http://www.codeproject.com/Articles/37539/Redirect-and-POST-in-ASP-NET
【讨论】:
其实,你有很多选择。
正如您所说,“立即购买”按钮只不过是发送到 PayPal 的表单。您可以使用他们的任何standard variables 构建自己的表单,而不必局限于这些按钮。他们称之为cart upload method。
使用此方法,您可以在将用户发送到 PayPal 之前执行您需要执行的任何本地处理。在您自己的系统中创建某种订单记录是一种很好的做法,然后您可以将其包含在您的 PayPal 付款信息中。相同的值会在 IPN 中返回,因此您也可以在付款后处理它。
另一个更能让你敞开心扉的选择是使用Express Checkout APIs。这使您可以完全控制结帐系统,并且具有比标准付款更多的功能。如果您熟悉 Web 服务 API,我建议您这样做。
当然,IPN 也适用于 Express Checkout,因此您仍然可以将它用于您想要/需要的任何东西。
【讨论】: