Maison > php教程 > PHP源码 > le corps du texte

利用Redis生成订单号

PHP中文网
Libérer: 2016-05-23 16:40:13
original
2684 Les gens l'ont consulté

php代码

class Pay extends Web
{
    /**
     * 最多以每秒999个的速度生成13位订单号
     *
     * @return string
     */
    function getOrderId()
    {
        //哪年,哪天,哪一秒
        $base = date('y') . date('z') . str_pad((date('H') * 60 * 60 + date('i') * 60 + date('s')), 5, 0, STR_PAD_LEFT);
        $next_sec = time() + 1;

        $pre_max_id = 999;
        while(time() < $next_sec) {
            $order_id = mt_rand(1, $pre_max_id);

            $store_key = parent::getCacheKey(&#39;orderIdCache&#39;, $base, $order_id);
            $setRet = $this->store->setnx($store_key, 1);

            if ($setRet) {
                $this->store->expire($store_key, 5);
                return $base.str_pad($order_id, 3, 0, STR_PAD_LEFT);
            } else {
                continue;
            }
        }

        return $this->getOrderId();
    }
}
Copier après la connexion

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal