Heim >WeChat-Applet >WeChat-Entwicklung >Vollständiges Tutorial zur Entwicklung eines öffentlichen WeChat-Kontos 1

Vollständiges Tutorial zur Entwicklung eines öffentlichen WeChat-Kontos 1

不言
不言Original
2018-05-14 15:27:4893008Durchsuche

Der Inhalt dieses Artikels ist ein vollständiges Tutorial zur Entwicklung eines öffentlichen WeChat-Kontos. Jetzt kann ich es mit allen teilen, die es brauchen.

Aus beruflichen Gründen In den letzten zwei Jahren wurden viele Projekte für offizielle WeChat-Konten und Miniprogramme produziert. Deshalb habe ich vor, ein umfassendes Produktions-Tutorial zu schreiben. Das beste Tutorial ist natürlich die Dokumentation der WeChat-Arbeitsplattform. Ich werde hier nur über den Produktionsprozess in meiner Arbeit sprechen. Ich hoste den Quellcode aller verwandten Artikel auf meinem eigenen Github. Willkommen zum Folgen: Klicken Sie auf die Adresse, um den Link zu öffnen. Beginnen wir mit unserem Tutorial.

1. Der Unterschied zwischen WeChat und öffentlichen Plattformen:

WeChat: eine Echtzeit-Chat-Software, eine Eins-zu-Eins-Beziehung

Öffentliche WeChat-Plattform: eine Eins-zu-Eins-Beziehung -zu-viele-Beziehung.

2. Der Unterschied zwischen Abonnementkonto und Dienstkonto:

Abonnementkonto: 1 Nachrichten können täglich an Einzelpersonen oder Medien in Gruppen gesendet werden Es gibt kein Standardmenü zur Anpassung. Servernummer: Für Unternehmen oder Banken können jeden Monat 4 Nachrichten in großen Mengen versendet werden, standardmäßig mit einem benutzerdefinierten Menü. Wenn es sich bei der Betreibereinheit um eine Organisation handelt (z. B. ein Unternehmen, Medien oder eine Wohltätigkeitsorganisation), können Sie ein Dienstkonto beantragen. Betriebseinheiten, bei denen es sich um Organisationen und Einzelpersonen handelt, können Abonnementkonten beantragen, Einzelpersonen können jedoch keine Dienstkonten beantragen.

3. Zwei Modi der öffentlichen Plattform:

1, Bearbeitungsmodus: Verwenden Sie direkt die von der öffentlichen WeChat-Plattform bereitgestellten Hintergrundoperationen für die Benutzerinteraktion. Der Bearbeitungsmodus kann in den folgenden Szenarien verwendet werden: Betreiber ohne Entwicklungskapazitäten, hauptsächlich öffentliche Konten für Markenwerbung, Nachrichtenmedien und Self-Service-Kundenservice, In der frühen Betriebsphase sind viele Funktionen nicht erforderlich. Entwicklungsmodus-Systemaktualisierungen, Ausfälle und andere besondere Umstände

2 Schnittstellencode zur Umsetzung der Benutzeranforderungen Kommunikation

4.Vorbereitung für die öffentliche WeChat-Plattform:

Registrieren Sie sich für die öffentliche Plattform und verfügen Sie über einen Online-Server

5. Lernen Sie den Bearbeitungsmodus kennen:

Prinzip:

5.1 Massennachrichten:

Objekte und Materialien für Massennachrichten auswählen:


5.2: Benutzerdefiniertes Menü:

Benutzerdefiniertes Menü aktivieren und aktivieren:


Klicken Sie hier, um die Einstellungsoberfläche anzuzeigen und aufzurufen:



5.3 Automatische Antwort:


Ich denke, dass viele Leute ihn nutzen können Tatsächlich ähnelt es der Art und Weise, wie wir normalerweise Artikel und Beiträge in Foren bearbeiten.

6. Entwicklermodus

Prinzip:


6.1 Der erste Schritt besteht darin, den Entwicklermodus zu aktivieren:

Hinweis: Nach dem Einschalten des Entwicklermodus können einige Funktionen im Bearbeitungsmodus nicht normal verwendet werden. Das heißt, es besteht ein Konflikt zwischen dem Entwicklermodus und dem Editormodus. Öffnen Sie die Einstellungsoberfläche:


Konfiguration ändern:


Das Einstellungsergebnis ist wie unten dargestellt: Geben Sie Ihre Serverdateiadresse und Ihr Token ein, klicken Sie auf Senden und bestätigen Sie. Nach der Übermittlung und Überprüfung gelangen Sie in den Entwicklermodus



6.2 Mein Online-Bestätigungscode lautet wie folgt:


public function valid(){
//获取随机字符串
$echoStr = input("echostr");
if($echoStr){
// 验证接口的有效性,由于接口有效性的验证必定会传递echostr 参数
if($this ->checkSignature()){
echo $echoStr;
exit;
}
}else{
$this->responseMsg();
}
}
protected function checkSignature()
{
// 微信加密签名
$signature = input("signature");
$timestamp = input("timestamp");//时间戳
$nonce =input("nonce");//随机数
$token = "weixin";  //token值,必须和你设置的一样
$tmpArr =array($token,$timestamp,$nonce);
sort($tmpArr,SORT_STRING);
$tmpStr = implode($tmpArr);
$tmpStr =sha1($tmpStr);
if($tmpStr == $signature){
return true;
}else{
return false;
}
}

