我有一个提供导游的网站。每次旅行都有自己的价格,取决于参加的人。
用户必须填写表格,然后服务器必须验证表格,然后向客户和代理办公室发送电子邮件,其中包含预订旅行的详细信息(首选日期,人数等),然后将用户重定向到paypal付费。
问题是,paypal提供的“立即购买”按钮有自己的表格,其中包含一些隐藏字段,因此在同一页面上有两个表单。
我找到了树解决方案,但我不知道什么是最好的。
当用户按提交时,进行验证,发送电子邮件,然后将用户重定向到一个页面,该页面上有一个按钮,上面写着“继续付款”,提交的PayPal表格与提供者的价格相同。隐藏的字段
当用户按下提交按钮时,在服务器上进行ajax调用以验证表单并发送电子邮件,然后成功提交paypal表单。
当用户按提交时,进行验证,发送电子邮件,然后服务器将表单提交给paypal
我正在阅读几个小时,找到解决此问题的最佳方案。什么是最安全,最有效的,不会给用户带来问题。
抱歉我的英文
答案 0 :(得分:4)
假设您对Web开发有充分的了解(因为您正在谈论表单,会话等),我建议您使用PayPal Express Checkout API。你想要做的是非常普遍的。以下是我将如何做到这一点:
用户在第1页的表单中输入旅游信息,然后点击“提交”按钮。
您的服务器接收呼叫,验证表单并调用SetExpressCheckout并将PAYMENTACTION设置为“Authorization”。这就像“预订酒店房间”或“租车”。您只是要求用户在此刻授权付款;还没有收费他。
API会返回一个令牌。您将此令牌与游览信息一起存储在后端数据库中;并将此特定“预订”标记为“收到预订请求”。
您将用户重定向到paypal.com(并在网址中传递该令牌)以“授权”付款。
一旦用户完成授权,paypal会将用户重定向到您的网站(“成功页面”或“返回URL”,因为它在贝宝术语中称为。)
您更新数据库条目的状态为“付款已授权”。此时,您通过电子邮件发送给用户和代理商。
代理人会验证并确保旅行中仍有空间等,让您知道该用户已全部设定。
此时,您使用该令牌调用DoCapture API。这实际上“捕获”了付款。并更新状态为“已处理付款”的数据库条目。您还可以向用户发送另一封确认付款和预订的电子邮件。
在任何阶段,如果有一个下降(说用户从未完成授权),您可以从数据库中知道,并且您可以向用户发送后续电子邮件。或者,如果他授权但后来代理人说该特定旅行没有空间,您可以再次跟进用户下一个可用日期,或者取消付款等。
是的,这意味着它“更多编码”......但是你会获得“更大的灵活性”,并希望你能够减少掉线。
希望这会有所帮助。以下是快速结账的文档:https://cms.paypal.com/cms_content/CA/en_US/files/developer/PP_ExpressCheckout_IntegrationGuide.pdf。有Java,PHP等SDK可用于帮助商家快速集成。
答案 1 :(得分:1)
您可以使用<input type="hidden" balal /> rather than <input type="text" balal />
尝试分解流程,而不是将整个交易放在“立即购买”按钮上。也许在您的网站上创建一个基本的购物车系统,然后允许用户结帐,然后使用隐藏的输入将其购物车的内容发送到PayPal。
这种方式可以让您将用户与预订相匹配。