php版微信公众平台账号自定义菜单类
微信公众平台服务号可申请自定义菜单了,其它的号暂时不支持自定义菜单了,这个不但可以使用api来操作,还可以直接在后台定义菜单与参数哦。
申请自定义菜单
服务号可以申请自定义菜单;使用QQ登录的公众号,可以升级为邮箱登录;使用邮箱登录的公众号,可以修改登录邮箱;群发消息可以同步到腾讯微博。
微信公众平台账号api程序
<?php //define your token define("TOKEN", "chenxiang"); //改成自己的TOKEN define('APP_ID', ''); //改成自己的APPID define('APP_SECRET', ''); //改成自己的APPSECRET $wechatObj = new wechatCallbackapiTest(APP_ID, APP_SECRET); $wechatObj->Run(); class wechatCallbackapiTest { private $fromUsername; private $toUsername; private $times; private $keyword; private $app_id; private $app_secret; public function __construct($appid, $appsecret) { // code... $this->app_id = $appid; $this->app_secret = $appsecret; } public function valid() { $echoStr = $_GET["echostr"]; if ($this->checkSignature()) { echo $echoStr; exit; } } /** * 运行程序 * @param string $value [description] */ public function Run() { $this->responseMsg(); $arr[] = "您好,这是自动回复,我现在不在,有事请留言,我会尽快回复你的^_^"; echo $this->make_xml("text", $arr); } public function responseMsg() { $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //返回回复数据 if (!empty($postStr)) { $access_token = $this->get_access_token(); //获取access_token $this->createmenu($access_token); //创建菜单 //$this->delmenu($access_token);//删除菜单 $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $this->fromUsername = $postObj->FromUserName; //发送消息方ID $this->toUsername = $postObj->ToUserName; //接收消息方ID $this->keyword = trim($postObj->Content); //用户发送的消息 $this->times = time(); //发送时间 $MsgType = $postObj->MsgType; //消息类型 if ($MsgType == 'event') { $MsgEvent = $postObj->Event; //获取事件类型 if ($MsgEvent == 'subscribe') { //订阅事件 $arr[] = "你好,我是xxx,现在我们是好友咯![愉快][玫瑰]"; echo $this->make_xml("text", $arr); exit; } elseif ($MsgEvent == 'CLICK') { //点击事件 $EventKey = $postObj->EventKey; //菜单的自定义的key值,可以根据此值判断用户点击了什么内容,从而推送不同信息 $arr[] = $EventKey; echo $this->make_xml("text", $arr); exit; } } } else { echo "this a file for weixin API!"; exit; } } /** * 获取access_token */ private function get_access_token() { $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" . $this->app_id . "&secret=" . $this->app_secret; $data = json_decode(file_get_contents($url) , true); if ($data['access_token']) { return $data['access_token']; } else { return "获取access_token错误"; } } /** * 创建菜单 * @param $access_token 已获取的ACCESS_TOKEN */ public function createmenu($access_token) { $url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" . $access_token; $arr = array( 'button' => array( array( 'name' => urlencode("生活查询") , 'sub_button' => array( array( 'name' => urlencode("天气查询") , 'type' => 'click', 'key' => 'VCX_WEATHER' ) , array( 'name' => urlencode("身份证查询") , 'type' => 'click', 'key' => 'VCX_IDENT' ) ) ) , array( 'name' => urlencode("轻松娱乐") , 'sub_button' => array( array( 'name' => urlencode("刮刮乐") , 'type' => 'click', 'key' => 'VCX_GUAHAPPY' ) , array( 'name' => urlencode("幸运大转盘") , 'type' => 'click', 'key' => 'VCX_LUCKPAN' ) ) ) , array( 'name' => urlencode("我的信息") , 'sub_button' => array( array( 'name' => urlencode("关于我") , 'type' => 'click', 'key' => 'VCX_ABOUTME' ) , array( 'name' => urlencode("工作信息") , 'type' => 'click', 'key' => 'VCX_JOBINFORMATION' ) ) ) ) ); $jsondata = urldecode(json_encode($arr)); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $jsondata); curl_exec($ch); curl_close($ch); } /** * 查询菜单 * @param $access_token 已获取的ACCESS_TOKEN */ private function getmenu($access_token) { // code... $url = "https://api.weixin.qq.com/cgi-bin/menu/get?access_token=" . $access_token; $data = file_get_contents($url); return $data; } /** * 删除菜单 * @param $access_token 已获取的ACCESS_TOKEN */ private function delmenu($access_token) { // code... $url = "https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=" . $access_token; $data = json_decode(file_get_contents($url) , true); if ($data['errcode'] == 0) { // code... return true; } else { return false; } } /** *@param type: text 文本类型, news 图文类型 *@param value_arr array(内容),array(ID) *@param o_arr array(array(标题,介绍,图片,超链接),...小于10条),array(条数,ID) */ private function make_xml($type, $value_arr, $o_arr = array( 0 )) { //=================xml header============ $con = "<xml> <ToUserName><![CDATA[{$this->fromUsername}]]></ToUserName> <FromUserName><![CDATA[{$this->toUsername}]]></FromUserName> <CreateTime>{$this->times}</CreateTime> <MsgType><![CDATA[{$type}]]></MsgType>"; //=================type content============ switch ($type) { case "text": $con.= "<Content><![CDATA[{$value_arr[0]}]]></Content> <FuncFlag>{$o_arr}</FuncFlag>"; break; case "news": $con.= "<ArticleCount>{$o_arr[0]}</ArticleCount> <Articles>"; foreach ($value_arr as $id => $v) { if ($id >= $o_arr[0]) break; else null; //判断数组数不超过设置数 $con.= "<item> <Title><![CDATA[{$v[0]}]]></Title> <Description><![CDATA[{$v[1]}]]></Description> <PicUrl><![CDATA[{$v[2]}]]></PicUrl> <Url><![CDATA[{$v[3]}]]></Url> </item>"; } $con.= "</Articles> <FuncFlag>{$o_arr[1]}</FuncFlag>"; break; } //end switch //=================end return============ $con.= "</xml>"; return $con; } 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; } } } ?>

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



