我有一个购物车。我想与 CCAvenue 支付网关集成。我总是从数据库发送订单 ID。结帐后,我的系统突然关闭。然后我必须再次检查它再次发送。我数据库中的订单 ID 与支付网关重复。这是我的问题。
我的问题是:我如何每次都发送一个唯一的订单 ID?我的网站是 PHP 的。
我有一个购物车。我想与 CCAvenue 支付网关集成。我总是从数据库发送订单 ID。结帐后,我的系统突然关闭。然后我必须再次检查它再次发送。我数据库中的订单 ID 与支付网关重复。这是我的问题。
我的问题是:我如何每次都发送一个唯一的订单 ID?我的网站是 PHP 的。
对于大多数支付网关,您可以发送单个 auth+capture AKA“销售”交易,或者您可以将授权和捕获交易作为两个单独的请求发送。
如果您担心发送单个销售交易的交易一致性问题,我的建议是发送授权以首先保留资金,然后在您的订购流程结束时发送捕获。
如果系统在初始授权期间出现故障,更糟糕的情况是,在您的身份验证到期后三天内将释放资金。您应该注意不要发生更糟糕的授权情况,因为它会阻止授权资金在被清除之前被使用,这有时会导致客户不高兴。
如果系统在最终捕获期间失败并且您无法记录状态,您可以稍后重新运行捕获,在这种情况下,结果将是成功或来自网关的消息表明捕获已经发生,然后可用于更新支付状态你的系统。
我认为应该有一个单独的功能 - 一直运行,检查先前版本的订单是否在购物车中。此外,该过程的副本应始终存储在数据库中。这样,如果由于某种原因,服务器重新启动,订单仍然可以从相同的位置进行(这样就不会有重复订单的问题)。
可能想要一个像这样的唯一ID http://us3.php.net/uniqid虽然你的问题有点模糊