首頁 後端開發 php教程 php微信公眾平台開發之微信群發資訊實例分享

php微信公眾平台開發之微信群發資訊實例分享

Jun 01, 2018 am 11:33 AM
php 資訊 群發

這篇文章主要為大家詳細介紹了php微信公眾平台開發之微信群發信息,具有一定的參考價值,有興趣的小伙伴們可以參考一下

##1、目的

  完成在微信公眾號中群發訊息。這裡只是完成簡單的文字發送。也可以發送語音圖片等,只是發送數據格式不同而已,下面有鏈接,可以查詢數據類型的數據發送格式。

2、群發簡訊的流程

取得測試公眾帳號(有帳號的可以不用測試帳號,不過正式的帳號限制比較多)用戶追蹤上面的公眾帳號透過appid和appsecret取得我們的access_token透過access_token群發送簡訊

3、取得測試公眾帳號關注公眾號##1)、公眾測試帳號取得

  存取上面的連接,選擇「介面測試號碼申請」取得直接開啟

http://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index

透過微信客戶端掃碼登入即可登入。   登入完畢即可取得測試公眾帳號的資訊。主要有appId和appsecret兩個參數,這將唯一標示一個公眾號,並且需要將他們作為參數來獲取使用者的資訊。 、

2)、設定介面資訊

這一步可以參考微信存取說明,該頁提供一個php的實例下載,很簡單基本上修改一下自訂的TOKEN就好了,然後把驗證頁面放到自己的伺服器上。

這裡我提供我要做的一個例子:

準備資源:

網域空間(我的是sae空間萬網網域)、僅供驗證的php檔案

網域指向的空間根目錄我建立了一個wx_sample.php

wx_sample.php

<?php
/**
* wechat php test
*/

//define your token
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid();

class wechatCallbackapiTest
{
public function valid()
{
$echoStr = $_GET["echostr"];

//valid signature , option
if($this->checkSignature()){
echo $echoStr;
exit;
}
}

public function responseMsg()
{
//get post data, May be due to the different environments
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

//extract post data
if (!empty($postStr)){
/* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,
the best way is to check the validity of xml by yourself */
libxml_disable_entity_loader(true);
$postObj = simplexml_load_string($postStr, &#39;SimpleXMLElement&#39;, LIBXML_NOCDATA);
$fromUsername = $postObj->FromUserName;
$toUsername = $postObj->ToUserName;
$keyword = trim($postObj->Content);
$time = time();
$textTpl = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Content><![CDATA[%s]]></Content>
<FuncFlag>0</FuncFlag>
</xml>"; 
if(!empty( $keyword ))
{
$msgType = "text";
$contentStr = "Welcome to wechat world!";
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultStr;
}else{
echo "Input something...";
}

}else {
echo "";
exit;
}
}

private function checkSignature()
{
// you must define TOKEN by yourself
if (!defined("TOKEN")) {
throw new Exception(&#39;TOKEN is not defined!&#39;);
}

$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];

$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
// use SORT_STRING rule
sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );

if( $tmpStr == $signature ){
return true;
}else{
return false;
}

}
}

?>
登入後複製

然後填入設定資訊Token (一定要與上面的wx_sample.php中的token一致)、URL(wx_sample.php的位址)

然後提交就可以了

如果提示失敗,請檢查Token與URL【如果是自己的網域和空間,請備案;百度sae、新浪sae的需要自己申請而且認證通過(就是自己拍一個手握證件照上傳,很簡單的最短2天就o了),這一步必須】

3)設定JS介面安全網域

  填這個網域是一定不要帶protocol的,比如說http://www.sagosoft.com/ 這樣是不對的,這是URL不是網域

  網域應該是類似www.sagosoft.com這樣的【否則在微信js-sdk接入時會提示invalid url domain】

4)關注公眾號

  用戶只有追蹤了這個公眾號了,才能透過開啟有公眾號資訊的連結去授權第三方登錄,並取得使用者資訊的操作。故我們還需要用我們的微信關注微訊號,操作如下:

  還是剛剛那個登入成功後跳轉的頁面,我們可以看到,該頁面有一個二維碼,我們可以透過掃描該二維碼進行關注,關注成功在右邊的「用戶列表」會多一個用戶的信息。如下圖所示:

