PHPackages                             teg1c/wechat - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. teg1c/wechat

ActiveLibrary[API Development](/categories/api)

teg1c/wechat
============

wechat PHP 微信 微信授权 微信用户信息 微信token 微信模板 微信自定义菜单生产 微信JDK 微信关键字回复 微信模板消息发送

1.0.0(5y ago)27MITPHPPHP &gt;= 7.2.0

Since Sep 5Pushed 5y ago1 watchersCompare

[ Source](https://github.com/teg1c/wechat)[ Packagist](https://packagist.org/packages/teg1c/wechat)[ Docs](https://github.com/teg1c/wechat)[ RSS](/packages/teg1c-wechat/feed)WikiDiscussions master Synced 4d ago

READMEChangelogDependenciesVersions (2)Used By (0)

WeChat
======

[](#wechat)

- 微信基础授权
- 微信用户信息
- 微信token
- 微信模板
- 微信自定义菜单生产
- 微信JDK
- 微信关键字回复
- 微信模板消息发送
- 基础功能

> 本扩展功能的运行环境要求`PHP5.6`以上。 本扩展 `1.0.5` 及以上版本，运行环境要求`PHP7.2`以上。

> ### 使用 `composer` 安装
>
> [](#使用-composer--安装)

#### 由于众所周知的原因，国外的网站连接速度很慢。因此安装的时间可能会比较长，我们建议通过下面的方式使用国内镜像。打开命令行窗口（windows用户）或控制台（Linux、Mac 用户）并执行如下命令：

[](#由于众所周知的原因国外的网站连接速度很慢因此安装的时间可能会比较长我们建议通过下面的方式使用国内镜像打开命令行窗口windows用户或控制台linuxmac-用户并执行如下命令)

```

    composer config repo.packagist composer https://mirrors.aliyun.com/composer/

```

#### 使用： 在composer.json添加

[](#使用-在composerjson添加)

```
"require": {
    "teg1c/wechat": "^1.0.0"
},

```

#### 然后(命令行)：

[](#然后命令行)

```
composer update -vvv

```

接口使用说明
------

[](#接口使用说明)

### 接口目录

[](#接口目录)

```
WeChat         模块目录

├─ Core        核心目录
        ├─Base.php               抽象基类，主要用户放置一些公用的方法体

        ├─User.php               获取微信授权、用户openid、用户信息

        ├─Token.php              获取微信access_token (考虑token时限，已用 $_SESSION['access_token'] 储存)

        ├─Ticket.php             获取微信jsapi_ticket、获取微信JDK签名 （考虑微信jsapi_ticket时限、已用 $_SESSION['jsapi_ticket'] 储存）

        ├─Template.php           获取微信所有消息模板、格式化微信消息模板 （考虑微信消息模板变量问题、及消息发送，以将需要参数存放在$变量名['param']）

        ├─Send.php               微信模板消息发送、微信关键字回复、微信自定义菜单生成

        ├─QrCode.php             微信生成二维码

        ├─Menu.php               微信菜单

        ├─Material.php           微信素材

        ├─Authorize.php          微信授权认证类

├─ Extend         依赖目录

         ├─File.php                 文件存储类。

         ├─Json.php                 Json返回类。

         ├─Request.php              curl请求封装类。

         ├─Tool.php              工具类。

├─ Lib            第三方目录

         ├─phpqrcode.php                 PHP生成二维码类。

```

微信用户 `User`
-----------

[](#微信用户-user)

### 微信授权、获取 `code`

[](#微信授权获取-code)

```
    * [code 重载http,获取微信授权]
    * @param  string   $appid           [微信公众号APPID]

    \WeChat\Core\User::code('微信appid');  # 重载微信授权

```

### 微信用户 `openid`

[](#微信用户-openid)

```

    * [openid 获取用户 OPENID]
    * @param  string  $code                         [微信授权CODE]
    * @param  string  $appid                        [微信appid]
    * @param  string  $appSecret                    [微信appSecret]
    * @param  boolen  $type                         [true:获取用户信息  false:用户openid]
    * @return [array] [用户信息 用户openid]

    \WeChat\Core\User::openid(input('get.code'), '微信appid', '微信appSecret');

```

### 微信用户信息 `userinfo` (1种： 没有获取`openid`时)

[](#微信用户信息-userinfo-1种-没有获取openid时)

```

    * [openid 获取用户 OPENID]
    * @param  string  $code                         [微信授权CODE]
    * @param  string  $appid                        [微信appid]
    * @param  string  $appSecret                    [微信appSecret]
    * @param  boolen  $type                         [true:获取用户信息  false:用户openid]
    * @return [array] [用户信息 用户openid]

    \WeChat\Core\User::openid('获取GET方式的参数code', '微信appid', '微信appSecret', true);

```

### 微信用户信息 `userinfo` (2种： 获取`openid`时)

[](#微信用户信息-userinfo-2种-获取openid时)

```

    * [userInfo 获取用户信息]
    * @param  [type] $access_token   [授权获取用户关键参数：access_token]
    * @param  [type] $openid         [用户openid]

    \WeChat\Core\User::userInfo($access_token, $openid);

```

### 微信用户信息 `newuserinfo` (3种： 获取`access_token`时)

[](#微信用户信息-newuserinfo-3种-获取access_token时)

```

    * [userInfo 获取用户信息]
    * @param  [type] $access_token   [普通access_token]
    * @param  [type] $openid         [用户openid]

    \WeChat\Core\User::newUserinfo($access_token, $openid);

```

微信 `Token`
----------

[](#微信-token)

### 获取 `access_token`

[](#获取-access_token)

```

    * [gain 获取微信access_token]
    * @param  string   $appid                 [微信AppID]
    * @param  string   $appSecret             [微信AppSecret]
    * @return [string] [微信access_token]

    \WeChat\Core\Token::gain('微信appid', '微信appSecret');  # 获取微信access_token

    成功：
            array{
                'access_token'=>'**************************************',
                'expires_in'=> ****,
            }

    失败：
        array{
                    'errormsg'=>'*************',
                    'errorcode'=> ***,
                }

```

微信 `Ticket`
-----------

[](#微信-ticket)

### 微信 `jsapi_ticket`

[](#微信-jsapi_ticket)

```

    * [gain 微信jsapi_ticket]
    * @param  string   $access_token          [微信token]
    * @return [string] [微信jsapi_ticket]

    \WeChat\Core\Ticket::gain('微信普通token');

```

### 微信 `JDK` 签名

[](#微信-jdk-签名)

```

    * [sign 获取微信JSDK]
    * @param  [string] $ticket        [获取微信JSDK签名]
    * @return [array]  [微信JSDK]

    \WeChat\Core\Ticket::sign('微信jsapi_ticket');

    成功：
        array{
            "errcode"=>0,
            "errmsg"=>"ok",
            "ticket"=>"kgt8ON7yVITDhtdwci0qeQM5xOrtZmRriogQ-yl-zBNBoXs56JmAWkbJVY68uajNBIIR4xa5t_dx9W0X6a-tnQ",
            "expires_in"=>7200,
            "time"=>1543832364
        }

    失败：
        array{
            'errormsg'=>'*************',
            'errorcode'=> ***,
        }

```

微信模板消息 `Template`
-----------------

[](#微信模板消息-template)

### 获取所有模板 `gain`

[](#获取所有模板-gain)

```

    * [gain 获取所有消息模板内容]
    * @param  string $accessToken    [微信token]
    * @return [type] [description]

    \WeChat\Core\Template::gain('微信token');

```

微信推送 `Send`
-----------

[](#微信推送-send)

### 关键字推送 `keyWord`

[](#关键字推送-keyword)

```

     * 被动回复消息
     * @param array $triggerConfig 微信消息对象
     * @param array $triggerData   用户数据

    \WeChat\Core\Send::trigger($triggerConfig, $triggerData);

    例如： 使用说明见Authorize类使用方法

```

### 模板消息推送 `msg`

[](#模板消息推送-msg)

```

    * [msg 发送模板消息]
    * @param  string $accessToken [微信token]
    * @param  string $templateid [模板ID]
    * @param  string $openid     [用户openid]
    * @param  array  $data       [模板参数]
    * @param  string $url        [模板消息链接]
    * @param  string $topcolor   [微信top颜色]
    * @return [ajax] [boolen]

    \WeChat\Core\Send::msg($accessToken, $templateid, $openid, $data = [], $url = '', $topcolor = '#FF0000');

```

微信菜单 `Menu`
-----------

[](#微信菜单-menu)

### 获取菜单 `gain`

[](#获取菜单-gain)

```

    * [gain 获取菜单]
    * @param  string $accessToken [微信token]
    * @return [array] [微信返回值：状态值数组]

    \WeChat\Core\Menu::gain($accessToken);

```

### 设置菜单 `set`

[](#设置菜单-set)

```

    * [set 生成菜单]
    * @param  string $accessToken [微信token]
    * 例如：$menu =[
                    [
                         'type'=> 'click', //
                         'name'=> '这是第一级button',
                         'list' => [
                            [
                                 'type'=> 'view',
                                 'name'=> '百度',
                                 'url' => 'http://www.baidu.com',
                             ]
                         ],
                    ],
                     [
                         'type'=> 'miniprogram',
                         'name'=> 'xx小程序',
                         'url' => 'http://www.baidu.com',
                         'appid' => 'asdasdas', 小程序APPID
                         'pagepath' => '/page/index/index', // 小程序页面链接
                     ]
                 ];
    * @param  array   $menu                                  [菜单内容 ]
    * @return [array] [微信返回值：状态值数组]

    \WeChat\Core\Menu::set($accessToken, $menu);

```

二维码 `Qrcode`
------------

[](#二维码-qrcode)

### 微信带参二维码 `wechat`

[](#微信带参二维码-wechat)

```

    * 创建微信带参二维码生成
    * @inheritdoc 详细文档：https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1443433542
    * @param string $accessToken 授权TOKEN
    * @param string $scene_str 字符串
    * @param string $scene_str_prefix 字符串前缀
    * @param int $type 二维码类型：(小于等于1) = 有效时长30天  (大于等于2) = 永久
    * @return array|bool|mixed

    \WeChat\Core\QrCode::wechat(string $accessToken,string $scene_str, string $scene_str_prefix = 'wene_', int $type = 1)

    成功：
        array(4) {
          ["ticket"] => string(96) "ticket字符串"
          ["expire_seconds"] => int('时长')
          ["url"] => string(45) "二维码内容"
          ["showUrl"] => string(147) "在线地址"
        }

    失败：
        array{
            'errormsg'=>'*************',
            'errorcode'=> ***,
        }

```

### 创建二维码 `create`

[](#创建二维码-create)

```

        * 生成二维码
        * @inheritdoc 文档说明：http://phpqrcode.sourceforge.net/
        * @param string $text 二维码内容
        * @param bool $filePath    二维码储存路径
        * @param string $level 二维码容错机制
        * @param int $size 点大小
        * @param int $margin   点间距
        * @param bool $saveandprint    保存或打印
        * @return string|void

        public static function create(string $text = '',
                                     bool $filePath = false,
                                     string $level = QR_ECLEVEL_L,
                                     int $size = 6,
                                     int $margin = 2,
                                     bool $saveandprint=false)

        使用方式：

        1. 生成二维码，但不生成二维码文件
        $qrocde = \WeChat\Core\QrCode::create('二维码内容');

        2. 生成二维码文件
        $qrocde = \WeChat\Core\QrCode::create('二维码内容','文件存放路径');

```

文件参数储存 `File`
-------------

[](#文件参数储存-file)

```

      * 文件参数储存，可扩展
      * @param string $var  key
      * @param array $val value

    // 存值
    \WeChat\Extend\File::param('key','value');

    // 取值
    \WeChat\Extend\File::param('key');

```

微信素材类 `Material`
----------------

[](#微信素材类-material)

### 获取素材总数 `getMaterialCount`

[](#获取素材总数-getmaterialcount)

```

    * 获取素材总数
    * @param string $access_token 普通授权token
    * @return array

    \WeChat\Core\Material::getMaterialCount($access_token);

```

### 获取素材列表 `getMaterialCount`

[](#获取素材列表-getmaterialcount)

```

    * 获取素材列表
    * @param string $access_token 普通授权token
    * @return array

    \WeChat\Core\Material::getMaterialList($access_token);

```

微信授权认证 `抽象` 类 `Authorize`
-------------------------

[](#微信授权认证-抽象-类-authorize)

### 对接微信开发者模式

[](#对接微信开发者模式)

> 使用方式

- 第一步：创建自己的微信开发者对接类继承 微信授权认证 `抽象` 类 `Authorize`

```
