PHP实现新订单提醒功能的方法:首先实现ajax轮询;然后下载workerman;接着连接服务端,代码为“var socket = io('http://www.tp5_test.com:2120');”;最后推送在线数据即可。

PHP怎么实现新订单提醒功能?

1.现实情况

我们在做商城系统的过程当中,会要求做一个订单提醒的功能,即来新的订单会提醒。我实现的方法是有订单后就会提醒“您有新的订单,请注意查收!”

2.解决方案

2.1ajax轮询

轮询的方法比较简单,就是每过多少秒发起一次请求。如果项目中的订单不多,每隔多少秒发一次请求会对服务器有挺大的压力。我将轮询关键的代码贴出来,仅供参考。

setInterval("order()",59000000);//每59秒刷新查询一次

var last_count = {$count};

function order() {

var data = {

'last_count':last_count

};

$.ajax({

type: "POST",

data: data,

url: "{:url('Order/sendOrderNotice')}",//后台方法

timeout: 60000,

cache: false,

async: false,

dataType: "json",

success: function(data) {

if(data.status == 1){

var audio = document.getElementById( "play" ); //浏览器支持 audio

audio.play(); //播放提示音

last_count = data.last_count;

setTimeout(function(){

window.location.reload();

}, 3000);

}

}

});

}

上面就是这个解决方案的核心。后端的代码请根据自己的业务逻辑编写。

2.2 结合workerman实现

这个方法是我比较推荐的。利用了workerman编写一段推送框架。具体参考:https://www.workerman.net/web-sender

3.准备工作

下载workerman。

上图是下载好的包。点击start_for_win.bat。

出现这个表示服务启动了。

4.解决过程

订单监控页面端的代码:

// 连接服务端,workerman.net:2120换成实际部署web-msg-sender服务的域名或者ip

var socket = io('http://www.tp5_test.com:2120'); //http://www.tp5_test.com换成自己的域名或者ip

// uid可以是自己网站的用户id,以便针对uid推送以及统计在线人数,这个ID可以随便写

uid = 1557062581000;

// socket连接后以uid登录

socket.on('connect', function(){

socket.emit('login', uid);

});

socket.on('new_msg', function(msg){

//两种处理方式

// 1 追加到页面元素中,可以做成页面的弹窗

$("#msg").append(msg);

//2 播放提示应 :

if(msg == 1){

var audio = document.getElementById( "play" ); //浏览器支持 audio

audio.play(); //播放提示音

}

});

// 后端推送来在线数据时

socket.on('update_online_count', function(online_stat){

console.log(online_stat);

});

后端代码://这个方法我随便写了写,具体的处理就是在支付完成回调以后,用用send_workerman方法就可以了。我是用sends来模型支付完成以后的回调

public function sends($id)

{

// var_dump($id);die;

if($id == 1){

$this->send_workman($id);

}else{

echo '没有发送消息';

}

}

/**

* @route('send_workman')

*/

public function send_workman($id)

{

$to_uid = '1557062581000'; //和页面的uid一致,不填写也可以

// 推送的url地址,使用自己的服务器地址

$push_api_url = "http://www.tp5_test.com:2121/";

$post_data = array(

"type" => "publish",

"content" => $id,

"to" => $to_uid,

);

$ch = curl_init ();

curl_setopt ( $ch, CURLOPT_URL, $push_api_url );

curl_setopt ( $ch, CURLOPT_POST, 1 );

curl_setopt ( $ch, CURLOPT_HEADER, 0 );

curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );

curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );

curl_setopt ( $ch, CURLOPT_HTTPHEADER, array("Expect:"));

$return = curl_exec ( $ch );

curl_close ( $ch );

var_export($return);

}

5.总结

两种方式都可以使用,推荐使用第二种,代码已经经过测试无问题

更多相关知识,请访问PHP中文网!

