1

我有一个提供导游服务的网站。每个旅行都有自己的价格,具体取决于将参加的人。

用户必须填写表格,然后服务器必须验证表格,然后向客户和代理办公室发送一封电子邮件,其中包含预订旅行的详细信息(首选日期,有多少人等),然后重定向用户到贝宝支付。

问题在于,paypal 提供的“立即购买”按钮有自己的表单,其中包含一些隐藏字段,因此同一页面上有两个表单。

我找到了树解决方案,但我不知道什么是最好的。

  1. 当用户按下提交时,进行验证,发送电子邮件,然后将用户重定向到一个页面,该页面有一个按钮,上面写着“继续付款”,该按钮提交贝宝表单,并在隐藏字段中显示给定价格

  2. 当用户按下提交按钮时,在服务器上进行 ajax 调用以验证表单并发送电子邮件,然后成功提交 paypal 表单。

  3. 当用户按下提交时,进行验证,发送电子邮件,然后服务器将表单提交到贝宝

我正在阅读几个小时,以找到解决此问题的最佳方法。什么是最安全、最高效且不会给用户带来问题的。

对不起我的英语不好

4

2 回答 2

4

假设您对 Web 开发有一定的了解(因为您正在谈论表单、会话等),我建议您使用 PayPal Express Checkout API。您尝试做的事情很常见。我会这样做:

  1. 用户在第 1 页的表格中输入旅游信息,然后点击“提交”按钮。

  2. 您的服务器接收到调用,验证表单并调用 SetExpressCheckout 并将 PAYMENTACTION 设置为“授权”。这就像“预订酒店房间”或“租车”。您此时只是要求用户授权付款;还没有向他收费。

  3. API 会返回一个令牌。您将此令牌与旅游信息一起存储在后端数据库中;并将这个特定的“预订”标记为“收到预订请求”。

  4. 您将用户重定向到 paypal.com(并在 URL 中传递该令牌)以“授权”付款。

  5. 用户完成授权后,paypal 会将用户重定向到您的网站(在 paypal 术语中称为“成功页面”或“返回 URL”)。

  6. 您使用“付款授权”状态更新您的数据库条目。此时,您向用户和代理发送电子邮件。

  7. 代理验证并确保游览中仍有可用空间等,并让您知道用户已准备就绪。

  8. 此时,您使用该令牌调用 DoCapture API。这实际上“捕获”了付款。并且您使用“已处理付款”状态更新数据库条目。您还可以向用户发送另一封电子邮件,确认付款和预订。

在任何阶段,如果出现下降(比如用户从未完成授权),您会从您的数据库中知道,并且您可以向用户发送后续电子邮件。或者如果他授权但后来代理说该特定旅行没有空间,您可以再次与用户跟进下一个可用日期,或取消付款等。

是的,这意味着它是“更多的编码”......但是你会得到“更多的灵活性”,并且希望你能够减少掉线。

希望这可以帮助。这是快速结帐的文档:https ://cms.paypal.com/cms_content/CA/en_US/files/developer/PP_ExpressCheckout_IntegrationGuide.pdf 。有 Java、PHP 等 SDK 可用于帮助商家快速集成。

于 2013-05-12T19:24:17.697 回答
1

您将使用 PayPal 表单的所有值创建某种确认页面,但使用 <input type="hidden" balal /> rather than <input type="text" balal />

尝试打破流程,而不是将整个交易放在“立即购买”按钮上。也许在您的网站上创建一个基本的购物车系统,然后允许用户结帐,然后使用隐藏输入将他们购物车的内容发送到 PayPal。

这种方式将允许您将用户与预订相匹配。

于 2013-05-12T15:37:34.980 回答