日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

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

發布時間:2024/9/19 php 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php新订单提醒代码,PHP怎么实现新订单提醒功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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怎么实现新订单提醒功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。