本人自己用PHP原生開發的微信SDK包,有興趣得可以了解一下,可以通過composer安裝,或者碼云下載,感興趣的可以加Q群:735713840 相互討論
專案地址:https://gitee.com/Taurus12C/wechat
使用詳情見 index.php 檔案內注釋
開發中使用本人申請的微信測驗號,如需自己體驗可前往 微信測驗號申請地址 申請
專案還在開發階段,如遇問題請聯系我.
目錄結構
|—— cache 檔案快取驅動存盤空間
|—— lib 包主檔案夾
| |—— cache 快取驅動
| |—— core 核心檔案
| |—— http 介面請求驅動
| |—— Cache.php 快取類檔案
| |—— Config.php 配置獲取類
| |—— Http.php 介面請求類
| |—— Wechat.php 主類
|—— vendor composer依賴
|—— config.php 組態檔
|—— index.php 方法示例描述
安裝方法
composer require taurus12c/wechat
使用方法
1、開始
配置好包根目錄的config.php檔案,匯入Wechat類,完成微信開發
use wechat\lib\Wechat;
實體化物件
$wechat = new Wechat();
2、鑒權
介面配置服務器驗證方法,一般只需用到一次
$wechat->checkSignature();
獲取微信全域access_token,公眾號給類介面呼叫時所用的access_token
$global_access_token = $wechat->getGlobalAccessToken();
微信網頁授權獲取用戶資訊
$userInfo = $wechat->getUserInfo();
單獨獲取用戶openid,此獲取不跳轉用戶授權界面,靜默授權
$openid = $wechat->getOpenId();
2、自定義選單
//設定公眾號選單,方法形參$data強制陣列,回傳bool型,選單設定方式請遵從微信自定義選單規則
$data = https://www.cnblogs.com/Taurus12C/p/[
"button"=>[
[
"name" =>"按鈕一",
"type" =>"view",
"url" =>"http://www.baidu.com",
],
[
"name" =>"按鈕二",
"sub_button" =>[
[
"name" =>"二級選單1",
"type" =>"view",
"url" =>"http://www.baidu.com"
]
]
]
]
];
$setMenu = $wechat->menu->setMenu($data);
獲取當前自定義選單設定
$getMenu = $wechat->menu->getMenuInfo();
洗掉自定義選單
$delMenu = $wechat->menu->delMenu();
設定個性化選單,data菜單設置樣式,data選單設定樣式,matchrule個性化選單匹配規則,回傳bool型,詳情微信手冊
$data = https://www.cnblogs.com/Taurus12C/p/[
"button"=>[
[
"name" =>"按鈕一",
"type" =>"view",
"url" =>"http://www.baidu.com",
],
[
"name" =>"按鈕二",
"sub_button" =>[
[
"name" =>"二級選單1",
"type" =>"view",
"url" =>"http://www.baidu.com"
]
]
]
],
];
$matchrule = [
"matchrule"=>[
"tag_id"=> "2",
"sex"=> "1",
"country"=> "中國",
"province"=> "廣東",
"city"=> "廣州",
"client_platform_type"=> "2",
"language"=> "zh_CN"
]
];
$setMenuConditional = $wechat->menu->setMenuConditional($data,$matchrule);
獲取個性化選單設定
$getMenuConditionalInfo = $wechat->getMenuConditionalInfo();
3、訊息管理
接收用戶發來的訊息,回傳陣列型別資料,資料內容見微信開發檔案
$msg = $wechat->getMsg();
被動回復文本訊息,引數1:接收方openid 引數2:開發者openid 引數3:發送內容,以下使用接收來的資料
$sendText = $wechat->sendText($msg['FromUserName'],$msg['ToUserName'],'您發送的內容是:'.$msg['Content']);
被動回復圖片訊息,引數1:接收方openid 引數2:開發者openid 引數3:上傳的圖片素材id
$sendImg = $wechat->sendImg($toUserName,$fromUserName,$mediaId);
被動回復語音訊息,引數1:接收方openid 引數2:開發者openid 引數3:上傳的語音素材id
$sendVoice = $wechat->sendVoice($toUserName,$fromUserName,$mediaId);
被動回復視頻訊息,引數1:接收方openid 引數2:開發者openid 引數3:陣列(格式見下方參考)
$content = [
'title' => '', //標題
'desc' => '', //描述
'mediaId' => '', //上傳的素材ID
];
$sendVideo = $wechat->sendVoice($toUserName,$fromUserName,$content);
被動回復音樂訊息,引數1:接收方openid 引數2:開發者openid 引數3:陣列(格式見下方參考)
$content = [
'title' => '', //標題
'desc' => '', //描述
'url' => '', //音樂鏈接
'Hurl' => '', //高品質音樂鏈接,WIFI狀態下默認播放這個
'thumbMediaId' => '', //訊息縮略圖,上傳的圖片素材ID
];
$sendMusic = $wechat->sendVoice($toUserName,$fromUserName,$content);
被動回復圖文訊息,引數1:接收方openid 引數2:開發者openid 引數3:陣列(格式見下方參考)
$articles = [
'第一篇' => [
'title' => '', //標題
'desc' => '', //描述
'picurl' => '', //縮略圖url
'url' => '', //點擊跳轉頁面url
],
'第二篇' => [],
'第三篇' => [],
... //一次性最多發送8篇,數量限制詳情見微信開發檔案
];
$sendNews = $wechat->sendNews($toUserName,$fromUserName,$articles);
4、素材管理
素材上傳提示
圖片(image): 2M,支持PNG\JPEG\JPG\GIF格式
語音(voice):2M,播放長度不超過60s,支持AMR\MP3格式
視頻(video):10MB,支持MP4格式
縮略圖(thumb):64KB,支持JPG格式
上傳圖片臨時素材檔案,引數1:檔案路徑,回傳json格式字串資料內容見微信開發手冊
$tempMedia = $wechat->media->addImgTempMedia($filepath);
上傳語音臨時素材檔案,引數1:檔案路徑,回傳json格式字串資料內容見微信開發手冊
$tempMedia = $wechat->media->addVoiceTempMedia($filepath);
上傳視頻臨時素材檔案,引數1:檔案路徑,回傳json格式字串資料內容見微信開發手冊
$tempMedia = $wechat->media->addVideoTempMedia($filepath);
上傳縮略圖臨時素材檔案,引數1:檔案路徑,回傳json格式字串資料內容見微信開發手冊
$tempMedia = $wechat->media->addThumbTempMedia($filepath);
獲取臨時素材,引數1:素材media_id 圖片素材回傳圖片檔案流字串 視頻素材回傳json格式字串包含視頻url地址,以下示例將獲取的圖片素材檔案流保存為本地檔案
$getTempMedia = $wechat->media->getTempMedia($media_id);
$file = fopen('test.jpg','w+');
fwrite($file,$getTempMedia);
fclose($file);
獲取jssdk上傳的高清語音
$getJssdkMedia = $wechat->media->getJssdkMedia($media_id)
上傳圖片永久素材
$addImgMaterial = $wechat->media->addImgMaterial($file);
上傳語音永久素材
$addVoiceMaterial = $wechat->media->addVoiceMaterial($file);
上傳永久視頻素材,引數1:檔案路徑 引數2:視頻標題 引數3:視頻描述
$addVideoMaterial = $wechat->media->addVideoMaterial($file,$title,$introduction);
上傳永久縮略圖素材
$addThumbMaterial = $wechat->media->addThumbMaterial($file);
上傳圖文永久素材,引數1:圖文內容陣列,回傳素材media_id
$articles = [
[
"title" => 'TITLE', //標題
"thumb_media_id" => 'THUMB_MEDIA_ID', //圖文訊息的封面圖片素材id(必須是永久mediaID)
"author" => 'AUTHOR', //作者
"digest" => 'DIGEST', //圖文訊息的摘要,僅有單圖文訊息才有摘要,多圖文此處為空,如果本欄位為沒有填寫,則默認抓取正文前64個字,
"show_cover_pic" => 'SHOW_COVER_PIC(0 / 1)',//是否顯示封面,0為false,即不顯示,1為true,即顯示
"content" => 'CONTENT', //圖文訊息的具體內容,支持HTML標簽,必須少于2萬字符,小于1M,且此處會去除JS,涉及圖片url必須來源 "上傳圖文訊息內的圖片獲取URL"介面獲取,外部圖片url將被過濾,
"content_source_url"=> 'CONTENT_SOURCE_URL', //圖文訊息的原文地址,即點擊“閱讀原文”后的URL
"need_open_comment" => '1', //Uint32 是否打開評論,0不打開,1打開
"only_fans_can_comment"=> '1' //Uint32 是否粉絲才可評論,0所有人可評論,1粉絲才可評論
],
[
//...
],
//最多八篇
];
$addArticleMaterial = $wechat->media->addArticleMaterial($articles);
上傳圖文訊息內的圖片,回傳圖片url(圖片僅支持jpg/png格式,大小必須在1MB以下)
$addArticleImgMaterial = $wechat->media->addArticleImgMaterial($file);
獲取永久素材,引數1:素材media_ia,回傳 圖文素材視頻素材為json資料,其他則為檔案二進制檔案內容
$getMaterial = $wechat->media->getMaterial($meida_id);
獲取素材總數,回傳json資料型別
$getMaterialCount = $wechat->media->getMaterialCount();
獲取素材串列,引數1:查詢素材型別圖片(image)、視頻(video)、語音(voice)、圖文(news),引數2:從全部素材的該偏移位置開始回傳,0表示從第一個素材回傳,默認0,引數3:回傳素材的數量,取值在1到20之間,默認20,回傳json資料
$getMaterialList = $wechat->media->getMaterialList($type, $offset, $count);
洗掉永久素材
$delMaterial = $wechat->media->delMaterial($media_id);
5、用戶管理
創建用戶標簽,引數1:標簽名稱
$tag = $wechat->user->createTag($name);
獲取已創建的標簽
$tagList = $wechat->user->tagList();
修改標簽名稱,引數1:要修改的標簽ID,引數2:修改后的標簽名稱
$upTag = $wechat->user->upTag($id,$name);
洗掉標簽,引數1:標簽ID
$delTag = $wechat->user->delTag($id);
獲取標簽下粉絲串列,引數1:標簽ID,引數2:第一個拉取的OPENID,不填默認從頭開始拉取
$tagUserList = $wechat->user->tagUserList($id,$offset);
批量為用戶打標簽,引數1:openid陣列,引數2:標簽ID
$openid_list=[
//粉絲串列
"ocYxcuAEy30bX0NXmGn4ypqx3tI0",
"ocYxcuBt0mRugKZ7tGAHPnUaOW7Y"
];
$tagUser = $wechat->user->tagUser($openid_list,$id);
批量為用戶取消標簽,引數1:openid陣列,引數2:標簽ID
$openid_list=[
//粉絲串列
"ocYxcuAEy30bX0NXmGn4ypqx3tI0",
"ocYxcuBt0mRugKZ7tGAHPnUaOW7Y"
];
$tagUserDel = $wechat->user->tagUserDel($openid_list,$id);
獲取用戶身上的標簽串列,引數1:openid
$userTag = $wechat->user->userTag($openid);
指定用戶設定備注名,引數1:openid,引數2:備注名
$userRemark = $wechat->user->userRemark($openid,$remark);
獲取用戶基本資訊(UnionID機制),引數1:openid,引數2:國家地區語言版本,zh_CN 簡體,zh_TW 繁體,en 英語(不填默認簡中)
$userBasicInfo = $wechat->user->userBasicInfo($openid,$language);
獲取公眾號的關注者串列,引數1:第一個拉取的OPENID,不填默認從頭開始拉取
$getUserList = $wechat->user->getUserList($next_openid);
獲取公眾號的黑名單串列
$getBlackList = $wechat->user->getBlackList();
拉黑用戶,引數1:需要拉入黑名單的用戶的openid,一次拉黑最多允許20個
$openid_list=[
//粉絲串列
"ocYxcuAEy30bX0NXmGn4ypqx3tI0",
"ocYxcuBt0mRugKZ7tGAHPnUaOW7Y"
];
$setBlackList = $wechat->user->setBlackList($openid_list);
取消拉黑用戶,引數1:需要拉入黑名單的用戶的openid,一次拉黑最多允許20個
$openid_list=[
//粉絲串列
"ocYxcuAEy30bX0NXmGn4ypqx3tI0",
"ocYxcuBt0mRugKZ7tGAHPnUaOW7Y"
];
$delBlackList = $wechat->user->delBlackList($openid_list);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/56979.html
標籤:PHP
上一篇:php開發中emoji表情的問題3種方法輕松處理【轉】
下一篇:PHP 學習筆記
