我有一个提供导游的网站。每个旅游团都有自己的价格,具体价格取决于参加的人。
用户必须填写表格,然后服务器必须验证表格,然后向客户和代理商办公室发送电子邮件,其中包含预订的行程的详细信息(首选日期,多少人等),然后重定向用户支付宝支付。
问题在于,贝宝提供的“立即购买”按钮具有自己的表单,其中包含一些隐藏字段,因此同一页面上有两种表单。
我找到了树解决方案,但我不知道什么是最好的。
当用户按下“提交”时,进行验证,发送电子邮件,然后将用户重定向到一个页面,该页面上带有一个类似“继续付款”的按钮,该按钮会在隐藏字段中提交带有付款人价格的贝宝表单
当用户按下“提交”按钮时,将在服务器上进行ajax调用以验证表单并发送电子邮件,然后成功提交贝宝表单。
当用户按Submit进行验证时,发送电子邮件,然后服务器将表单提交给Paypal
我正在阅读几个小时,以找到解决此问题的最佳方法。什么是最安全,最有效的,不会给用户带来问题。
对不起我的英语不好
最佳答案
假设您对Web开发有一定的了解(因为您正在谈论表单,会话等),我建议您使用PayPal Express Checkout API。您尝试做的事很常见。这是我的处理方式:
用户以页面1的形式输入旅游信息,然后单击“提交”按钮。
您的服务器收到呼叫,验证表单并调用SetExpressCheckout并将PAYMENTACTION设置为“ Authorization”。这就像“预订酒店房间”或“租车”一样。您此时只是在要求用户授权付款;尚未向他收费。
API向您返回令牌。您将此令牌以及游览信息存储在后端数据库中;并将此特定“预订”标记为“收到预订请求”。
您将用户重定向到paypal.com(并在URL中传递该令牌)以“授权”付款。
用户完成授权后,贝宝会将用户重定向到您的网站(在贝宝术语中称为“成功页面”或“返回URL”)。
您用状态“付款授权”更新数据库条目。此时,您将向用户和代理发送电子邮件。
代理进行验证并确保游览中还有可用的空间,等等,让您知道用户已准备就绪。
此时,您使用该令牌调用DoCapture API。这实际上是“捕获”付款。然后,您将状态为“已付款处理”的数据库条目更新。您还可以向用户发送另一封电子邮件,以确认付款和预订。
在任何阶段,如果存在中断(例如,用户从未完成授权),您都可以从数据库中得知,您可以向用户发送后续电子邮件。或者,如果他授权但后来代理商说在那个特定的巡回演出中没有空位,您可以再次跟用户跟进下一个可用日期,或者取消付款等。
是的,这意味着它是“更多的编码” ...但是您将获得“更多的灵活性”,并希望能够减少流失。
希望这可以帮助。这是快速结帐的文档: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/