PHPackages                             qmrp/weiaccount - 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. qmrp/weiaccount

ActiveLibrary

qmrp/weiaccount
===============

wechat official account tool based on yii2 framework

1.0(5y ago)02MITPHP

Since Jun 8Pushed 5y ago1 watchersCompare

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

READMEChangelog (1)Dependencies (2)Versions (2)Used By (0)

weiaccount
==========

[](#weiaccount)

wechat official account tool based on yii2 framework

Install
=======

[](#install)

composer require qmrp/weiaccount

config
======

[](#config)

config\\web.php

```
'components' => [
        'weixin' =>[
            'class' => 'qmrp\weiaccount\Weixin',
            'appId' => 'wx0147d*******',
            'secret' => '********',
            'token' => 'qmrp',
            'encodingAesKey' => '…………'
        ],

```

use
===

[](#use)

#### 自动回复

[](#自动回复)

```
use qmrp\weiaccount\Weixin;
header('content-type:aplication/xml;charset=utf8');
//自动回复参数格式
$replay =
        [
                'msgReplay'=>[
                    ["keyword"=>"你好","replayType"=>"text","content"=>"您好！"],
                    ["keyword"=>'xd',"replayType"=>"callback","function"=>['app\common\common','excute']],
                    ["keyword"=>"我的天","replayType"=>"image","mediaId"=>"M3SVG9PH07TjgXPT3GxK2O7nuVQwDpiZH_2sl9-nfct0R2Te4Uw1EuYSVly-i7Sz"],
                    ["keyword"=>'模板',"replayType"=>"template","tempId"=>"CV1vGj_tseSAAcoXiKMvyML9TnrwLY5LEiUmqvtP3Rk","params"=>['first'=>['value'=>'哈'],'orderID'=>['value'=>'123'],'orderMoneySum'=>['value'=>'12.5'],'backupFieldName'=>['value'=>'可以'],'backupFieldData'=>['value'=>'好'],'remark'=>['value'=>'备注']]],
                ],
                "eventReplay"=>[
                    [
                        "eventType"=>"subscribe",
                        "replayType"=>"image",
                        "mediaId"=>"sjJTkQ63M74zCoUJ4-Vg3IsduwG8JF21bzCzYNOVu7wjpaOjEIFtMY9BnqLABNtX",
                        "eventKey"=>[
                            [
                                "eventKey"=>"qrscene_zhou",
                                "replayType"=>"text",
                                "content"=>"这里是特殊eventKey值的返回"
                            ]
                        ]
                    ],
                    [
                        "eventType"=>"CLICK",
                        "eventKey"=>[
                            [
                                "eventKey"=>"zhou",
                                "replayType"=>"text",
                                "content"=>"这里是特殊eventKey值的返回"
                            ],
                            [
                                "eventKey"=>"V1001_GOOD",
                                "replayType"=>"text",
                                "content"=>"感谢你的点赞"
                            ]
                        ]
                    ]
                ]
        ];

//后面直接用$weixin,不在做实例化;
$weixin = \Yii::$app->weixin; //或者直接实例化传参 $weixin = new Weixin(['appId'=>"","secret"=>"","token"=>"","encodingAesKey"=>""]);
$autoReplay = new AutoReplayConfig($replay);
$xml = file_get_contents("php://input");
$res = $weixin->setRequestMsg($xml)->setAutoReplayConfig($autoReplay)->Response();
echo $res;

```

> 被动回复参数说明

参数名类型说明textReplay,eventReplaystring文字信息回复,事件回复,目前支持文字、图片、事件、音频、视频信息的自动回复keywordstring文字回复的关键词replayTypeenum回复的类型,text,voice,image,video,根据回复类型的不同，后面的参数不同contentstringtext回复类型的参数，回复内容mediaIdstringvoice,image,video等素材回复的素材idtitlestringvideo,news,music等的标题urlstring图文信息的链接picUrlstring图文信息的图片链接descriptionstring描述内容musicUrlstringmusic回复的音乐链接hqMusicUrlstringmusic回复的高清音乐链接thumbMediaIdstringmusic回复的缩略图---

### 上下文持续对话系统

[](#上下文持续对话系统)

通过ActiveReplayConfig类设置，收集的信息可以通过继承Callbackfun接口来处理并返回最终数据；

试例：

```
$activeReplay = new ActiveReplayConfig($activeConfig);
$activeConfig = [
                'order' => [
                    'replays' => [
                        [
                            "replay"=>["replayType"=>"text","content"=>"开始下单流程,中途若想退出流程,回复退出即可.\r\n1,请输入派单价格单位为元,此价为总价格"],
                            "name" => "feeGoods",
                            "callback" => ["app\common\common","money"],
                            "message" => "请输入标准价格"
                        ],
                        [
                            "replay"=>["replayType"=>"text","content"=>"2,请上传商品图片，直接发送图片即可"],
                            "name" => "goodsImage",
                            "callback" => ["app\common\common","image"],
                            "message" => "请回复图片"
                        ],
                        [
                            "replay"=>["replayType"=>"text","content"=>"3,请输入商品数量"],
                            "name" => "itemQty",
                            "callback" => ["app\common\common","nums"],
                            "message" => "请回复整数"
                        ]
                    ],
                    'formats' => [
                        [
                            'validate' => 'sys',
                            'rule' => ['float',0,999]
                        ],
                        [
                            'validate' => 'sys',
                            'rule' => ['image']
                        ],
                        [
                            'validate' => 'sys',
                            'rule' => ['int']
                        ]
                    ],
                    'finish' => ["app\common\common","finish"]
                ]
            ];
$xml = file_get_contents("php://input");
$res = $weixin->setRequestMsg($xml)->setActiveReplayConfig($activeReplay)->Response();
exit($res);

```

参数名类型必须说明orderstring是上下文持续对话命名replaysarray是上下文步骤详情replayarray是当前步骤回复内容，格式同被动回复说明namestring是当前步骤用户回复内容存储key值callbackarray是当前步骤用户回复内容处理方法messagestring否当前步骤用户回复格式检验错误时，返回内容formatsarray是用户所有步骤回复内容的校验规则validatestring是sys表示系统自动的校验方法,self表示自定义校验方法rulearray是校验方法sys自带int,float,string,date,image,voice,video,link,phone,email,match,range;自定义检义必须继承接口qmrp\\weiaccount\\Validatefinisharray是当前上下文完成片时方法### Weixin 方法说明

[](#weixin-方法说明)

方法名返回说明setRequestMsgWeixin将接收到的信息解析setAutoReplayConfigWeixin设置自动回复规则setActiveReplayConfigWeixin设置上下文对话规则Responsexml回复信息getRequestarray获取当前请求信息setActivebool进入上下文交互模式getActivearray获取当前上下文交互信息nextStepbool上下文进入下一步quitAcitvebool退出上下文交互模式setActiveContentbool存储当前交互数据getActiveContentarray获取当前交互用户返回并处理后的数据getMenuarray获取微信公众号的菜单配置delMenubool、array删除微信公众号的菜单,开启debug时，未成功返回错误信息createMenubool、array创建微信公众号菜单getTempListarray返回当前微信公众号内的模版信息列表sendTempMsgarray发送模版信息### QrcodeTool 方法说明

[](#qrcodetool-方法说明)

方法名返回说明createQrarray创建带参数二维码getQrcodeByTicketsouce根据二维码的ticket返回二维码图片资源### MediaTool 方法说明

[](#mediatool-方法说明)

方法名返回说明addShortTimeMediaarray增加临时素材getShortTimeMediaarray获取临时素材addForeverMediaarray增加永久素材getForeverMediaarray获取永久素材addForeverNewsarray新增永久图文素材upForeverImgarray上传图文素材中的图片detForeverMediaarray删除永久素材updateNewsarray修改图文信息getForeverCountarray获取永久素材统计数据getForeverListarray获取永久素材列表### MemberTool 方法说明

[](#membertool-方法说明)

方法名返回说明addTagarray创建标签getTagsarray获取标签列表updateTagarray修改标签delTagarray删除标签getUsersByTagsarray根据标签获取用户setUserTagInBatcharray批量设置用户标签cancelUserTagInBatcharray批量取消用户标签getUserTagIdsarray获取用户绑定的标签idsetUserAliasarray设置用户别名getUserInfoarray获取用户信息getUserInfoInBatcharray批量获取用户信息getAccountUsersarray获取公众号粉丝列表getAccountBlackUsersarray获取公众号黑名单### TempMsg 方法说明

[](#tempmsg-方法说明)

方法名返回说明setIndustryarray设置公众号所属行业getIndeustryarray获取设置的行业信息getTempIdarray获取模版idgetTempListarray获取公众号绑定的模版列表delTemparray解绑公众号模版sendMsgarray发送模版信息

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity2

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity55

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

Unknown

Total

1

Last Release

2168d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/c89b5f9bbcfe00fde88d9b39bb87286fa93ed41e8648f2788f6e3c720b0a4128?d=identicon)[zhouqmrp](/maintainers/zhouqmrp)

---

Top Contributors

[![qmrp](https://avatars.githubusercontent.com/u/10458408?v=4)](https://github.com/qmrp "qmrp (17 commits)")

### Embed Badge

![Health badge](/badges/qmrp-weiaccount/health.svg)

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

###  Alternatives

[craftcms/cms

Craft CMS

3.6k3.6M2.6k](/packages/craftcms-cms)[neuron-core/neuron-ai

The PHP Agentic Framework.

1.8k245.3k21](/packages/neuron-core-neuron-ai)[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3731.2M42](/packages/tencentcloud-tencentcloud-sdk-php)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)

PHPackages © 2026

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