1. 程式人生 > >微信開發之事件推送與被動回覆

微信開發之事件推送與被動回覆

直接上程式碼,公眾號後臺基本配置:

設定URL、token、EncodingAESKey,並退出啟用改配置,後上程式碼

class TestController extends Controller
{
//公眾號後臺的URL的介面
    public function index()
    {

        //將timestamp,nonce,token按字典序排序
        $timestamp = $_GET['timestamp'];
        $nonce = $_GET['nonce'];
        $token = 'weixin';
        $signature = $_GET['signature'];
        //將排序之後的三個引數拼接之後用sha1加密
        $array = array($timestamp, $nonce, $token);
        sort($array);
        $tmpstr = implode('', $array);
        $tmpstr = sha1($tmpstr);
        //將加密後的字串與sianature進行對比,判斷請求是否來自於微信
        if ($tmpstr == $signature && $_GET['echostr']) {//第一次接入微信Api
            echo $_GET['echostr'];
            exit;
        } else {
            $this->responseMsg();
        }
    }

    public function responseMsg()
    {
        //接收到的使用者訊息格式<xml
>
$postArr = $GLOBALS['HTTP_RAW_POST_DATA']; // 接收到的訊息格式 // <xml> // <ToUserName><![CDATA[toUser]]></ToUserName> // <FromUserName><![CDATA[FromUser]]></FromUserName> // <CreateTime>123456789</CreateTime> // <MsgType
>
<![CDATA[event]]></MsgType> // <Event><![CDATA[subscribe]]></Event> // </xml> //把接收到的xml格式資料包轉化為物件格式 $postObj = simplexml_load_string($postArr); // 被動回覆使用者訊息格式 // <xml> // <ToUserName><![CDATA[toUser]]>
</ToUserName> // <FromUserName><![CDATA[fromUser]]></FromUserName> // <CreateTime>12345678</CreateTime> // <MsgType><![CDATA[text]]></MsgType> // <Content><![CDATA[你好]]></Content> // </xml> if (strtolower($postObj->MsgType) == 'event') {//判斷是否為訂閱的事件推送 if (strtolower($postObj->Event) == 'subscribe') {//判斷是否為關注的事件推送 $toUser = $postObj->FromUserName; $fromUser = $postObj->ToUserName; $time = time(); $msgType = 'text'; $content = '你好:'.$postObj->FromUserName.'!歡迎關注我們的微信公眾號'; $template = "<xml> <ToUserName><![CDATA[%s]]></ToUserNames> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <Content><![CDATA[%s]]></Content> </xml>"; $info = sprintf($template, $toUser, $fromUser, $time, $msgType, $content); echo $info; } } }

相關推薦

開發事件被動回覆

直接上程式碼,公眾號後臺基本配置: 設定URL、token、EncodingAESKey,並退出啟用改配置,後上程式碼 class TestController extends Controller { //公眾號後臺的URL的介面 public

開發二--事件

開發背景: 需要使用者通過二維碼關注公司的公眾號以後獲得openID和使用者ID(userid)關聯,然後根據需求給使用者傳送預警訊息 注意:在微信公眾號後臺,設定了伺服器配置URL並啟用後,會導致微信後臺設定的回覆規則,以及底部選單都全部失效!直接清空了!因為這時候微信已經把公眾號

C#公眾號開發接收事件消息排重的方法

data push con 這樣的 etime ali 推薦 系列 是否 本文實例講述了C#微信公眾號開發之接收事件推送與消息排重的方法。分享給大家供大家參考。具體分析如下: 微信服務器在5秒內收不到響應會斷掉連接,並且重新發起請求,總共重試三次。這樣的話,問題就來了。有

開發接收事件

​在微信使用者和公眾號產生互動的過程中,使用者的某些操作會使得微信伺服器通過事件推送的形式通知到開發者在開發者中心處設定的伺服器地址,從而開發者可以獲取到該資訊。其中,某些事件推送在發生後,是允許開發者回覆使用者的,某些則不允許,詳細說明請見本頁末尾的微信推送訊息與事件說明

公眾號開發-選單事件

選單事件推送在微信公眾號開發中也是屬於比較常用的一個功能,就是使用者點選選單之後,微信會將事件推送給介面程式。 不過微信開發到現在也是老生常談的的東西了,我就簡單寫一下選單事件推送的這個過程。 注意:點選選單彈出子選單,不會產生請求互動。 1.先來看下相應的介面

開發獲取openid及模板訊息

有很多的朋友再問我怎麼獲取code,openid之類的問題,在這裡我就給大家分享一下。 在做微信支付是需要獲取openid的,推送模板訊息也是需要openid包括其他一些功能分享等也都是需要的,openid是什麼呢,這裡給大家解釋一下,是使用者在公眾號中的一個標識,就相當於你資料表中的I

公眾號開發關注圖文訊息

關注/取消關注事件使用者在關注與取消關注公眾號時,微信會把這個事件推送到開發者填寫的URL。方便開發者給使用者下發歡迎訊息或者做帳號的解綁。微信伺服器在五秒內收不到響應會斷掉連線,並且重新發起請求,總共重試三次。關於重試的訊息排重,推薦使用FromUserName + Cre

php 開發訂閱事件並回復2條消息

php 微信 peer bin name 需求 這一 access 通過 發現 在通過微信公眾平臺驗證之後,需要關註訂閱公眾號。如何獲取訂閱事件,並且在訂閱之後回復消息,如果有需求要給用戶一個數據庫表中的信息,那我們可以保存用戶openid(唯一),在這裏說一下 這個ope

php開發帶參數二維碼的使用

cor odin ews json 保存 explode 想要 int gty 最近做微信PC端網頁微信相關功能的開發,從一個新手的角度來說,微信公眾號的文檔還是不好理解的,網上找的帖子大都也都基本上是復制微信公眾平臺上給的文檔,開發微信帶參數二維碼過程中還是遇到不少坑的,

針對的一篇附有的數據鏈接進行MapReduce統計

全球 tco 大數據 cer 推送 xtend .get ati 適用於 原推送引用:https://mp.weixin.qq.com/s/3qQqN6qzQ3a8_Au2qfZnVg 版權歸原作者所有,如有侵權請及時聯系本人,見諒! 原文采用Excel進行統計數據,這

開發網頁授權

個人信息 ati 關註 技術分享 lin base 定義 技術 參數 第一步:成為開發者   在自己的公眾號點擊基本配置,點擊基本配置,填寫服務器配置 Url服務器地址是微信回調地址,必須以 http://或https://開頭,端口號必須為80或443。 Token令

開發中網頁授權access_token基礎支持的access_token異同

amp api ken 獲取 use 有效期 公眾號 分享 什麽 問題1:網頁授權access_token與分享的jssdk中的access_token一樣嗎?答:不一樣。網頁授權access_token 是一次性的,而基礎支持的access_token的是有時間限制的:7

武漢開發小程序開發,應該從哪些方面做起?

如果 不同 你是 實踐 可能 了解 上帝 內容 簡單的 很多武漢微信開發的從業者不知道微信小程序開發應該從哪些方面做起,究其原因,大概是大多數武漢微信開發從業者都是技術出身,而不知道微信小程序開發也是應該從運營角度去考慮的。技術不懂運營,這個是所有開發類行業中的硬傷。所以,

開發消息接收--文本消息(三)

事件 圖片 over ret ken .text tin equals char 一、消息格式 1 <xml> 2 <ToUserName>< ![CDATA[toUser] ]> 3 </ToUserNam

開發消息回復--圖文消息(四)

轉換 turn ews exce 默認 nal ini equal 介紹 一、消息格式 1 <xml> 2 <ToUserName> 3 < ![CDATA[toUser] ]> 4 </T

c# 開發 《主動發內容》

ccs efi open ima end err log summary 用戶 需要用戶和公眾號,在48小時內有過互動,不然發不出去。 public const string customUrl = "https://api.weixin.qq.com/cgi-b

ThinkPHP5.0開發獲取使用者地理位置

新建一個類Location.php 我直接貼程式碼,要用大夥自己複製下就OK! <?php class Locatin{ private $appId; private $appSecret; public function __constru

php 開發 支付 v3 配置

      公司需要微信支付現不到鎮的是非常的麻煩。然後呢那個要怎麼申請我就不寫了。因為不是我負責的所以我就記錄微信支付開發就好了。自己也記錄一下以後要開發好下手 。 1. 到這裡下載sdk        版本本V3 : http

開發網頁授權取客戶資訊(測試號)

搞個賬號後 到開發者工具->公眾平臺測試賬號 第一步 設定一個域名 這個域名要外網能訪問 如果是自己測試的話 不用伺服器 就用內網對映(這裡推薦netapp) 這裡注意不用加什麼http:// 第二步 後臺寫一個介面 返回一個echostr給微

藉助第三方實現訊息和提醒

一.前言 近來在負責微信端的專案開發,遇到了一個比較奇特的需求,使用者不想關注本公眾號(可能是怕隱私或者其他等等)但是還想收到推送給的訊息提醒。搜尋良久,最後在同事口中得知微信有專門實現這種功能的公眾號。 二.PushBear 基於微信模板的一對多訊息送達服務 API 就兩個引數  https:/