我正在使用 FirstData Global Gateway API 为客户端编写结帐模块的最后阶段。用于数据输入的所有表单视图均已创建,并且控制器已成功与 FirstData Web 服务通信测试数据。

我正在寻找有关如何在单击“处理订单”按钮后构建结账用户体验的最佳实践的想法。

我计划使用 javascript 在单击进程按钮后禁用该按钮,并在此延迟期间将信息传递到 Web 服务。您过去可能使用过哪些方法来造成这种延迟,同时通知用户正在拨打付款电话。您过去可能使用过哪些方法来最好地操作通知交易是否已被批准或拒绝的回调函数?有没有人发现使用 PHP_SELF 在同一个脚本中处理所有这些信息来执行操作,或者通常最好将此逻辑放在其他地方?

只是一些一般性的询问,通过一些尝试和错误来帮助指导整个过程。也许回复会有助于收集一些不错的想法供大家使用。

有帮助吗?

解决方案

您过去可能使用哪些方法来创建此延迟,同时通知用户付款通话正在进行?

您不想延迟任何流程,因为处理付款会产生足够的开销,导致自然延迟发生。您此时的目标是防止重复提交并让用户知道在等待时发生了一些事情。禁用提交按钮是个好主意。此外,为结帐流程创建一个唯一的密钥(也需要与订单一起提交)是一个好主意。当他们提交付款时,您检查该密钥并确保它在那里(通常位于会话变量中)。如果删除它然后处理交易,如果他们再次提交表单,则可以将其标记为重复交易。

您过去可能使用哪些方法来最好地操作回调功能,以通知交易是否已获得批准或拒绝?

支付网关将返回批准、拒绝或错误值。没什么花哨的,所以实际上不需要花哨的处理。批准的交易应执行所有相关订单和数据库信息操作,然后用户应进入感谢/收据页面。错误和拒绝可以通过类似的方式处理,并再次向用户呈现结账页面。如果该卡被拒绝,请礼貌地告知用户他们的银行拒绝了该交易,并邀请他们使用其他信用卡。如果出现处理错误,您可以要求他们重试或指示他们通过电话与您联系以下订单。

是否有人使用php_self在同一脚本中找到了所有这些信息,或者通常最好将此逻辑放在其他地方?

西红柿,西红柿。这完全取决于您的编程风格。将付款流程与表格放在同一页面上就可以了。我已经做到了。重要的是付款处理得当并且用户看到他们需要看到的内容。后台发生的事情对他们来说并不重要。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top