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

ActiveLibrary[API Development](/categories/api)

yuyue8/tp-wechat
================

thinkphp使用w7corp/easywechat，实现wechat常用功能和接口

v1.0.4(1y ago)13Apache-2.0PHPPHP &gt;=8.0.2

Since Jun 7Pushed 1y ago1 watchersCompare

[ Source](https://github.com/yuyue8/tp-wechat)[ Packagist](https://packagist.org/packages/yuyue8/tp-wechat)[ RSS](/packages/yuyue8-tp-wechat/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (3)Dependencies (4)Versions (6)Used By (0)

TpWechat
========

[](#tpwechat)

安装
--

[](#安装)

```
composer require yuyue8/tp-wechat

```

### 微信公众号

[](#微信公众号)

#### 微信公众号配置

[](#微信公众号配置)

在`tp_wechat`配置文件内修改`wechat`配置

#### 微信公众号服务接口

[](#微信公众号服务接口)

在控制器中添加以下代码，并在公众号后台设置该接口

```
public function server(Yuyue8\TpWechat\interfaces\WechatInterface $wechat)
{
    ob_clean();

    return $wechat->server();
}

```

#### 微信公众号内置功能

[](#微信公众号内置功能)

若使用内置的`关注`、`取消关注`、`模版消息`功能，需要创建相关数据表，创建语句如下：

```
CREATE TABLE `wechat_notice_record` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `msgid` char(19) NOT NULL DEFAULT '' COMMENT '微信端消息记录ID',
  `user_id` int(11) NOT NULL DEFAULT '0' COMMENT '收取人ID',
  `user_type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '收取人类型',
  `openid` char(28) NOT NULL DEFAULT '',
  `mode` varchar(20) NOT NULL DEFAULT '' COMMENT '通知模式 wechat',
  `type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '通知类型',
  `status` tinyint(1) NOT NULL DEFAULT '4' COMMENT '发送状态 1-发送中 2-成功 3-失败 4-待发送 5-取消',
  `content` json NOT NULL COMMENT '消息内容',
  `error_message` varchar(10) NOT NULL DEFAULT '' COMMENT '错误消息',
  `receive_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '回执时间',
  `create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
  `update_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '编辑时间',
  `delete_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `msgid` (`msgid`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='微信公众号-消息通知记录';

CREATE TABLE `wechat_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增列',
  `openid` char(28) NOT NULL DEFAULT '' COMMENT 'openid',
  `unionid` char(28) NOT NULL DEFAULT '' COMMENT '公众号绑定开放平台后，用户信息会有此字段信息',
  `subscribe` tinyint(1) NOT NULL DEFAULT '1' COMMENT '1已关注，2取消关注',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `idx_openid` (`openid`,`subscribe`) USING BTREE,
  KEY `idx_unionid` (`unionid`,`subscribe`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=44 DEFAULT CHARSET=utf8mb4 COMMENT='微信公众号-用户信息';

```

然后运行`Yuyue8\TpWechat\jobs\WechatNoticeSendJobs`消息队列，对消息进行处理

###### 模版消息发送

[](#模版消息发送)

在`template`配置文件设置模版消息相关配置，然后调用`Yuyue8\TpWechat\services\WechatNoticeRecordServices`类的`sendTemplate`方法，

将会保存消息记录到数据表，并进入`Yuyue8\TpWechat\jobs\WechatNoticeSendJobs`消息队列

#### 自定义微信公众号相关功能

[](#自定义微信公众号相关功能)

如需自定义微信公众号相关功能，只需以下步骤：

创建微信服务类，继承`Yuyue8\TpWechat\service\WechatService`类或者`Yuyue8\TpWechat\interfaces\WechatInterface`接口，并实现相关方法 在`provider.php`文件中绑定微信服务类到接口

例如： 创建的微信服务类为`app\service\Wechat`,在`provider.php`文件中添加

```
Yuyue8\TpWechat\interfaces\WechatInterface::class => app\service\Wechat::class,

```

后续所有操作将由`app\service\Wechat`类完成

### 微信支付

[](#微信支付)

#### 微信支付配置

[](#微信支付配置)

在`tp_wechat`配置文件内修改`wechat_pay`配置

#### 微信支付服务接口

[](#微信支付服务接口)

在控制器中添加以下代码，并在商户号后台设置该接口，以接受订单支付通知和退款通知

```
public function server(Yuyue8\TpWechat\interfaces\WechatPayInterface $pay)
{
    ob_clean();

    return $pay->server();
}

```

由于订单数据表没有规则，所以请自行实现订单支付通知和退款通知后续操作，具体步骤如下：

🚨🚨🚨 注意：推送信息不一定靠谱哈，请务必验证 建议是拿订单号调用微信支付查询接口，以查询到的订单状态为准

#### 自定义微信支付相关功能

[](#自定义微信支付相关功能)

`Yuyue8\TpWechat\service\WechatPayService`类内置了下单退单等功能，直接调用即可

如需自定义支付相关功能，只需以下步骤：

创建微信支付服务类，继承`Yuyue8\TpWechat\service\WechatPayService`类或者`Yuyue8\TpWechat\interfaces\WechatPayInterface`接口，并实现相关方法 在`provider.php`文件中绑定微信支付服务类到接口

例如： 创建的微信支付服务类为`app\service\PayWechat`,在`provider.php`文件中添加

```
Yuyue8\TpWechat\interfaces\WechatPayInterface::class => app\service\PayWechat::class,

```

#### 更新微信支付平台证书

[](#更新微信支付平台证书)

`Yuyue8\TpWechat\service\WechatPayService`类中的`updatePlatformCerts`方法可以更新微信支付平台证书，请每个商户号每天执行一次

警告
--

[](#警告)

考虑到效率和多商户的情况，`Yuyue8\TpWechat\service\WechatService`类和`Yuyue8\TpWechat\service\WechatPayService`类中使用了单例且属性值为数组，所以在修改了`tp_wechat`配置文件或更新平台证书后，一定要`重启`或`重置`以下类，否则修改的配置和平台证书将不会生效

`Yuyue8\TpWechat\service\WechatService`类、`Yuyue8\TpWechat\service\WechatPayService`类和`Yuyue8\TpWechat\interfaces\WechatPayInterface`接口

例如：

```
app(WechatService::class, [], true);
app(WechatPayService::class, [], true);
app(WechatPayInterface::class, [], true);

```

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance34

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 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 ~110 days

Total

5

Last Release

633d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/53282d9e2a3bfccaf3b02ed4e2f1ede03c83141441299709b10a47d6392cc25a?d=identicon)[yuyue8](/maintainers/yuyue8)

---

Top Contributors

[![yuyue8](https://avatars.githubusercontent.com/u/48197835?v=4)](https://github.com/yuyue8 "yuyue8 (6 commits)")

### Embed Badge

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

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

###  Alternatives

[overtrue/laravel-wechat

微信 SDK for Laravel

3.0k1.8M53](/packages/overtrue-laravel-wechat)[naixiaoxin/think-wechat

EasyWechat For Thnkphp5.1+

27316.1k1](/packages/naixiaoxin-think-wechat)[weiwei/api-doc

The ThinkPHP6 Api Doc Package

10710.2k](/packages/weiwei-api-doc)

PHPackages © 2026

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