qmrp/weiaccount

wechat official account tool based on yii2 framework

1.0 2020-06-08 07:08 UTC

This package is auto-updated.

Last update: 2024-04-09 10:31:07 UTC


README

wechat official account tool based on yii2 framework

Install

composer require qmrp/weiaccount

config

config\web.php

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

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,eventReplay string 文字信息回复,事件回复,目前支持文字、图片、事件、音频、视频信息的自动回复
keyword string 文字回复的关键词
replayType enum 回复的类型,text,voice,image,video,根据回复类型的不同,后面的参数不同
content string text回复类型的参数,回复内容
mediaId string voice,image,video等素材回复的素材id
title string video,news,music等的标题
url string 图文信息的链接
picUrl string 图文信息的图片链接
description string 描述内容
musicUrl string music回复的音乐链接
hqMusicUrl string music回复的高清音乐链接
thumbMediaId string music回复的缩略图

上下文持续对话系统

通过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);
参数名 类型 必须 说明
order string 上下文持续对话命名
replays array 上下文步骤详情
replay array 当前步骤回复内容,格式同被动回复说明
name string 当前步骤用户回复内容存储key值
callback array 当前步骤用户回复内容处理方法
message string 当前步骤用户回复格式检验错误时,返回内容
formats array 用户所有步骤回复内容的校验规则
validate string sys表示系统自动的校验方法,self表示自定义校验方法
rule array 校验方法sys自带int,float,string,date,image,voice,video,link,phone,email,match,range;自定义检义必须继承接口qmrp\weiaccount\Validate
finish array 当前上下文完成片时方法

Weixin 方法说明

方法名 返回 说明
setRequestMsg Weixin 将接收到的信息解析
setAutoReplayConfig Weixin 设置自动回复规则
setActiveReplayConfig Weixin 设置上下文对话规则
Response xml 回复信息
getRequest array 获取当前请求信息
setActive bool 进入上下文交互模式
getActive array 获取当前上下文交互信息
nextStep bool 上下文进入下一步
quitAcitve bool 退出上下文交互模式
setActiveContent bool 存储当前交互数据
getActiveContent array 获取当前交互用户返回并处理后的数据
getMenu array 获取微信公众号的菜单配置
delMenu bool、array 删除微信公众号的菜单,开启debug时,未成功返回错误信息
createMenu bool、array 创建微信公众号菜单
getTempList array 返回当前微信公众号内的模版信息列表
sendTempMsg array 发送模版信息

QrcodeTool 方法说明

方法名 返回 说明
createQr array 创建带参数二维码
getQrcodeByTicket souce 根据二维码的ticket返回二维码图片资源

MediaTool 方法说明

方法名 返回 说明
addShortTimeMedia array 增加临时素材
getShortTimeMedia array 获取临时素材
addForeverMedia array 增加永久素材
getForeverMedia array 获取永久素材
addForeverNews array 新增永久图文素材
upForeverImg array 上传图文素材中的图片
detForeverMedia array 删除永久素材
updateNews array 修改图文信息
getForeverCount array 获取永久素材统计数据
getForeverList array 获取永久素材列表

MemberTool 方法说明

方法名 返回 说明
addTag array 创建标签
getTags array 获取标签列表
updateTag array 修改标签
delTag array 删除标签
getUsersByTags array 根据标签获取用户
setUserTagInBatch array 批量设置用户标签
cancelUserTagInBatch array 批量取消用户标签
getUserTagIds array 获取用户绑定的标签id
setUserAlias array 设置用户别名
getUserInfo array 获取用户信息
getUserInfoInBatch array 批量获取用户信息
getAccountUsers array 获取公众号粉丝列表
getAccountBlackUsers array 获取公众号黑名单

TempMsg 方法说明

方法名 返回 说明
setIndustry array 设置公众号所属行业
getIndeustry array 获取设置的行业信息
getTempId array 获取模版id
getTempList array 获取公众号绑定的模版列表
delTemp array 解绑公众号模版
sendMsg array 发送模版信息