当前位置: 首页 > news >正文

PHP 生成唯一订单号函数

应用场景

在开发购物功能,涉及到支付比如 微信、支付宝,当下单时需要生成一条唯一的订单,需要用到唯一的订单号管理。

函数代码

 /**
 * 得到新订单号
 * @return  string
 */
function get_order_sn()
{
    /* 选择一个随机的方案 */
    mt_srand((double) microtime() * 1000000);

    return date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);
}

实例代码

 /* 插入订单表 */
    $error_no = 0;
    do
    {
        $order['order_sn'] = get_order_sn(); //获取新订单号
        $GLOBALS['db']->autoExecute($GLOBALS['ecs']->table('order_info'), $order, 'INSERT');

        $error_no = $GLOBALS['db']->errno();

        if ($error_no > 0 && $error_no != 1062)
        {
            die($GLOBALS['db']->errorMsg());
        }
    }
    while ($error_no == 1062); //如果是订单号重复则重新提交数据

    $new_order_id = $db->insert_id();
    $order['order_id'] = $new_order_id;

来源:notestore.cn/ec-shop-shou-ce...

相关文章:

  • SSE图像算法优化系列二十九:基础的拉普拉斯金字塔融合用于改善图像增强中易出现的过增强问题(一)...
  • Confluence 6 LDAP 服务器配置
  • tp5.0中及其常用方法的一些函数方法(自己看)和技巧(不断添加中)
  • SpringBoot 从application.yml中通过@Value读取不到属性值
  • python开发环境
  • 网页排版布局--从里到外先搞定结构
  • 常见的Web安全及其攻防姿势
  • 利益相关者分析
  • 长春网站建设×××,网站制作的步骤
  • spring boot @ConfigurationProperties vs @Value
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • websocket的那些事 - 初识
  • Easyui Tab使用
  • 通过DataWorks数据集成归档日志服务数据至MaxCompute进行离线分析
  • 分享 | 关于人工智能算法建模稳定性那些事儿
  • 【React系列】如何构建React应用程序
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • Angular2开发踩坑系列-生产环境编译
  • echarts的各种常用效果展示
  • input的行数自动增减
  • Js基础——数据类型之Null和Undefined
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • nodejs:开发并发布一个nodejs包
  • Sass 快速入门教程
  • WebSocket使用
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 开发基于以太坊智能合约的DApp
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 微信支付JSAPI,实测!终极方案
  • 学习使用ExpressJS 4.0中的新Router
  • 因为阿里,他们成了“杭漂”
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • 昨天1024程序员节,我故意写了个死循环~
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • (1)Nginx简介和安装教程
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (编译到47%失败)to be deleted
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (四) Graphivz 颜色选择
  • (算法)Game
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (转)树状数组
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .NET Micro Framework初体验
  • .Net8 Blazor 尝鲜
  • .NET委托:一个关于C#的睡前故事