Bezüglich der Variablenquellen im obigen Code verfügt WeChat über detaillierte Anweisungen und das öffentliche Konto I Gebaut Es werden die PHP7.0-Version und das TP5.0-Framework verwendet. Erkläre es hier.

Der obige Code wird nur einmal ausgeführt. Nach dem Einschalten des Entwicklermodus wird er nicht ausgeführt. Nur die

responseMsg

Versuchen wir zunächst, einen Testcode hochzuladen, um auf eine SMS zu antworten und zu sehen, ob es eine Antwort gibt. Der Code lautet wie folgt:


public function responseMsg()
{
        //get post data, May be due to the different environments
        $postStr = file_get_contents('php://input');    
  //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, 'SimpleXMLElement', 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;
}
}
Das Ergebnis ist wie folgt:

, aufgrund der Web-Autorisierungsbeschränkungen von WeChat können wir hier ein Testkonto beantragen. Das oben erwähnte Einschalten des Entwicklermodus ist dasselbe. Beantragen Sie einfach ein Testkonto. Wo Sie sich bewerben können:


Wenn der obige Code erscheint, bedeutet das, dass wir den Test erfolgreich durchgeführt haben. Als nächstes beginnen wir, den Wert von access_token zu ermitteln. Dieser Parameter ist für uns sehr wichtig. Da

access_token

die global eindeutigen Anmeldeinformationen für den Schnittstellenaufruf des öffentlichen Kontos sind, muss das öffentliche Konto beim Aufruf jeder Schnittstelle access_token verwenden. Entwickler müssen es ordnungsgemäß speichern. Die Speicherung von access_token muss mindestens 512 Zeichenplatz reservieren. Die Gültigkeitsdauer von access_token beträgt derzeit 2 Stunden und muss regelmäßig aktualisiert werden. Bei wiederholtem Erwerb wird der zuletzt erhaltene access_token ist ungültig. access_token ist die Identitätsauthentifizierung. Andere Schnittstellen müssen diesen Wert grundsätzlich zur Überprüfung verwenden.

7.access_token-Erwerb: (kann lokal getestet werden)

7.1 Schnittstellenbeschreibung anzeigen:


Get access_tokenMethode 1:


Die Ergebnisse sind wie folgt:


Get access_tokenMethode 2:


Die Ergebnisse sind wie folgt:


Wir haben begonnen, den obigen Code zu kapseln, da access_token dies kann Rufen Sie nur 2000 Mal am Tag an, daher müssen wir es zwischenspeichern, damit wir den Wiederverwendungseffekt erzielen können,

7.2:curl封装发送请求和获取access_token封装:


// 获取请求的地址的方法

i

f(!function_exists("http_curl")){
function http_curl($url,$data =array(),$method ="get",$returnType ="json")
{
//1.开启会话
$ch = curl_init();
//2.设置参数
curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
if($method!="get"){
curl_setopt($ch,CURLOPT_POST,TRUE);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
}
curl_setopt($ch,CURLOPT_URL,$url);
//执行会话
$json = curl_exec($ch);
curl_close($ch);
if($returnType == "json"){
return json_decode($json,true);
}
return $json;
}
}
if(!function_exists(&#39;get_access_token&#39;)){
function get_access_token()
{
$appid = "wx1ba8f59d9e2c0be0"; //微信的appid
$secret ="9e65155599fb9ec047455e197ff6e121"; //微信的开发者密钥
// 读取缓存中的内容
include_once "MyMemcache.php";  //引入缓存方法文件
$obj = new \MyMemcache("47.104.71.253");
$value = $obj ->get($appid);
if(!$value){
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret;
$result = http_curl($url);
$value = $result[&#39;access_token&#39;];
$obj->set($appid,$value,7000);
}
return $value;
}
}

上述代码就是我对这两个方法的封装,其中我们用到了缓存技术:缓存的方法如下:


// memcache操作类

class MyMemcache{
public $conn;
public $isMemcache =true;
public function __construct($host="127.0.0.1",$port=&#39;11211&#39;)
{
//  建立连接
if(class_exists(&#39;MyMemcache&#39;)){
$obj =new \Memcache();
}else{
$this ->isMemcache =false;
$obj =new \Memcached();
}
$obj ->addServer($host,$port);
$this ->conn =$obj;
}
//获取数据    
public function get($key)
{
return $this->conn->get($key);
}
//设置数据
public function set($key,$value,$expire=0)
{
if($this->isMemcache){
$this->conn->set($key,$value,0,$expire);
}else{
// Memcached扩展的操作方式
$this->conn->set($key,$value,$expire);
}
}
}

结合上述的三个方法,我们就可以实现获取access_token的值,并保存在缓存系统,7000s去重新获取一次。

上述的步骤完成,我们就算是对微信公众号的开发的基本准备全部准备完毕,接下来就开始对着微信开发者文档进行开发和数据的替换了。第一节先讲述到这里.....

相关文章推荐:
1.微信公众号开发完整教程二
2.微信公众号开发完整教程三
3.微信公众号开发完整教程四
相关视频推荐:
1.php微信接口开发实战项目视频教程 聊天机器人+微信支付
2.开发微信小程序视频教程

Das obige ist der detaillierte Inhalt vonVollständiges Tutorial zur Entwicklung eines öffentlichen WeChat-Kontos 1. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:WeChat-API-SchnittstelleNächster Artikel:WeChat-API-Schnittstelle