如何用php實(shí)現(xiàn)簡(jiǎn)單微信文本通訊

這篇文章主要講解了“如何用php實(shí)現(xiàn)簡(jiǎn)單微信文本通訊”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“如何用php實(shí)現(xiàn)簡(jiǎn)單微信文本通訊”吧!

創(chuàng)新互聯(lián)客戶idc服務(wù)中心,提供綿陽(yáng)機(jī)房托管、成都服務(wù)器、成都主機(jī)托管、成都雙線服務(wù)器等業(yè)務(wù)的一站式服務(wù)。通過(guò)各地的服務(wù)中心,我們向成都用戶提供優(yōu)質(zhì)廉價(jià)的產(chǎn)品以及開放、透明、穩(wěn)定、高性價(jià)比的服務(wù),資深網(wǎng)絡(luò)工程師在機(jī)房提供7*24小時(shí)標(biāo)準(zhǔn)級(jí)技術(shù)保障。

一、準(zhǔn)備工作

  1. 注冊(cè)開發(fā)者賬號(hào)并創(chuàng)建應(yīng)用

在進(jìn)入微信公眾平臺(tái)開發(fā)頁(yè)面之前,需要有一個(gè)微信賬號(hào)和一個(gè)已認(rèn)證的公眾號(hào)。創(chuàng)建公眾號(hào)后需要到“開發(fā)-基本配置”頁(yè)面獲取公眾號(hào)的AppID和AppSecret,同時(shí)在“服務(wù)器配置”中設(shè)置開發(fā)者模式的url和token。

  1. 安裝必要的PHP庫(kù)

使用PHP實(shí)現(xiàn)微信通訊需要安裝PHP的curl擴(kuò)展庫(kù)和simplexml擴(kuò)展庫(kù)。在Linux系統(tǒng)下,使用命令 sudo apt-get install php-curl php-simplexml 即可進(jìn)行安裝。

  1. 搭建開發(fā)環(huán)境

使用任何一種代碼編輯器搭建開發(fā)環(huán)境,建議使用PHPStorm或Sublime Text。代碼中用到的URL和Token等需要與微信公眾號(hào)的配置相對(duì)應(yīng)。

二、獲取微信用戶發(fā)送的文本消息

在微信公眾號(hào)的“服務(wù)器配置”中必須配置URL和Token,URL指向我們編寫的php接收消息的處理程序,Token是與URL對(duì)應(yīng)的身份驗(yàn)證。

文本消息的接受和處理過(guò)程如下:

  1. 驗(yàn)證消息的確來(lái)自微信服務(wù)器

當(dāng)用戶向公眾號(hào)發(fā)送消息時(shí),在微信服務(wù)器端會(huì)將消息發(fā)送到您事先填寫的URL上,如果在“服務(wù)器配置”中開啟了“接收消息并打印消息加密前的XML”選項(xiàng),則會(huì)馬上在頁(yè)面上打印出這個(gè)XML文件。以下代碼就是用來(lái)驗(yàn)證消息是否來(lái)自微信服務(wù)器的函數(shù)。

define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
if (!isset($_GET['echostr'])) {
$wechatObj->responseMsg();
} else {
$wechatObj->valid();
}
class wechatCallbackapiTest
{
public function valid()
{
$echoStr = $_GET["echostr"];
if ($this->checkSignature()) {
echo $echoStr;
exit;
}
}
private function checkSignature()
{
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr);
$tmpStr = implode($tmpArr);
$tmpStr = sha1($tmpStr);
if ($tmpStr == $signature) {
return true;
} else {
return false;
}
}
}

以上代碼邏輯非常簡(jiǎn)單,當(dāng)我們?cè)L問(wèn)這個(gè)php處理程序時(shí),如果訪問(wèn)帶有echostr參數(shù)的url,會(huì)執(zhí)行valid()函數(shù)。在這個(gè)函數(shù)里判斷signature的值是否合法,如果合法則返回 echostr的值。如果訪問(wèn)的url沒(méi)有echostr參數(shù),那么直接執(zhí)行 responseMsg()函數(shù)。

  1. 回復(fù)文本消息

回復(fù)文本消息需要在微信公眾號(hào)“服務(wù)器配置”中配置URL和Token,URL指向我們編寫的php處理程序,Token是與URL對(duì)應(yīng)的身份驗(yàn)證。

private function receiveText($postObj)
{
$content = "歡迎您關(guān)注XX公司官方微信公眾號(hào),我們會(huì)竭誠(chéng)為您服務(wù)!";
$fromUsername = $postObj->FromUserName;
$toUsername = $postObj->ToUserName;
$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>";
$msgType = "text";
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $content);
echo $resultStr;
}

以上代碼里的receiveText函數(shù)可以接收用戶發(fā)送的文本消息,并回復(fù)固定的歡迎文字。您可以根據(jù)業(yè)務(wù)需求更改回復(fù)的文本內(nèi)容。

感謝各位的閱讀,以上就是“如何用php實(shí)現(xiàn)簡(jiǎn)單微信文本通訊”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)如何用php實(shí)現(xiàn)簡(jiǎn)單微信文本通訊這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

新聞標(biāo)題:如何用php實(shí)現(xiàn)簡(jiǎn)單微信文本通訊
標(biāo)題來(lái)源:http://bm7419.com/article48/jdeihp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司網(wǎng)站建設(shè)、動(dòng)態(tài)網(wǎng)站、微信公眾號(hào)微信小程序、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司