热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHP微信开发包,微信开发SDKTaurus12C

本人自己用PHP原生开发的微信SDK包,有兴趣得可以了解一下。可以通过composer安装,或者码云下载。感兴趣的可以加Q群:735713840相互讨论项目地址:https

PHP微信开发包,微信开发SDK

本人自己用PHP原生开发的微信SDK包,有兴趣得可以了解一下。可以通过composer安装,或者码云下载。 项目地址:https://gitee.com/Taurus12C/wechat

本人自己用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 = [
     "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();


设置个性化菜单,datadata菜单设置样式,matchrule个性化菜单匹配规则,返回bool型,详情微信手册

$data = [
    "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);

 


推荐阅读
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • HTML学习02 图像标签的使用和属性
    本文介绍了HTML中图像标签的使用和属性,包括定义图像、定义图像地图、使用源属性和替换文本属性。同时提供了相关实例和注意事项,帮助读者更好地理解和应用图像标签。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 本文介绍了在Ubuntu系统中清理残余配置文件和无用内容的方法,包括清理残余配置文件、清理下载缓存包、清理不再需要的包、清理无用的语言文件和清理无用的翻译内容。通过这些清理操作可以节省硬盘空间,提高系统的运行效率。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了markdown[软件代理设置]相关的知识,希望对你有一定的参考价值。 ... [详细]
  • HyperledgerComposer环境安装1.安装基本软件包**如果使用Linux安装HyperledgerComposer,请注意以下建议:以 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文介绍了在Android开发中使用软引用和弱引用的应用。如果一个对象只具有软引用,那么只有在内存不够的情况下才会被回收,可以用来实现内存敏感的高速缓存;而如果一个对象只具有弱引用,不管内存是否足够,都会被垃圾回收器回收。软引用和弱引用还可以与引用队列联合使用,当被引用的对象被回收时,会将引用加入到关联的引用队列中。软引用和弱引用的根本区别在于生命周期的长短,弱引用的对象可能随时被回收,而软引用的对象只有在内存不够时才会被回收。 ... [详细]
  • 解决Sharepoint 2013运行状况分析出现的“一个或多个服务器未响应”问题的方法
    本文介绍了解决Sharepoint 2013运行状况分析中出现的“一个或多个服务器未响应”问题的方法。对于有高要求的客户来说,系统检测问题的存在是不可接受的。文章详细描述了解决该问题的步骤,包括删除服务器、处理分布式缓存留下的记录以及使用代码等方法。同时还提供了相关关键词和错误提示信息,以帮助读者更好地理解和解决该问题。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
author-avatar
xiaodanzhang
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有