php - 在重定向到 Paypal 之前提交表格

标签 php ajax forms paypal

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

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

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

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

  1. 当用户按下提交时,进行验证,发送电子邮件,然后将用户重定向到一个页面,该页面上有一个按钮,上面写着类似“继续付款”的内容,该按钮会提交 paypal 表单,其中包含提供者价格隐藏域

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

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

我花了几个小时来寻找解决这个问题的最佳方法。什么是最安全、最有效且不会给用户带来问题的。

对不起我的英语

最佳答案

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

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

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

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

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

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

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

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

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

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

是的,这意味着它是“更多的编码”……但随后您将获得“更多的灵 active ”,并希望您能够减少流失率。

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

关于php - 在重定向到 Paypal 之前提交表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16508919/

相关文章:

php - 如何在 JavaScript 中使用相同的函数验证所有字段?

php - 从数据库接收id不起作用,但我可以接收其他数据库字段

php - Yii - 设置 Active Record 动态表名时出错

html - 在 HTML <form> 中 POST 额外值

javascript - JSONP 中的无效标签错误

php - 在将值写入文本文件 php 之前检查值是否存在

php - 我的注册表详细信息未进入数据库(phpmyadmin)

php - Laravel 简单月份选择

php - 如何创建一个 laravel 哈希密码

PHP AJAX Comet 与 MySQL 选择记录