1. Der Unterschied zwischen Iterator und foreach ist der polymorphe Unterschied (die unterste Ebene von foreach ist Iterator ein Schnittstellentyp, und es ist egal, ob for und foreach der Typ bekannt ist). 1. Warum heißt es, dass die unterste Ebene von foreach der von Iterator geschriebene Code ist: 2. Der Unterschied zwischen „remove in foreach“ und „iterator“. im Alibaba Java Development Manual, aber in Fall 1 wird kein Fehler gemeldet, und in Fall 2 wird zuerst ein Fehler gemeldet (java. util.ConcurrentModificationException).

Die Schritte für PHP, um die Nummer der foreach-Schleife zu bestimmen: 1. Erstellen Sie ein Array von „$fruits“; 2. Erstellen Sie eine Zählervariable „$counter“ mit einem Anfangswert von 0. 3. Verwenden Sie „foreach“, um eine Schleife durchzuführen durch das Array und Erhöhen Sie den Wert der Zählervariablen im Schleifenkörper und geben Sie dann jedes Element und seinen Index aus. 4. Geben Sie den Wert der Zählervariablen außerhalb der „foreach“-Schleife aus, um zu bestätigen, welches Element die Schleife erreicht.

In diesem Artikel wird ausführlich erläutert, wie PHP nach dem Umdrehen eines Schlüsselwerts ein Array zurückgibt. Der Herausgeber hält dies für recht praktisch, daher teile ich es Ihnen als Referenz mit. Ich hoffe, dass Sie nach dem Lesen dieses Artikels etwas gewinnen können. PHP-Schlüsselwert-Flip Der Array-Schlüsselwert-Flip ist eine Operation für ein Array, bei der die Schlüssel und Werte im Array ausgetauscht werden, um ein neues Array mit dem ursprünglichen Schlüssel als Wert und dem ursprünglichen Wert als Schlüssel zu generieren. Implementierungsmethode In PHP können Sie das Schlüsselwert-Umdrehen eines Arrays mit den folgenden Methoden durchführen: array_flip()-Funktion: Die array_flip()-Funktion wird speziell für Schlüsselwert-Umdrehungsvorgänge verwendet. Es erhält ein Array als Argument und gibt ein neues Array mit vertauschten Schlüsseln und Werten zurück. $original_array=[

In diesem Artikel wird das aktuelle Element im von PHP zurückgegebenen Array ausführlich erläutert. Der Herausgeber hält es für recht praktisch, daher teile ich es Ihnen als Referenz mit. Ich hoffe, dass Sie nach dem Lesen dieses Artikels etwas gewinnen können. Das aktuelle Element in einem PHP-Array abrufen PHP bietet eine Vielzahl von Methoden für den Zugriff auf und die Bearbeitung von Arrays, einschließlich des Abrufens des aktuellen Elements in einem Array. Im Folgenden werden einige häufig verwendete Techniken vorgestellt: 1. Funktion current() Die Funktion current() gibt das Element zurück, auf das der interne Zeiger des Arrays aktuell zeigt. Der Zeiger zeigt zunächst auf das erste Element des Arrays. Verwenden Sie die folgende Syntax: $currentElement=current($array);2.key() Funktion Die Funktion key() gibt das Element zurück, auf das der interne Zeiger des Arrays aktuell zeigt

Unterschiede: 1. for durchläuft jedes Datenelement über den Index, während forEach die Datenelemente des Arrays über das zugrunde liegende JS-Programm durchläuft. 2. for kann die Ausführung der Schleife über das Schlüsselwort break beenden, forEach jedoch nicht . for kann die Ausführung der Schleife steuern, indem es den Wert der Schleifenvariablen steuert, forEach jedoch nicht. 4. for kann Schleifenvariablen außerhalb der Schleife aufrufen, forEach kann jedoch keine Schleifenvariablen außerhalb der Schleife aufrufen ist höher als forEach.

Wie kann ich mit der Funktion forEach die Eigenschaften eines Objekts durchlaufen? In JavaScript müssen wir häufig die Eigenschaften von Objekten durchlaufen. Wenn Sie die Eigenschaften eines Objekts auf prägnante Weise durchlaufen möchten, ist die Funktion forEach eine sehr gute Wahl. In diesem Artikel erklären wir, wie Sie die Funktion forEach verwenden, um die Eigenschaften eines Objekts zu durchlaufen, und stellen spezifische Codebeispiele bereit. Lassen Sie uns zunächst die grundlegende Verwendung der forEach-Funktion verstehen. forEach-Funktion ist Java

In PHP wird die foreach-Anweisung häufig zum Durchlaufen von Arrays und Objekten verwendet. Während der Schleife müssen wir manchmal das aktuelle Element der Schleife abrufen. In diesem Artikel wird erläutert, wie Sie den Indexwert des aktuellen Elements in der PHP-foreach-Schleife abrufen.

Ausführliche Erläuterung der Rolle und Verwendung des Schlüsselworts „break“ in PHP. In der PHP-Programmierung ist „break“ eine Kontrollflussanweisung, die verwendet wird, um die aktuelle Schleife oder Switch-Anweisung zu unterbrechen und aus der Schleife oder dem Switch zu springen. In diesem Artikel werden die Rolle und Verwendung des Schlüsselworts break im Detail vorgestellt. 1. Unterbrechung einer Schleife In einer Schleifenstruktur besteht die Funktion von Unterbrechung darin, die Schleife vorzeitig zu beenden und aus dem Schleifenkörper zu springen, um den Code nach der Schleife auszuführen. Zu den gängigen Schleifenstrukturen gehören for, while und do...while. in der for-Schleife
