Discuz! 的微信接口
接口概述Discuz! 的微信接口由系统插件 “ 掌上论坛 1.3.3”版本及“ 微信登录 1.0.0” 版本提供,此接口我们通过插件形式向 Discuz! X2.5、Discuz! X3.x 版本提供,Discuz! 新版将内置此接口。此接口统一了 Discuz! 的微信接口地址,并且可以很方便让 开发者开发出微信类插件,使开发者无需详细阅读微信公众平台的开发手册即可很方便的开发出微信相关的插件。 这 2 个插件已允许被其他插件合并安装,开发者可在插件的版本设置中设置合并安装“mobile.plugin.25962”和“wechat.plugin.35632”即可。 调用本接口前您需要在插件中引用接口文件 require_once DISCUZ_ROOT . './source/plugin/wechat/wechat.lib.class.php';嵌入点接口嵌入点接口用于把您开发的插件方法或数据注册到微信接口中
绑定微信 OpenIDWeChatHook::bindOpenId($uid, $openid, $isregister = 0)此方法用于将一个用户的微信 OpenID 与论坛帐号绑定,方便用户使用微信登录[tr][/tr]| 参数 | 参数含义 | | $uid | 用户 Id | | $openid | 微信 OpenID | | $isregister | 是否为新注册用户 |
注册微信响应嵌入点WeChatHook::updateResponse($data, $extId = '')此方法用可以将一个方法注册到微信的事件嵌入点上| 参数 | 参数含义 | | $data | 详见下面的《响应嵌入点》 | | $extId | 扩展 ID,留空表示更新默认嵌入点
调用扩展的嵌入点时接口地址是“http://yourwebsite/api/mobile/?module=wechat&id=extId” |
获取微信响应嵌入点列表WeChatHook::getResponse($extId = '')此方法用可以获取当前注册的所有的响应嵌入点信息| $extId | 扩展 ID,字母及数字的组合,留空表示获取默认嵌入点 |
注册扩展开发者凭据信息updateAppInfo($extId, $appId = '', $appSecret = '')此方法用可以注册一个开发者凭据信息| $extId | 扩展 ID | | $appId | 待注册的 appId,留空表示删除此扩展 ID | | $appSecret | 待注册的 appSecret,留空表示删除此扩展 ID |
获取扩展开发者凭据信息WeChatHook::getAppInfo($extId)此方法用可以获取一个已注册的开发者凭据信息WeChatClient 实例化时可直接携带此 $extId$WeChatClient = new WeChatClient($extId)
注册微信跳转 URLWeChatHook::updateRedirect($data)此方法用可以注册一个微信跳转 URL 方法,此方法将在微信用户登录、注册成功后触发
获取跳转 URLWeChatHook::getRedirect()此方法用可以获取当前注册的获取跳转 URL 嵌入点信息
注册微信前端插件标识WeChatHook::updateViewPluginId($value)此方法用可以把一个插件的 PC 前端功能注册到微信登录中此插件需要准备“lang_wechat_logintip、lang_wechat_login、lang_wechat_bind、lang_wechat_threadmessage”4个语言包项目以供显示
获取微信前端插件标识WeChatHook::getViewPluginId()此方法用可以获取当前注册的前端功能插件的标识
响应嵌入点响应嵌入点格式:
array( 嵌入点 => 注册参数)嵌入点包含以下内容| 嵌入点 | 含义 | | receiveAllStart | 全局开始 | | receiveMsg::text | 文本消息 | | receiveMsg::location | 地理位置消息 | | receiveMsg::image | 图片消息 | | receiveMsg::video | 视频消息 | | receiveMsg::link | 链接消息 | | receiveMsg::voice | 语音消息 | | receiveEvent::subscribe | 关注事件 | | receiveEvent::unsubscribe | 取消关注事件 | | receiveEvent::scan | 扫描带参数二维码事件 | | receiveEvent::location | 上报地理位置事件 | | receiveEvent::click | 自定义菜单事件 | | receiveAllEnd | 全局结束 | | accessCheckSuccess | URL 有效性验证 | | 404 | 签名验证错误 | 注册参数包含以下内容| KEY | 含义 | | plugin | 插件标识 | | include | 含有待注册方法的文件,此文件应位于您所注册的插件的目录下 | | class | 待注册方法的类名 | | method | 待注册方法名 | 范例接口响应的相关参数将提交给已注册方法的第一个参数中跳转嵌入点嵌入点参数包含以下内容| KEY | 含义 | | plugin | 插件标识 | | include | 含有带注册方法的文件,此文件应位于您所注册的插件的目录下 | | class | 带注册方法的类名 | | method | 带注册方法名 | 范例$data = array( 'plugin' => 'wechat', 'include' => 'response.class.php', 'class' => 'WSQResponse', 'method' => 'redirect');WeChatHook::updateRedirect($data);服务端接口服务端接口用于在嵌入点的方法中,格式化回复给微信用户的内容而设定的一系列函数。接口会自动转码文本消息WeChatServer::getXml4Txt($txt)图片消息WeChatServer::getXml4ImgByMid($mid)| 参数 | 参数含义 | | $mid | 媒体 ID,通过“WeChatClient->upload”方法上传多媒体文件后得到的 ID | 语音消息WeChatServer::getXml4VoiceByMid($mid)| 参数 | 参数含义 | | $mid | 媒体 ID,通过“WeChatClient->upload”方法上传多媒体文件后得到的 ID | 视频消息WeChatServer::getXml4VideoByMid($mid, $title, $desc = '')| 参数 | 参数含义 | | $mid | 媒体 ID,通过“$WeChatClient->upload”方法上传多媒体文件后得到的 ID | | $title | 视频消息的标题 | | $desc | 视频消息的描述 | 音乐消息WeChatServer::getXml4MusicByUrl($url, $thumbmid, $title, $desc = '', $hqurl = '')| 参数 | 参数含义 | | $url | 音乐链接 | | $thumbmid | 缩略图 ID,通过“$WeChatClient->upload”方法上传多媒体文件后得到的 ID | | $title | 音乐标题 | | $desc | 音乐描述 | | $hqurl | 高质量音乐链接 | 图文消息WeChatServer::getXml4RichMsgByArray($list)最多 10 条| 参数 | 参数含义 | | $list['title'] | 图文消息标题 | | $list['desc'] | 图文消息描述 | | $list['pic'] | 图片链接 | | $list['url'] | 跳转链接 | 客户端接口客户端接口提供了一些微信公众平台的众多高级功能,这些接口方法需要微信公众平台的 AppId 和 AppSecret
|