PHPackages                             linyuee/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. linyuee/wechat

ActiveLibrary[API Development](/categories/api)

linyuee/wechat
==============

一个非常简单的微信开发工具包,集成了微信授权，微信支付，jssdk，公众号消息收发等功能

1.1.4(8y ago)5141MITPHPPHP &gt;=7.0

Since Dec 8Pushed 8y ago1 watchersCompare

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

READMEChangelog (10)Dependencies (1)Versions (15)Used By (0)

简单的微信公众号开发扩展包wechat
===================

[](#简单的微信公众号开发扩展包wechat)

简介
--

[](#简介)

这是一个方便微信开发新手的开发的包，你们甚至可以不用知道其中的逻辑，而且使用非常方便，如果觉得对你有用的话请支持一下点个star

安装
--

[](#安装)

```
composer require linyuee/wechat

```

集成了微信授权登录，jssdk签名，自定义公众号菜单，微信支付等功能，可能是最适合微信小白开发的包了

使用
--

[](#使用)

#### 说明

[](#说明)

AccessToken 的有效期目前为 7200 秒，有请求次数限制，重复获取将导致上次获取的 AccessToken 失效， 因此有必要缓存AccessToken，你如果只是测试也可以不使用，我们使用doctrine/cache包作为依赖，在初始化Wechat类 的时候进行注入，目前的缓存驱动有 file、APC、redis、memcache、memcached、xcache。 不理解请移步`` Filesystem

```
$cacheDriver = new \Doctrine\Common\Cache\FilesystemCache('./cacheDir');

```

APC

```
$cacheDriver = new \Doctrine\Common\Cache\ApcCache();

```

Memcache

```
$memcache = new Memcache();
$memcache->connect('127.0.0.1', 11211);

$cacheDriver = new \Doctrine\Common\Cache\MemcacheCache();
$cacheDriver->setMemcache($memcache);

```

Mamcached

```
$memcached = new Memcached();
$memcached->addServer('127.0.0.1', 11211);

$cacheDriver = new \Doctrine\Common\Cache\MemcachedCache();
$cacheDriver->setMemcached($memcached);

```

Xcache

```
$cacheDriver = new \Doctrine\Common\Cache\XcacheCache();
Redis

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

$cacheDriver = new \Doctrine\Common\Cache\RedisCache();
$cacheDriver->setRedis($redis);

```

### 一、公众号开发

[](#一公众号开发)

\####初始化客户端

$cacheDriver在\\Linyuee\\Wechat\\MpClient类初始化的时候进行注入，用来缓存access\_token，如果不注入也可以运行，但是每次都会去获取新的access\_token

```
$wechat = new \Linyuee\Wechat\MpClient('appid','secret',$cacheDriver);

```

#### 1、微信授权

[](#1微信授权)

```
$whchat->auth()->base($callback_url,$attach);//$callback_url授权后回调的地址，$state你自己附加的参数，会在回调的时候传回去，可填可不填

```

然后你需要在回调接口获取用户信息,并接收微信服务器发送的$code和$state

```
$data = $wechat->getUserinfoByCode($code);

```

#### 2、jssdk签名

[](#2jssdk签名)

```
$data=$wechat->getJsSdkSign('签名的url');

```

#### 3、用户管理

[](#3用户管理)

根据openid获取用户信息

```
$res = $wechat->user()->getUserInfo('ogzUjwMevWmSnr__y9aOMVCVvU1g');

```

获取所有用户的openid

```
$res = $wechat->user()->getAllOpenid('ogzUjwMevWmSnr__y9aOMVCVvU1g');

```

#### 4、公众号菜单

[](#4公众号菜单)

自定义菜单

```
$menu = array(
            'button'=>array(
                [
                    'name'=>'公司主页',
                    'type'=>'view',
                    'url'=>'http://test.com'
                ],
                [
                    'name'=>'项目主页',
                    'type'=>'view',
                    'url'=>'http://test.com/api/test',
                ]
            ),
        );
$wechat->menu()->setMenu($menu)

```

如果返回{"errcode":0,"errmsg":"ok"}便是设置成功

删除菜单

```
$wechat->menu()->deleteMenu($menu)

```

#### 5、生成带参数公众号二维码

[](#5生成带参数公众号二维码)

```
$wechat = new \Linyuee\Wechat('appid','secret',$cacheDriver)
$data = $wechat->getQrcode('id'); //id是带的参数

```

#### 8、微信接入和自动回复

[](#8微信接入和自动回复)

要使用该功能，需要到公众平台配置相关信息，首次启用服务器配置要填一个url和token。假如你的服务器地址为 http:://test.com,然后你在服务器的根目录有一个wechat.php的文件，这时你只需要在wechat.php写入 该功能暂时没有实现图片和图文连接，后期会支持

```
$response = new \Linyuee\Message('your_token');
$response->run();

```

然后url便填写http:://test.com/wechat.php,token填写你在php中填写的token就可以了。

设置关注自动回复：

```
$response = new \Linyuee\WechatResponse('your_token');
$response->setWelcomeReply('欢迎关注')->run();

```

设置按关键字自动回复并且关注自动回复：

```
$response = new WechatResponse('chebao');
        $auto_rule = array(       //可以是数组也可以是字符串，如果是字符串的话不管发什么都会回复该字符串
            '你好'=>'很高兴认识你',
            '我要福利'=>'暂时没有福利',
            'test'=>'测试'
        );
$response->setWelcomeReply('欢迎关注')->setAutoReply($auto_rule)->run();

```

### 支付

[](#支付)

```
$wechat = new PayClient('appid','mch_id','key'); //初始化
$input1 = array(  //公众号支付参数
            //必须参数
            'mch_id'=>'1900009851',
            'body'=>'腾讯充值中心-QQ会员充值',
            'out_trade_no'=>random_int(100000,99999999),
            'total_fee'=>10,
            'notify_url'=>'$notify_url',
            'openid'=>'23da2Ar3efD23r1rd12S',//发起支付用户的openid
            //非必须参数
            'device_info'=>'',
            'attach'=>'', //附加数据，回调时会返回
            'time_start'=>'20091225091010',
            'time_expire'=>'20091227091010',
            'detail'=>'',
            'goods_tag'=>'',
            'scene_info'=>''
        );
        $input2 = array(   //app支付参数
            //必须参数
            'mch_id'=>'1900009851',
            'body'=>'腾讯充值中心-QQ会员充值',
            'out_trade_no'=>random_int(100000,99999999),
            'total_fee'=>10,
            'notify_url'=>'$notify_url',
            //非必须参数
            'device_info'=>'',
            'attach'=>'', //附加数据，回调时会返回
            'time_start'=>'20091225091010',
            'time_expire'=>'20091227091010',
            'detail'=>'',
            'goods_tag'=>'',
            'scene_info'=>''
        );

$res = $wechat->unifiedOrder($input1)->jsapiPay();
$res = $wechat->unifiedOrder($input2)->appPay();
$res = $wechat->unifiedOrder($input2)->webPay();

```

##### 2、查询

[](#2查询)

```
$res = $wechat->query()->OrderByOutTradeNo('10644950');//通过out_trade_no查询订单
$res = $wechat->query()->OrderByTransactionId('12177525012014070');//通过transaction_id查询订单
$res = $wechat->query()->refundByOutTradeNo('10644950');//通过out_trade_no查询订单退款
$res = $wechat->query()->refundByTransactionId('1217752501201407033233368018');//通过transaction_id查询订单退款
$res = $wechat->query()->refundByOutRefundNo('1217752501201407033233368018');//通过out_refund_no查询订单退款
$res = $wechat->query()->refundByRefundId('1217752501201407033233368018');//通过refund_id查询订单退款

```

##### 3、关闭订单

[](#3关闭订单)

```

$res = $wechat->close('10644950');//关闭订单只能通过out_trade_no

```

##### 4、获取数据

[](#4获取数据)

```

$res = $wechat->download()->allOrder('20171111'); //获取2017年11月11日所有的订单
$res = $wechat->download()->successOrder('20171111');//获取2017年11月11日所有成功的订单
$res = $wechat->download()->refundOrder('20171111');//获取2017年11月11日所有退款的订单
$res = $wechat->download()->rechargeRefundOrder('20171111');//获取2017年11月11日充值退款订单（相比其他对账单多一栏“返还手续费”）

```

##### 5、退款

[](#5退款)

微信退款必须申请到证书，并将证书发在服务器上可访问的路径

```

$data = array(
       'total_fee'=>'订单金额',
       'out_refund_no'=>'自定义退款号',
       'refund_fee'=>'退款金额'
      );
$res = $pay->refund($data)->setCert(array(
        'SSLCERT_PATH'=>'/etc/Cert/wechat/apiclient_cert.pem',
        'SSLKEY_PATH'=>'/etc/Cert/wechat/apiclient_key.pem'
      ))->refundByOutTradeNo($params['out_trade_no']);

```

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity66

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~9 days

Recently: every ~19 days

Total

14

Last Release

2953d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/20659595?v=4)[linyueb](/maintainers/linyueb)[@linyueb](https://github.com/linyueb)

---

Top Contributors

[![linyueb](https://avatars.githubusercontent.com/u/20659595?v=4)](https://github.com/linyueb "linyueb (11 commits)")

### Embed Badge

![Health badge](/badges/linyuee-wechat/health.svg)

```
[![Health](https://phpackages.com/badges/linyuee-wechat/health.svg)](https://phpackages.com/packages/linyuee-wechat)
```

###  Alternatives

[thenbsp/wechat

微信公众平台第三方 SDK 开发包，优雅、健壮，可扩展，遵循 PSR 开发规范。

9408.2k](/packages/thenbsp-wechat)[slince/shopify-api-php

Shopify API Client for PHP

131236.9k1](/packages/slince-shopify-api-php)[matthiasnoback/microsoft-translator

Library for making calls to the Microsoft Translator V2 API

39234.2k3](/packages/matthiasnoback-microsoft-translator)[sitkoru/yandex-direct-api

Client for Yandex.Direct API v5

3120.2k1](/packages/sitkoru-yandex-direct-api)[waarneembemiddeling/bigregister-soap

php 8.0+ implementation of the Dutch BIG Register SOAP interface

1255.6k1](/packages/waarneembemiddeling-bigregister-soap)[coinpaprika/coinpaprika-api-php-client

coinpaprika.com API v1 client

249.5k](/packages/coinpaprika-coinpaprika-api-php-client)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
