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.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
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
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package lixuancn/lanewechat contains the following files

Loading the files please wait ....