91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php微信公眾平臺開發類的示例分析

發布時間:2021-09-02 11:43:30 來源:億速云 閱讀:137 作者:小新 欄目:開發技術

這篇文章主要介紹php微信公眾平臺開發類的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

具體分析如下:

ThinkWechat.php類文件如下:

<?php
class Wechat {
 /**
 * 微信推送過來的數據或響應數據
 * @var array
 */
 private $data = array();
 /**
 * 構造方法,用于實例化微信SDK
 * @param string $token 微信開放平臺設置的TOKEN
 */
 public function __construct($token) {
 $this->auth($token) || exit;
 if(!empty($_GET['echostr'])){
  exit($_GET['echostr']);
 } else {
  try
  {
  $xml = file_get_contents("php://input");
  $xml = new SimpleXMLElement($xml);
  $xml || exit;
  foreach ($xml as $key => $value) {
   $this->data[$key] = strval($value);
  }
  }catch(Exception $e){
  }
 }
 }
 /**
 * 獲取微信推送的數據
 * @return array 轉換為數組后的數據
 */
 public function request(){
 return $this->data;
 }
 /**
 * * 響應微信發送的信息(自動回復)
 * @param string $to 接收用戶名
 * @param string $from 發送者用戶名
 * @param array $content 回復信息,文本信息為string類型
 * @param string $type 消息類型
 * @param string $flag 是否新標剛接受到的信息
 * @return string  XML字符串
 */
 public function response($content, $type = 'text', $flag = 0){
 /* 基礎數據 */
 $this->data = array(
  'ToUserName' => $this->data['FromUserName'],
  'FromUserName' => $this->data['ToUserName'],
  'CreateTime' => time(),
  'MsgType' => $type,
 );
 /* 添加類型數據 */
 $this->$type($content);
 /* 添加狀態 */
 $this->data['FuncFlag'] = $flag;
 /* 轉換數據為XML */
 $xml = new SimpleXMLElement('<xml></xml>');
 $this->data2xml($xml, $this->data);
 exit($xml->asXML());
 }
 /**
 * 回復文本信息
 * @param string $content 要回復的信息
 */
 private function text($content){
 $this->data['Content'] = $content;
 }
 /**
 * 回復音樂信息
 * @param string $content 要回復的音樂
 */
 private function music($music){
 list(
  $music['Title'], 
  $music['Description'], 
  $music['MusicUrl'], 
  $music['HQMusicUrl']
 ) = $music;
 $this->data['Music'] = $music;
 }
 /**
 * 回復圖文信息
 * @param string $news 要回復的圖文內容
 */
 private function news($news){
 $articles = array();
 foreach ($news as $key => $value) {
  list(
  $articles[$key]['Title'],
  $articles[$key]['Description'],
  $articles[$key]['PicUrl'],
  $articles[$key]['Url']
  ) = $value;
  if($key >= 9) { break; } //最多只允許10調新聞
 }
 $this->data['ArticleCount'] = count($articles);
 $this->data['Articles'] = $articles;
 }
 /**
 * 數據XML編碼
 * @param object $xml XML對象
 * @param mixed $data 數據
 * @param string $item 數字索引時的節點名稱
 * @return string
 */
 private function data2xml($xml, $data, $item = 'item') {
 foreach ($data as $key => $value) {
  /* 指定默認的數字key */
  is_numeric($key) && $key = $item;
  /* 添加子元素 */
  if(is_array($value) || is_object($value)){
  $child = $xml->addChild($key);
  $this->data2xml($child, $value, $item);
  } else {
  if(is_numeric($value)){
   $child = $xml->addChild($key, $value);
  } else {
   $child = $xml->addChild($key);
   $node = dom_import_simplexml($child);
   $node->appendChild($node->ownerDocument->createCDATASection($value));
  }
  }
 }
 }
 /**
 * 對數據進行簽名認證,確保是微信發送的數據
 * @param string $token 微信開放平臺設置的TOKEN
 * @return boolean true-簽名正確,false-簽名錯誤
 */
 private function auth($token){
 if(empty($_GET['signature'])) return;
 /* 獲取數據 */
 $data = array($_GET['timestamp'], $_GET['nonce'], $token);
 $sign = $_GET['signature'];
 /* 對數據進行字典排序 */
 sort($data,SORT_STRING);
 /* 生成簽名 */
 $signature = sha1(implode($data));
 return $signature === $sign;
 }
}

以上是“php微信公眾平臺開發類的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

牟定县| 五指山市| 长沙县| 托克托县| 贵定县| 宕昌县| 兴国县| 沅江市| 嘉善县| 鹰潭市| 惠安县| 巨鹿县| 上思县| 清徐县| 南宁市| 洛南县| 黔西| 高青县| 咸丰县| 楚雄市| 军事| 普陀区| 漳平市| 枣庄市| 民权县| 南岸区| 屏山县| 清远市| 淅川县| 德化县| 辽阳县| 稷山县| 南华县| 华安县| 米脂县| 惠州市| 长治县| 余庆县| 宜兰市| 自治县| 民丰县|