大家好,
背景:
我建立了一个定制商店,它有一个 PayPal 支付选项。通常,PayPal 选项的工作方式如下:
- 用户将商品添加到购物车(假设它们有货)
- 用户选择送货目的地
- 用户点击“立即结帐”样式按钮
- 用户登录或输入运输/账单详情
- 用户将看到支付页面以输入银行卡详细信息或点击“使用 PayPal 支付”按钮
“使用 PayPal 支付”按钮是我想要修改的。目前,我有一个 php 函数,它从用户购物车中获取所有项目并将其转换为 PayPal 表单,然后将其回显到页面上。此表格包含所有 PayPal 信息,包括商品、数量、尺寸、运费、业务详细信息、返回/取消/IPN 网址等。
问题:
如果用户在某一天填充他们的购物车并完成结帐程序直到付款页面,PayPal 表格就会在那里生成(包括商品价格和数量,目前可以)
他们离开计算机时没有点击“使用 PayPal 付款”按钮,可能会花几天时间考虑一下。与此同时,他们购物车中商品的价格/库存发生变化。
即使我将未完成的购物车设置为在 24 小时后删除,用户已经加载了 PayPal 表单,因此即使在 几个月 之后仍然可以使用旧库存水平点击“使用 PayPal 付款”,并且价格!
解决方案:
我在这里看到了几个选项,并且愿意接受对每个选项的建议(或者确实是更好的解决方案!)
使用可怕的“刷新”元标记设置付款和购物车页面以确保它们每天更新,并让 php 在页面加载前检查库存/价格。这样,如果股票或价格有变化,用户将看到最新的价格。 (这不是我的首选)
不是在付款页面上生成 PayPal 表单,而是让“使用 PayPal 付款”按钮将用户引导至另一个 php 页面(例如“process_paypal.php”),该页面会执行所有必需的检查,如果有如有任何问题,可以向用户发送消息。 (到目前为止,一切都很好)。 然后(这是我正在努力解决的部分),如果一切正常,生成表单并自动提交,将用户重定向到 Paypal 网站进行登录在。(我知道这可以使用 jQuery 或 Javascript 很容易地完成,但如果可能的话,如果存在这样的事情,我更喜欢 PHP 解决方案?我不太熟悉 cURL,所以不知道是不是这样用于)
你告诉我?! :)
感谢您在此方面提供的任何帮助。
本艾弗里
最佳答案
就个人而言,在这种情况下,如果购物车不存在,我会使用 Paypal 回调 url 来拒绝购买。
如果购物车存在于您的系统中,您要做的只是成功响应他们的 IPN 调用。否则响应失败。
我相信 PayPal 中有一个设置可以拒绝未获得成功响应的付款。
编辑: 刚刚查看了代码(我已经有一段时间没看代码了)。我们最终做的是基于 IPN 调用使用 PayPal API 触发退款。我认为这样做是完全可以接受的,因为客户无需付费。
关于php - 如何在库存/价格检查后自动提交自定义 PayPal 购物车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10847583/