icatholic / weixin
一个简单的微信PHP客户端库
dev-master
2023-03-14 07:50 UTC
Requires
- php: ^7.1||^8.0
- guzzle/http: ^3.8.1
- shardj/zf1-future: ^1.22.0
This package is not auto-updated.
Last update: 2024-09-24 15:08:40 UTC
README
这是一个PHP (>= 5.2.11) 客户端库,用于微信公众平台的开发模式通用接口API(Weixin)
此库在get post upload download方面依赖于zend framework1.12,如果项目非zend framework1.12,请在composer中引用相关的依赖关系
加载库
微信依赖于PHP的自动加载功能来在需要时加载其文件,并符合PSR-0标准,这使得它与大多数PHP框架兼容。当使用Composer管理依赖时,自动加载会自动处理,但如果你打算在一个没有PSR-0兼容自动加载设施的项目或脚本中使用它,你也可以利用它自己的自动加载器
// Prepend a base path if Weixin is not available in your "include_path". require 'Weixin/Autoloader.php'; Weixin\Autoloader::register();
你可以通过运行bin/create-phar从仓库轻松创建一个phar存档。生成的phar包含一个定义Weixin自动加载函数的stub,因此你只需要require这个phar就可以开始使用这个库了。另外,也可以通过运行bin/create-single-file生成一个包含所有类的单个PHP文件,就像Weixin的旧版本一样,但这种做法不鼓励。
调用示例
try { $appid="xxxxxxxxxxxx";//appID $secret="xxxxxxxxxxxx";//appsecret $verifyToken = 'XXXXXXXXX'; //token的获取 $objToken = new \Weixin\Token\Server($appid,$secret); $arrAccessToken = $objToken->getAccessToken(); $strAccessToken = $arrAccessToken['access_token']; //微信client对象 $client = new Weixin\Client(); //微信推送服务器验证 $client->verify($verifyToken); //对于推送过来的消息,进行签名校验 $client->checkSignature($verifyToken); $client->setAccessToken($strAccessToken); //通过微信推送过来的消息,获取相应的两个参数 $client->setFromAndTo($formUserName,$toUserName); //被动消息 $client->getMsgManager()->getReplySender()->sendText("测试"); //主动客服消息 $client->getMsgManager()->getCustomSender()->sendText("测试"); //下载多媒体文件 $mediaId= "xxxxxxxxxxxxxxx"; $rst= $client->getMediaManager()->get($mediaId); echo $rst['name'];//文件名称 例如mediaId.jpg echo $rst['bytes'];//文件内容,二进制 echo "<br/>"; //获取微信用户信息 $userinfo =$client->getUserManager()->getUserInfo($fromUserName); print_r($userinfo); echo "<br/>"; //生成ticket $scene_id =1; $ticketInfo = $client->getQrcodeManager()->create($scene_id,false); print_r($ticketInfo); echo "<br/>"; //获取ticket $ticket = urlencode($ticketInfo['ticket']); $url = $client->getQrcodeManager()->getQrcodeUrl($ticket); echo $url; echo "<br/>"; $articles = array(); $articles[] = array( "thumb_media_id" => "o9S42TG72uC480YMC99_YKLNtaxi7FtzlWIBx2vnL1pw6zJhS5Abtv880YUzoMOl", "author" => "ben", "title" => "扑刺客打刺客", "content_source_url" => "http://www.baidu.com/", "content" => "扑刺客打刺客", "digest" => "扑刺客打刺客", "show_cover_pic" => "1" ); $articles[] = array( "thumb_media_id" => "o9S42TG72uC480YMC99_YKLNtaxi7FtzlWIBx2vnL1pw6zJhS5Abtv880YUzoMOl", "author" => "ben", "title" => "扑刺客打刺客", "content_source_url" => "http://www.baidu.com/", "content" => "扑刺客打刺客", "digest" => "扑刺客打刺客", "show_cover_pic" => "1" ); //上传图文消息素材 $rst = $client->getMediaManager()->uploadNews($articles); print_r($rst); echo "<br/>"; //上传视频素材 $rst = $client->getMediaManager()->uploadVideo("D3uOxo1WNW52dVi4wZE1jwvqySduzVzCApTOmR7pL2hguFECCk2fq82cOxyewF3X", "TITLE", "Description"); print_r($rst); echo "<br/>"; //根据分组进行群发 $group_id = '0'; // 发送文本 $rst = $client->getMsgManager() ->getMassSender() ->sendTextByGroup($group_id, 'hello'); print_r($rst); echo "<br/>"; // 发送图片 $rst = $client->getMsgManager() ->getMassSender() ->sendImageByGroup($group_id, 'PTI4V7PGaH2mXtdArQsih6daoyNnEJRHteXo_sJO5yGQQdscEXi7ONRtXsucRYEC'); print_r($rst); echo "<br/>"; // 发送音频 $rst = $client->getMsgManager() ->getMassSender() ->sendVoiceByGroup($group_id, 'yntrDDxEaYYzlBKGheHckrJyszWYL3-a0hEXtYt2oy0dfhWz2hjIZypXnupuEnMk'); print_r($rst); echo "<br/>"; // 发送视频 $rst = $client->getMsgManager() ->getMassSender() ->sendVideoByGroup($group_id, 'g39F9u52K_06kkFzcLilPgyFOgJufnzZr1E39xRjD1NmIu_iEqNI1Kx92eTxipeS'); print_r($rst); echo "<br/>"; // 发送图文 $rst = $client->getMsgManager() ->getMassSender() ->sendGraphTextByGroup($group_id, 'xjZXFr1U7x8b4MZ3CpkF3UGNddGmpHag6La84uak-bKym27gC-D1N0jmQaGzx9bR'); print_r($rst); echo "<br/>"; //根据OpenID列表群发 $toUsers = array( "oq_9ut1KV35fk7PDFyrfZl3LvVuk", "oq_9ut0Jca_pZA02CFDyuLE0UJCQ" ); // 发送文本 $rst = $client->getMsgManager() ->getMassSender() ->sendTextByOpenid($toUsers, 'hello'); print_r($rst); echo "<br/>"; // 发送图片 $rst = $client->getMsgManager() ->getMassSender() ->sendImageByOpenid($toUsers, 'PTI4V7PGaH2mXtdArQsih6daoyNnEJRHteXo_sJO5yGQQdscEXi7ONRtXsucRYEC'); print_r($rst); echo "<br/>"; // 发送音频 $rst = $client->getMsgManager() ->getMassSender() ->sendVoiceByOpenid($toUsers, 'yntrDDxEaYYzlBKGheHckrJyszWYL3-a0hEXtYt2oy0dfhWz2hjIZypXnupuEnMk'); print_r($rst); echo "<br/>"; // 发送视频 $rst = $client->getMsgManager() ->getMassSender() ->sendVideoByOpenid($toUsers, 'xdJyQzOv2uTjWpickq3sQjGtDRj5mFFb9e-GP4HgV72ZtP_UDO0TnH29aTYLXy5p', 'testing', 'testing'); print_r($rst); echo "<br/>"; // 发送图文 $rst = $client->getMsgManager() ->getMassSender() ->sendGraphTextByOpenid($toUsers, 'xjZXFr1U7x8b4MZ3CpkF3UGNddGmpHag6La84uak-bKym27gC-D1N0jmQaGzx9bR'); print_r($rst); echo "<br/>"; // 删除消息 $rst = $client->getMsgManager() ->getMassSender() ->delete('2347904591'); print_r($rst); echo "<br/>"; } catch (Exception $e) { echo($e->getMessage()); }