Download the PHP package lixuancn/lanewechat without Composer
On this page you can find all versions of the php package lixuancn/lanewechat. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Table of contents
Download lixuancn/lanewechat
More information about lixuancn/lanewechat
Files in lixuancn/lanewechat
Download lixuancn/lanewechat
More information about lixuancn/lanewechat
Files in lixuancn/lanewechat
Vendor lixuancn
Package lanewechat
Short Description LaneWeChat is WeChat development package for PHP,这是一个为快速开发微信应用而生的PHP框架。将微信的开发者功能根据文档进行了封装。为了快速开发的目的,开发者完全不需要要知道具体是如何实现的,只需要简单的调用方法即可
License DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Homepage http://lanewechat.lanecn.com
Package lanewechat
Short Description LaneWeChat is WeChat development package for PHP,这是一个为快速开发微信应用而生的PHP框架。将微信的开发者功能根据文档进行了封装。为了快速开发的目的,开发者完全不需要要知道具体是如何实现的,只需要简单的调用方法即可
License DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Homepage http://lanewechat.lanecn.com
Please rate this library. Is it a good library?
Informations about the package lanewechat
框架名称:LaneWeChat
框架简介:这是一个为快速开发微信应用而生的PHP框架。将微信的开发者功能根据文档进行了封装。为了快速开发的目的,开发者完全不需要要知道具体是如何实现的,只需要简单的调用方法即可
开发语言:PHP
版本要求:原则PHP5.3以上
版本规避:若版本低于PHP5.3,则删除本框架所有页面开头“namespace”的行、删除本框架中所有的“use LaneWeChat”开头的行,删除“LaneWeChat\Core”,修改Autoloader::NAMESPACE_PREFIX='',修改curl.lib.php的\Exception为Exception即可。
命名空间:本框架的命名空间均为LaneWeChat开头。
开源协议:Do What The Fuck You Want To Public License
开发者博客:http://www.lanecn.com
文档地址:http://lanewechat.lanecn.com/
更新日志:
2016-05-05 1.5.4
1、接收数据方式由HTTP_RAW_POST_DATA替换为php://input. HTTP_RAW_POST_DATA在PHP5.6以后就不再推荐使用.
2016-04-26 1.5.4
1、新增生成个性化菜单方法Menu::setPersonalMenuJson($menuListJson)
2、新增生成默认菜单方法Menu::setMenuJson($menuListJson),与原生成默认菜单函数Menu::setMenu($menuList),此函数参数是json字符串
3、新增Environment类, isSae($appname,$accesskey)方法判断所在环境是否是SAE平台。
4、外部类调用的入口,一定是getAccessToken(),所以进入此方法后调用Environment::isSae($appname,$accesskey)判断平台属性,若不是SAE,逻辑不变原用户不受影响,否则根据SAE环境执行不同的获取token的方法。
5、新增AccessToken::_getSae()方法,在SAE平台上根据条件的不同,选择从memcache/文件/数据库中读取access_token.
6、新增AccessToken::_getFromMemcache()方法,在SAE平台上从memcache中读取access_token。
7、新增AccessToken::_getFromFile()方法,从文件中读取access_token。
1) 在获取access_token的过程中需要调用私有方法_existsToken(),_expriseToken()
2) 此方法在其他平台上的可写目录中可以正常执行,因为SAE平台不支持本地创建/写文件,可通过改写此方法在SAE的storage中创建/读/写文件,
个人感觉任何缓存、中间临时交换数据的需求都是不适合使用Storage和KVDB存储的,所以没有添加相关的方法实现(有什么理解不对的请指出)。
8、改写WechatRequest::eventQrsceneSubscribe方法,用户在扫描带参数二维码之后,可根据所带参数实现对用户自动分组的功能
1、修复主动响应的BUG,感谢 晨露微凉<[email protected]> 反馈。
2015-10-21 1.5.3
1、文件上传根据PHP版本增加了CURLFile()类。自PHP5.5以后,废弃了“@文件名”的方式上传文件
2015-06-29 1.5.2
1、在主动发消息模块(responseinitiative.lib.php)pic_url 和 url赋值反了。
2015-04-29 1.5.1
1、新增获取微信服务器IP列表接口。如果需要安全性校验,可以每次判断请求的来源IP。
2、新增接收消息类型:小视频
3、新增 模板消息-设置行业 和 模板消息-获取模板ID
4、高级群发接口-根据分组群发 新增参数is_to_all,使用is_to_all为true且成功群发,会使得此次群发进入历史消息列表。
5、新增 高级群发接口-预览接口【订阅号与服务号认证后均可用】 和 高级群发接口-查询群发消息发送状态【订阅号与服务号认证后均可用】
6、新增 客服帐号管理-获取所有客服账号列表/添加客服账号/修改客服账号/删除客服账号/设置客服头像
7、新增 自动回复-获取自动回复 接口
2014-12-04 1.4.2
1、解决CURL的GET调用在php5.3以下时出现errno=60(CA证书无效)的BUG。(解决人:大志<[email protected]>)
2、文档、注释优化。(zhulin3141)
3、实战演练 - 添加微信自定义菜单 文档场景描述错误
2014-11-05:1.4版本
兼容性:
设置菜单Menu::setMenu($menuList)参数结构和返回值重写,不向下兼容。
根目录下新增lanewechat.php:
在项目用需要使用本SDK的地方,只需要include 'lanewechat/lanewechat.php',然后可以直接ClassName::method()调用即可。
安全性升级:
因为SSL爆出高危漏洞,公众平台在2014.11.30起,将关闭SSLv2,SSLv3版本的支持。根据官方实例,LaneWeChat的CURL类中也将使用curl_setopt($curl, CURLOPT_SSLVERSION, 1)
新增消息体签名加解密验证(EncodingAESKey),默认为空,为空时微信公众号平台会自动生成。也可以开发者自行手动指定。
新增语音消息识别
新增高级群发接口:
1 上传图文消息素材
2 根据分组进行群发,可发送图文消息,文本消息,图片消息,语音消息,视频消息。
3 根据OpenID列表群发,,可发送图文消息,文本消息,图片消息,语音消息,视频消息。
4 删除群发
5 事件推送群发结果
新增模板消息接口:
1、主动推送给用户模板消息的接口
2、被动接收微信服务器发送的关于主动推送模板消息的结果通知。
用户管理接口:
1、新增设置备注名。开发者可以通过该接口对指定用户设置备注名,该接口暂时开放给微信认证的服务号。
网页授权接口:
注意:此access_token与基础支持的access_token不同。
1、新增刷新access_token。由于access_token拥有较短的有效期,当access_token超时后,可以使用refresh_token进行刷新,refresh_token拥有较长的有效期(7天、30天、60天、90天),当refresh_token失效的后,需要用户重新授权。
2、新增scope为snsapi_userinfo的模式下(会在网页弹出一个授权框),拉取用户信息的接口。
3、新增检验授权凭证(access_token)是否有效接口
新增多客服功能:
1、新增将消息转发到多客服接口:在接收到用户发送的消息时,调用ResponsePassive::forwardToCustomService($fromusername, $tousername),微信服务器在收到这条消息时,会把这次发送的消息转到多客服系统。用户被客服接入以后,客服关闭会话以前,处于会话过程中,用户发送的消息均会被直接转发至客服系统。
2、新增获取客服聊天记录接口:在需要时,开发者可以通过获取客服聊天记录接口,获取多客服的会话记录,包括客服和用户会话的所有消息记录和会话的创建、关闭等操作记录。利用此接口可以开发如“消息记录”、“工作监控”、“客服绩效考核”等功能。
自定义菜单:
警告:设置菜单Menu::setMenu($menuList)参数结构和返回值重写,自1.4版本起不向下兼容。
注意:所有新增的菜单类型,仅支持微信iPhone5.4.1以上版本,和Android5.4以上版本的微信用户,旧版本微信用户点击后将没有回应,开发者也不能正常接收到事件推送。
1、新增“scancode_push:扫码推事件”类型菜单
用户点击按钮后,微信客户端将调起扫一扫工具,完成扫码操作后显示扫描结果(如果是URL,将进入URL),且会将扫码的结果传给开发者,开发者可以下发消息。
2、新增“scancode_waitmsg:扫码推事件且弹出‘消息接收中’提示框”类型菜单
用户点击按钮后,微信客户端将调起扫一扫工具,完成扫码操作后,将扫码的结果传给开发者,同时收起扫一扫工具,然后弹出“消息接收中”提示框,随后可能会收到开发者下发的消息。
3、新增“pic_sysphoto:弹出系统拍照发图”类型菜单
用户点击按钮后,微信客户端将调起系统相机,完成拍照操作后,会将拍摄的相片发送给开发者,并推送事件给开发者,同时收起系统相机,随后可能会收到开发者下发的消息。
4、新增“pic_photo_or_album:弹出拍照或者相册发图”类型菜单
用户点击按钮后,微信客户端将弹出选择器供用户选择“拍照”或者“从手机相册选择”。用户选择后即走其他两种流程。
5、新增“pic_weixin:弹出微信相册发图器”类型菜单
用户点击按钮后,微信客户端将调起微信相册,完成选择操作后,将选择的相片发送给开发者的服务器,并推送事件给开发者,同时收起相册,随后可能会收到开发者下发的消息。
6、新增“location_select:弹出地理位置选择器”类型菜单
用户点击按钮后,微信客户端将调起地理位置选择工具,完成选择操作后,将选择的地理位置发送给开发者的服务器,同时收起位置选择工具,随后可能会收到开发者下发的消息。
7、新增了以上6种菜单类型、view(点击跳转链接)的菜单类型的被动响应的支持。默认讲点击菜单的事件推送数据发送文本消息返回给用户。开发者请自行修改。
新增语义理解接口
1、如输入“查一下明天从北京到上海的南航机票”,类型为“flight,hotel”,则返回机票信息。
新增推广支持:
1、新增获取二维码接口。二维码分临时二维码和永久二维码。第一步先获取ticket,第二部是拿ticket获取二维码图片。二维码可以保存为文件,也可以展示预览。
2、新增长链接转短链接接口。
新增实例示范:
1、被动响应用户 - 发送图文消息
2、群发图文消息
3、推送模板消息
4、添加自定义菜单
5、页面展示二维码
关于获取用户信息的新亮点 - unionId:
获取用户信息是根据openId获取,同一个微信用户对于不同的公众号,是不同的openId。那问题就来了,如果你有多个公众号,想要共享一份用户数据,可是同一个用户在不同的公众号是不同的openId,我们无法判断是否是同一个用户,现在微信引入了UnionId的概念。
如果开发者有在多个公众号,或在公众号、移动应用之间统一用户帐号的需求,需要前往微信开放平台(open.weixin.qq.com)绑定公众号后,才可利用UnionID机制来满足上述需求。
在绑定了公众号后,我们根据openId获取用户信息的时候,会新增一个字段“unionid”,只要是同一个用户,在不同的公众号用不同的openId获取用户信息的时候unionid是相同的。
此功能不需要新增/修改代码,只需要在微信开放平台绑定公众号就可以了。仍旧使用获取用户信息接口UserManage::getUserInfo($openId);
2014-10-14:1.2.2版本。新增自动载入函数
2014-08-17:1.2版本。新增自定义菜单功能、新增多媒体上传下载功能。
2014-08-07:1.0版本
文档目录:
1、常识普及。
2、如何安装。
3、初出茅庐。
4、流程分析。
5、牛刀小试。
6、函数详解。
7、实例示范。
常识普及:
一、微信公众账号分两种,一种是订阅号,一种是服务号。
1、订阅号是被动响应用户消息功能,并且每天推送一条消息。
2、服务号是300元/每年认证,被动响应用户消息,主动给用户发送消息,自定义菜单按钮,网页授权等功能,并且每月推送一条消息。
3、订阅号适合消息类,新闻类应用,常常需要推送文章给用户的;服务号适合自助查询等。
4、订阅号被认证后也享用自定义菜单等功能,仍旧是300元/每年
二、专业术语:
1、OpenId:微信服务器并不会告诉公众号用户的微信ID,即使是你的关注者也不行,为了解决开发中唯一标识的问题,微信使用了OpenId,所谓的OpenId,就是用户和微信公众号之间的一种唯一关系。一个用户在一个公众号面前,享用唯一的OpenId,不会和别人重复。换言之,同一个用户在另一个公众号面前,是拥有另一个OpenId的。再直白些就是$openId = md5('用户微信ID+公众号ID')
2、Access_Token:此项只有认证号的功能才会使用的到,Access_token是一个授权标识,即一个授权验证码,一个标识10分钟内有效,10分钟的有效期内公众号的多个关注者可以使用同一个Access_Token。在使用主动给指定用户发送消息、自定义菜单、用户管理和用户组管理等功能的时候,每次操作需要给微信服务器以参数的形式附带Access_token。
3、Access_Token网页版:本Access_Token网页版授权时会使用到,和2中的Access_Toekn是不同的东西,不过使用我们的LaneWeChat微信快速开发框架是不需要了解这些的。Access_Token网页版是说在用户打开你的公众号提供的网页的时候,你的网页需要获取用户的OpenId、昵称、头像等信息的时候授权用的。同时,本Access_Token网页版有两种用法,一种是打开网页后弹出一个授权框,让用户点击是否授权,界面像主流的开放平台授权界面(比如QQ登陆某网站,支付宝账号登陆某网站等);另一种是不需要弹出授权框仍旧可以获取用户信息,用法可以在实例中看到。
如何安装:
1、本框架以代码包的插件形式放在项目的目录中即可。调用时只需要include 'lanewechat/lanewechat.php'即可。如:
二、被动响应用户 - 发送图文消息
场景描述:用户给我们的公众号发送了一条消息,我们的公众号被动响应,给用户回复一条图文消息。
场景举例:用户给我们的公众号发送了“周末聚会”,我们的公众号给用户回复了一条图文消息,有十条,每一条都是一个标题和图片,点击可以连接到一个地址。
代码:
//图文列表逐条放入数组
$tuwenList = array();
$tuwenList[] = array(
'title' => '标题:聚会地点一故宫',
'description' => '描述:还有人去故宫聚会啊',
'pic_url' => 'http://www.gugong.com/logo.jpg',
'url' => 'http://www.lanecn.com/',
);
$tuwenList[] = array(
'title' => '标题:聚会地点一八达岭',
'description' => '描述:八达岭是聚会的吗?是去看人挤人的!',
'pic_url' => 'http://www.badaling.com/logo.jpg',
'url' => 'http://www.lanecn.com/',
);
$item = array();
//构建图文列表
foreach($tuwenList as $tuwen){
$item[] = ResponsePassive::newsItem($tuwen['title'], $tuwen['description'], $tuwen['pic_url'], $tuwen['url']);
}
//发送图文列表
ResponsePassive::news($request['fromusername'], $request['tousername'], $item);
三、群发图文消息
场景描述:用户给我们的公众号发送了一条消息,我们的公众号被动响应,给用户回复一条图文消息。
场景举例:用户给我们的公众号发送了“周末聚会”,我们的公众号给用户回复了一条图文消息,有十条,每一条都是一个标题和图片,点击可以连接到一个地址。
代码:
$fansList = \LaneWeChat\Core\UserManage::getFansList();
//上传图片
$menuId = \LaneWeChat\Core\Media::upload('/var/www/baidu_jgylogo3.jpg', 'image');
if(empty($menuId['media_id'])){
die('error');
}
//上传图文消息
$list = array();
$list[] = array('thumb_media_id'=>$menuId['media_id'] , 'author'=>'作者', 'title'=>'标题', 'content_source_url'=>'www.lanecn.com', 'digest'=>'摘要', 'show_cover_pic'=>'1');
$list[] = array('thumb_media_id'=>$menuId['media_id'] , 'author'=>'作者', 'title'=>'标题', 'content_source_url'=>'www.lanecn.com', 'digest'=>'摘要', 'show_cover_pic'=>'0');
$list[] = array('thumb_media_id'=>$menuId['media_id'] , 'author'=>'作者', 'title'=>'标题', 'content_source_url'=>'www.lanecn.com', 'digest'=>'摘要', 'show_cover_pic'=>'0');
$mediaId = \LaneWeChat\Core\AdvancedBroadcast::uploadNews($list);
//给粉丝列表的用户群发图文消息
$result = \LaneWeChat\Core\AdvancedBroadcast::sentNewsByOpenId($fansList['data']['openid'], $mediaId);
四、推送模板消息
场景描述:公众号推送的模板消息,比如领取红包、滴滴打车红包领取、大众点评微信支付等
场景举例:我们在实体店的一家服装店买了新衣服,而我们又是会员,他们检测到会员的手机号消费了,有新积分增加,而这个手机号又关注了这家服装店的微信公众号,根据手机号可以在服装店自己的数据库中查到微信粉丝openId,这个时候就会给这个用户发送一个模板消息。
代码:
<?php
include 'lanewechat.php';
$data = array(
'first'=>array('value'=>'您好,您已成功消费。', 'color'=>'#0A0A0A')
'keynote1'=>array('value'=>'巧克力', 'color'=>'#CCCCCC')
'keynote2'=>array('value'=>'39.8元', 'color'=>'#CCCCCC')
'keynote3'=>array('value'=>'2014年9月16日', 'color'=>'#CCCCCC')
'keynote3'=>array('value'=>'欢迎再次购买。', 'color'=>'#173177')
);
//$touser 接收方的OpenId。
//$templateId 模板Id。在公众平台线上模板库中选用模板获得ID
//$url URL 点击查看的时候跳转到URL。
//$topcolor 顶部颜色,可以为空。默认是红色
\LaneWeChat\Core\TemplateMessage::sendTemplateMessage($data, $touser, $templateId, $url, $topcolor='#FF0000');
五、添加自定义菜单
场景描述:微信公众号底部的导航栏按钮
场景举例:自定义菜单可以更加快捷方便的为用户服务。而不需要用户每次都要打字发送消息来获取所需要的信息。轻轻一点按钮,马上拥有!
注:微信官方仅供认证号使用自定义菜单。
代码:
<?php
include 'lanewechat.php';
$menuList = array(
array('id'=>'1', 'pid'=>'0', 'name'=>'菜单1', 'type'=>'', 'code'=>''),
array('id'=>'2', 'pid'=>'0', 'name'=>'菜单2', 'type'=>'', 'code'=>''),
array('id'=>'3', 'pid'=>'0', 'name'=>'地理位置', 'type'=>'location_select', 'code'=>'key_7'),
array('id'=>'4', 'pid'=>'1', 'name'=>'点击推事件', 'type'=>'click', 'code'=>'key_1'),
array('id'=>'5', 'pid'=>'1', 'name'=>'跳转URL', 'type'=>'view', 'code'=>'http://www.lanecn.com/'),
array('id'=>'6', 'pid'=>'2', 'name'=>'扫码推事件', 'type'=>'scancode_push', 'code'=>'key_2'),
array('id'=>'7', 'pid'=>'2', 'name'=>'扫码等收消息', 'type'=>'scancode_waitmsg', 'code'=>'key_3'),
array('id'=>'8', 'pid'=>'2', 'name'=>'系统拍照发图', 'type'=>'pic_sysphoto', 'code'=>'key_4'),
array('id'=>'9', 'pid'=>'2', 'name'=>'弹拍照或相册', 'type'=>'pic_photo_or_album', 'code'=>'key_5'),
array('id'=>'10', 'pid'=>'2', 'name'=>'弹微信相册', 'type'=>'pic_weixin', 'code'=>'key_6'),
);
$result = \LaneWeChat\Core\Menu::setMenu($menuList);
六、页面展示二维码
场景描述:在网页中展示微信公众号的二维码
场景举例:太多了吧,就不说了…
代码:
<?php
include 'lanewechat.php';
header('Content-type: image/jpg');
$ticket = \LaneWeChat\Core\Popularize::createTicket(1, 1800, 1);
$ticket = $ticket['ticket'];
$qrcode = \LaneWeChat\Core\Popularize::getQrcode($ticket);
echo $qrcode;
七、补充
微信平台原来的客服软件近期将失效,所以部分功能可能受影响,对于腾讯是否会取消相关接口访问权限待定。
All versions of lanewechat with dependencies
PHP Build Version
Package Version
Requires
php Version
>=5.3.0
The package lixuancn/lanewechat contains the following files
Loading the files please wait ....