5)設定回呼函數

我們在微信客戶端造訪第三方網頁(即我們自己的網頁)的時候,我們可以透過微信網頁授權機制,我們不僅要有前面獲取到的appid和appsecret還需要有當用戶授權之後,回調的域名設置,即用戶授權後,頁面會跳轉到哪裡。具體的配置如下:

還是在剛剛的頁面,有一個“網頁授權獲取用戶基本資訊”,點擊後面的修改

填寫回調的網域:

網域是上面配置的根域名,假如你上面「介面設定資訊」 填寫的url 為zcr.sinaaappc.com/wx_sample.php,這裡只要填寫zcr.sinaaappc.com 就可以了。

如果你的網址沒有被列入過黑名單,就會在頂部出現

######################### ############注意:##########

1、这里填写的是域名(是一个字符串),而不是URL,因此请勿加http://等协议头;
2、授权回调域名配置规范为全域名,比如需要网页授权的域名为:www.qq.com,配置以后此域名下面的页面http://www.qq.com/music.html 、 http://www.qq.com/login.html 都可以进行OAuth2.0鉴权。但http://pay.qq.com 、 http://music.qq.com 、 http://qq.com无法进行OAuth2.0鉴权

到这里,我们就完成了公众号测试账号的获取和配置,已经用户关注微信公众号。

4、通过appid和appsecret获取我们的access_token

  access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。

获取方法:

http请求方式: GET
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

参数说明:


返回说明

正常情况下,微信会返回下述JSON数据包给公众号:

复制代码 代码如下:

{"access_token":"ACCESS_TOKEN","expires_in":7200}

错误时微信会返回错误码等信息,JSON数据包示例如下(该示例为AppID无效错误):


复制代码 代码如下:

{"errcode":40013,"errmsg":"invalid appid"}

例子:

获取access_token:

复制代码 代码如下:

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx4d1cb8dbd827a16e9&secret=d462d4c36b116795d1d99dcf0547af5443d

返回数据:


{
"access_token": "qR5UK2vMf5aTHV8e-uB10FZW0caTZm_1kbkUe4OPK2ILVvNaoa7pLzYWqLUAmx6Sjq1E7pKHrVAtuG0_1MPkqmDfOkm2750kaLWNk59DS-iDOpjjxompJtXa3WhbN5FKRWNhADAVAR",
"expires_in": 7200
}
登入後複製

5、通过access_token群发短信

  在公众平台网站上,为订阅号提供了每天一条的群发权限,为服务号提供每月(自然月)4条的群发权限。而对于某些具备开发能力的公众号运营者,可以通过高级群发接口,实现更灵活的群发能力。

请注意:

1、对于认证订阅号,群发接口每天可成功调用1次,此次群发可选择发送给全部用户或某个分组;
2、对于认证服务号虽然开发者使用高级群发接口的每日调用限制为100次,但是用户每月只能接收4条,无论在公众平台网站上,还是使用接口群发,用户每月只能接收4条群发消息,多于4条的群发将对该用户发送失败;
3、具备微信支付权限的公众号,在使用群发接口上传、群发图文消息类型时,可使用标签加入外链;
4、开发者可以使用预览接口校对消息样式和排版,通过预览接口可发送编辑好的消息给指定用户校验效果。

1)根据分组进行群发【订阅号与服务号认证后均可用】

调用接口:

复制代码 代码如下:

http请求方式: POSThttps://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_token=ACCESS_TOKEN

在body添加如下数据(以JSON格式数据发送)——发送其他格式数据,只需要改里面参数信息即可,具体可查看微信官方文档:


参数说明:

例子:发送给所有人

url:

复制代码 代码如下:

https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_token=KBoNONaJZ4-KhafQVJoQ6VBX0F-bls7nAsJBn8Fy7GLwav4Be1lRJcob1RHH6wW35IxxFwkJnZfnc-On9EQITg3oxEWUw7O2YyVW9naDknu6PQX9fnSmQcr8ojTK8Ug-HDTcAAABXN

