如何在购物车中生成唯一的交易 ID

and*_*eda 0 php shopping-cart

我正在开发一个购物车和一个本地支付网关,它要求每笔交易都具有唯一的订单 ID。这个 id 应该根据订单详细信息保存在数据库中,并作为变量发送到支付网关。我的困境是如何生成唯一 id 以及如何在将我的变量发送到网关之前保存它,以便我可以在从网关的 IPN 收到响应时检查它是否匹配。有问题的变量如下所示:

$reference = $_POST['reference'];//unique order id of the transaction, generated by merchant
Run Code Online (Sandbox Code Playgroud)

Cha*_*ari 5

这是我用来生成随机密钥的方法,即使它有点长,您也可以获得唯一的随机密钥。

$id.time().uniqid(mt_rand(),true)
Run Code Online (Sandbox Code Playgroud)

uniqid() - 这将生成 13 个字符的 uniqid

mt_rand() - 使用 Mersenne Twister 算法生成随机数,比 rand() 快 4 倍

uniqid(mt_rand()) - 在随机生成数字前加上 uniqueid

uniqid(mt_rand(), true) - 为了获得更强的随机性,我通过将第二个参数设置为“true”来启用 uniqid 的熵

$id.time().uniqid(mt_rand(), true) - 这里 $id 可以是 userid、productid 或任何你想要选择的 id,time() 将生成当前的 unix 时间戳,最后我将附加我的 uniqid (……)