Java 支付网关重复交易检测?

Java 支付网关重复交易检测?,java,transactions,payment-gateway,Java,Transactions,Payment Gateway,我在理解当前支付网关如何识别重复交易时遇到了一些问题。文件上说: 如果同一张信用卡有2笔交易,则使用相同的 如果在20分钟内发生,则将考虑 复制将返回一个错误 就我个人而言,我认为这是一个太简单的技术,它阻止我们的客户发出两个订单:例如,在我们的在线商店中有两个价格相同的东西,我怎么能告诉人们应该等20分钟再尝试购买第二个呢 以下是我的问题: 1这是支付网关的流行做法吗?或者有其他选择吗 2我如何解决这个问题?我想买一辆购物车,但它不适合我的环境。简言之,我的应用程序需要在20分钟内从同一张卡执

我在理解当前支付网关如何识别重复交易时遇到了一些问题。文件上说:

如果同一张信用卡有2笔交易,则使用相同的 如果在20分钟内发生,则将考虑 复制将返回一个错误

就我个人而言,我认为这是一个太简单的技术,它阻止我们的客户发出两个订单:例如,在我们的在线商店中有两个价格相同的东西,我怎么能告诉人们应该等20分钟再尝试购买第二个呢

以下是我的问题:

1这是支付网关的流行做法吗?或者有其他选择吗

2我如何解决这个问题?我想买一辆购物车,但它不适合我的环境。简言之,我的应用程序需要在20分钟内从同一张卡执行2次或更多单独的交易,金额相同

任何帮助都将不胜感激

是的,但通常时间窗口较小且可调。默认情况下,Authorize.Net的时间为3分钟,您可以在事务期间使用参数更改该时间

仅在第二次购买时执行授权,然后在20分钟后捕获授权。这是一个痛苦的屁股设置和做,但我看不到任何其他用户友好的方式围绕这一点


您的系统可以在每个事务上生成唯一的密钥。然后实现一个自动验证机制:如果系统检测到重复的密钥,那么它应该拒绝它。

嗨,John,但是我怎么知道用户将执行第二个事务呢?如果在20分钟之前,用户执行另一个事务,然后再执行另一个。。。。我不知道要花多长时间。我想我会像谷歌结账一样实现:排队等待订单,而订单只有在其孪生兄弟被发送20分钟后才能发送。然后,交易中的错误(如果存在)将通过电子邮件报告。最后,我们模拟了套餐选项,允许买家在套餐中添加多个相同的价格计划。当时我们的界面不是很好,但我们还是这样做了。可以添加更多细节吗?谢谢你的回答。对于我当时的具体情况,我已经使用了不同的订单ID。这里的事实是,不在我们控制范围内的支付网关只需在20分钟内删除任何具有相同信用卡号、金额的请求。虽然这可能是解决问题的一个有价值的提示,但答案确实需要比这更详细的一点。请提供示例代码来说明您的意思。或者,考虑将此写入评论。