发送的json数据:发送给所有人


返回数据:

参数意义:

错误码及其以及查询:

全局错误码解析

使用postman模拟https请求发送如下图所示:

2)根据OpenID列表群发【订阅号不可用,服务号认证后可用】

发送的http请求url:(注意:和上面的不同)


复制代码 代码如下:

http请求方式: POSThttps://api.weixin.qq.com/cgi-bin/message/mass/send?access_token=ACCESS_TOKEN

数据格式:


复制代码 代码如下:

{"touser":["OPENID1","OPENID2"],"msgtype": "text","text": { "content": "hello from boxer."}}

其中OPENID1和OPENID2是我们要发送的微信用户openId(用户的唯一标示)。

例子:

发送"oF3PcsnsrMiJzEwalZZbAfWQpxCI","oF3PcshH1CUIhR_WYau6swUiPzlw" 两个用户。

内容为:hello from boxer.欢迎来到百度

url:


复制代码 代码如下:

https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token=wRyTbnsiu18ssEhMPLf4bDfeT-Bt6e6tgR4CQGVLBipRcyJPkdAKPYfM6-qkKuHUN8uRKJh6Xvm0OuAdFgqOo8Ru8hoDxl-cGc9bh-ezJb2ZUcJSnQk2s416zI8kbEOfOGYdAFARJB

json数据:


{
"touser":[
"oF3PcsnsrMiJzEwalZZbAfWQpxCI",
"oF3PcshH1CUIhR_WYau6swUiPzlw"
],
"msgtype": "text",
"text": { "content": "hello from boxer.<a href=&#39;http://www.seewoedu.com/&#39;>欢迎希沃学院</a>"}
}
登入後複製


返回数据:


{
"errcode": 0,
"errmsg": "send job submission success",
"msg_id": 3147483654
}
登入後複製


使用postman模拟发送请求如下:

微信号接收到的内容:

php微信公眾平台開發之微信群發資訊實例分享

致谢:感谢您的阅读!

总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。

相关推荐:

PHP实现屏蔽关键字的方法
PHP实现的自定义数组排序函数与排序类的方法
PHP实现的自定义数组排序函数与排序类

以上是php微信公眾平台開發之微信群發資訊實例分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1670
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1273
29
C# 教程
1256
24
PHP:網絡開發的關鍵語言 PHP:網絡開發的關鍵語言 Apr 13, 2025 am 12:08 AM

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP與Python:了解差異 PHP與Python:了解差異 Apr 11, 2025 am 12:15 AM

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

PHP和Python:比較兩種流行的編程語言 PHP和Python:比較兩種流行的編程語言 Apr 14, 2025 am 12:13 AM

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

PHP行動:現實世界中的示例和應用程序 PHP行動:現實世界中的示例和應用程序 Apr 14, 2025 am 12:19 AM

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

PHP的持久相關性:它還活著嗎? PHP的持久相關性:它還活著嗎? Apr 14, 2025 am 12:12 AM

PHP仍然具有活力,其在現代編程領域中依然佔據重要地位。 1)PHP的簡單易學和強大社區支持使其在Web開發中廣泛應用;2)其靈活性和穩定性使其在處理Web表單、數據庫操作和文件處理等方面表現出色;3)PHP不斷進化和優化,適用於初學者和經驗豐富的開發者。

PHP和Python:解釋了不同的範例 PHP和Python:解釋了不同的範例 Apr 18, 2025 am 12:26 AM

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP與其他語言:比較 PHP與其他語言:比較 Apr 13, 2025 am 12:19 AM

PHP適合web開發,特別是在快速開發和處理動態內容方面表現出色,但不擅長數據科學和企業級應用。與Python相比,PHP在web開發中更具優勢,但在數據科學領域不如Python;與Java相比,PHP在企業級應用中表現較差,但在web開發中更靈活;與JavaScript相比,PHP在後端開發中更簡潔,但在前端開發中不如JavaScript。

PHP和Python:代碼示例和比較 PHP和Python:代碼示例和比較 Apr 15, 2025 am 12:07 AM

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。

See all articles