支付网关可能的问题

Posted

技术标签:

【中文标题】支付网关可能的问题【英文标题】:Payment gateway possible issues 【发布时间】:2011-09-07 16:14:41 【问题描述】:

我在我的应用中实现了 2 个支付网关(paypal 和 datatrans)。在这两个网关中,支付都发生在网关站点上,即用户被重定向到他支付的支付网关站点,然后被重定向回我们的站点。 我已经确定了一些在整个支付流程中存在问题的场景。例如

付款后互联网连接中断,因此无法下订单,但款项已从用户帐户中扣除 PayPal 发送响应,但应用程序出现异常,因此用户没有得到确认 交易进行时点击刷新按钮导致双重支付

我想知道在支付网关集成中应该处理哪些标准异常。 任何有关 paypal 的示例都会对我有很大帮助,我使用 asp.net mvc 3。谢谢。

【问题讨论】:

【参考方案1】:

双重付款。

为避免它们,您需要为每个订单创建一个唯一 ID,在用户从您的网站移动到贝宝或其他网站后,此 ID 必须是只读的,并且如果用户在失败后返回您的网站或其他原因,并要求重新订购相同的购物车,您必须创建一个新的购物车和一个新的订单 ID。

对于每个订单 ID,paypal 和其他网站只允许一次付款(或一次失败)。

失去互联网连接,或没有得到确认

Paypal 有 3 种方式与您联系。

    IPN PDT 电子邮件。

一种是你在付款后从用户的返回中获取信息,另一种是paypal与你沟通并给你发送付款信息,最后你会收到email。

在极少数情况下全部失败,用户会在几天后通知您他没有收到订单。

实际上,他们永远不会失败所有这些。实际上他们从来没有失败过。

异常和错误

有时您无法避免错误,因此请监控您的付款并记录任何可能的错误以进行修复。在使用贝宝付款 7 年后,我仍然会监控他们是否存在问题、欺诈、问题、新想法等,并且仍然会不时进行一些小的调整。

【讨论】:

同意并希望在 PayPal 产品上添加更多内容。 PDT仅适用于WPS,而IPN适用于WPS和EC等。所以我个人会选择IPN。此外,发票号码确实解决了重复付款问题。并且,如果你使用EC(快速结账),即使买家刷新也不会成功支付:EC使用token,支付成功后token会过期。

以上是关于支付网关可能的问题的主要内容,如果未能解决你的问题,请参考以下文章

支付网关 [重复]

通过支付网关接受 EBT/食品券

没有购物车的 Paypal 支付网关

PHP的Knet支付网关[关闭]

是否有任何基于 ASP.net C# 的开源支付网关?

使用 ASP.Net 实现 Stripe 支付网关 [关闭]