相关标签:PHP

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php新订单提醒代码,PHP怎么实现新订单提醒功能相关推荐

  1. WooCommerce电商开发:高性能订单存储(即将成为)新常态

    要创建免费网站?从易服客建站平台免费开始 500M免费空间,可升级为20GB电子商务网站 创建免费网站 WooCommerce电商开发:高性能订单存储(即将成为)新常态 发布于 2023年3月30日 ...

  2. 金蝶委外订单后台代码

    委外订单属于新单,在专门查老单的ICTemplate表是查不到的 SELECT * FROM ICSubContract --委外订单表头 SELECT * FROM ICSubContractEnt ...

  3. 微软一站式示例代码库 7月新代码示例发布

    微软一站式示例代码库 7月新代码示例发布. 下载地址: http://1code.codeplex.com/releases/view/69942 你也可以通过 示例代码浏览器 或 示例代码浏览器Vi ...

  4. 微软一站式示例代码库 8 月新代码示例发布

    微软一站式示例代码库 8 月新代码示例发布. 下载地址: http://1code.codeplex.com/releases/view/71395 你也可以通过 示例代码浏览器 或 示例代码浏览器V ...

  5. java订单类_基于Java创建一个订单类代码实例

    这篇文章主要介绍了基于Java创建一个订单类代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 需求描述 定义一个类,描述订单信息 订单id 订 ...

  6. 一台微型计算机_Linux的上百万行代码,一台新的微型计算机以及Google和Microsoft的更多产品

    一台微型计算机 在本周的开源新闻摘要中,我们介绍了用于Linux的一百万行代码,来自Google和Microsoft的更多开源软件,用于教育的新型微型计算机等等! 开源新闻:2015年7月4日至7月1 ...

  7. java订单类_使用Java创建一个订单类代码实例

    这篇文章主要简介了使用Java创建一个订单类代码实例,文中通过示例代码简介的非常具体,对大家的学习或者工作具有一定的参考学习网上卖,需要的朋友可以学习下 需求描述 定义一个类,描述订单信息 订单id ...

  8. 【公众号】微信第三方登录(静默授权和非静默授权)(具体代码:U盘 新浪云SAE)...

    一.微信联合登录是怎么登录的,有几种登录方式:微信联合登录和微信授权登录[授权登录(非静默授权)与静默授权] [主动授权]:需要用户确认登录,这样可以通过用户的个人确认,获取用户全面的信息,无论是否关 ...

  9. Php静默授权,【公众号】微信第三方登录(静默授权和非静默授权)(具体代码:U盘 新浪云SAE)...

    一.微信联合登录是怎么登录的,有几种登录方式:微信联合登录和微信授权登录[授权登录(非静默授权)与静默授权] [主动授权]:需要用户确认登录,这样可以通过用户的个人确认,获取用户全面的信息,无论是否关 ...

最新文章

  1. Python机器学习(三)--决策树算法
  2. c# C++接口封装 汽车模拟仿真
  3. centos7 python3 sqlserver_Centos7.3下SQLServer安装配置方法图文教程
  4. 知识图谱前沿技术课程暨学术研讨会(武汉大学站)
  5. 请举例说明@Qualifier 注解?
  6. 梯度与梯度下降法详解
  7. ORACLE SQL总结六:管理方案对象
  8. requests-处理不信任的ssl证书
  9. The Double-Checked Locking is Broken Declaration
  10. 项目经验少的怎么社招_想创业,但资金少,不知如何找项目?看看这些经验,你就知道了...
  11. 罗技驱动只能安装在c盘么?
  12. spyder安装matplotlib
  13. python地震数据处理_NumPy实例:地震数据的统计分析
  14. day7-列表和元组
  15. 网页设计之竞赛平台模块
  16. Java 16进制求和
  17. Bat文件闪退_启动失败
  18. 微信小程序 java音乐播放器系统python php
  19. GO+Selenium批量关注各大网站实战 2 (今日头条,批量关注)
  20. 将多个txt文本文件合并成一个txt文件

热门文章

  1. 深入浅出设计模式原则之迪米特法则(LoD)
  2. 关于Verilog的可综合性
  3. First Unique Character in a String(字符串中的第一个唯一字符)
  4. dotnetcore Http服务器研究(一)
  5. 实战react技术栈+express前后端博客项目(8)-- 前端管理界面标签管理+后端对应接口开发...
  6. 在天气预报中应用机器学习
  7. 【Hadoop Summit Tokyo 2016】LLAP:Hive上的次秒级分析查询
  8. 英媒:滴滴和优步每年烧钱64亿
  9. 字符集GBK升级UTF8
  10. 女人护肤品可与男人共用! - 健康程序员,至尚生活!