【delphi】微信公众号控件开发(一)

*爱你&永不变心* 提交于 2019-12-18 03:56:42

Delphi 微信公众号控件开发:

Delphi微信公众号控件开发:

参考:微信开发者文档

微信公众号目前已经非常普及,架构功能强大,使用非常方便,和微信完美的结合。但是,无论是一个企业还是个人,如果想建设一个微信公众号,还是需要一定的专业技能的,基于此,我们开发一款通用的微信公众号控件,该控件完成所有的和微信平台接口难题,开发者使用这个控件只需要简单的设置几个参数,调用相关的方法,响应对应的事件即可立即实现一个微信公众号平台。
控件安装后的属性和事件窗口

一、公共属性定义

1. AppID(开发者ID)

开发者ID是公众号开发识别码,配合开发者密码可调用公众号的接口能力。

2. AppSecret(开发者密码)

开发者密码是校验公众号开发者身份的密码,具有极高的安全性。以上这两个参数位于微信公众平台【开发-基本设置】中的公众号开发信息。
在这里插入图片描述

3. Token(令牌)

这个参数在微信公众平台【开发-基本设置】中的服务器配置中有设置。
在这里插入图片描述

4. BaseURL(Web服务访问基地址)

对于微信公众号,微信平台是需要公众号提供一个Web后台服务的,本控件内置Web服务,这个参数就是用来设置在服务器上面Web的基本地址。例如:

BaseURL http://localhost:80/wxh

其中 http://localhost:80 时必须固定,因为这个是在Web服务器上提供的,所以需要使用本地路径,关于端口80,这个也是微信平台要求的,必须是80端口。后面的 wxh 则表示路径,不同的公众号可以有不同的路径,就是说同一台服务器上可以运行多个微信公众号,只要这个路径不同就可以。这个参数与 BaseRootDir 参数配合使用。

5. BaseRootDir(本地Web文件实际路径)

对于公众号平台,这个就是本地文件存放的目录,就是 wwwroot 目录。假如:

参数名 参数内容
BaseURL http://localhost:80/wxh
BaseRootDir C:\Users\Administrator\Desktop\WWWROOT

微信平台的 服务器地址(URL) http://sensorwx.a365b.com/wxh, 则如果用户在浏览器请求 http://sensorwx.a365b.com/wxh/index.html,微信控件会到 BaseRootDir 指定的目录下取这个文件index.html。也就是在 C:\Users\Administrator\Desktop\WWWROOT\index.html

6. EncodingType(消息加解密方式)

类型 含义
etPlainText 明文模式
etCipherText 密文模式
etMixText 混合模式

目前只支持 明文模式

7. EncodingAESKey(消息加密KEY)

这个参数只有在 EncodingType 设置为非 etPlainText 时才作为加解密Key使用。

8. dvToken(设备管理用Token)

9. dvEncodingAESKey(设备管理用)

10.dvURL(设备管理用)

11.NeedLog(是否需要打日志)

控制是否需要控件运行时打印日志,True表示需要打印日志,False不需要。默认是True。

二、自定义数据结构

1. 用户基本信息记录

//定义用户基本信息
  TFans_Info = record
    SubScribe    : Byte;      //用户是否订阅该公众号标识,值为0时,代表此用户没有关注该公众号,拉取不到其余信息。
    OpenID       : String;    //用户的标识,对当前公众号唯一
    NickName     : String;    //用户的昵称
    Sex          : Byte;      //用户的性别,值为1时是男性,值为2时是女性,值为0时是未知
    City         : String;    //用户所在城市
    Province     : String;    //用户所在省份
    country      : String;    //用户所在国家
    Language     : String;    //用户的语言,简体中文为zh_CN
    HeadImgUrl   : String;    //用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空。若用户更换头像,原有头像URL将失效。
    SubScribeTime: TDateTime; //用户关注时间,为时间戳。如果用户曾多次关注,则取最后关注时间
    Remark       : String;    //公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注
    groupid      : string;    //用户所在的分组ID
    unionid      : string;    //只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。
    //新增加
    tagid_list   : string;    //用户被打上的标签ID列表
    subscribe_scene : string; // {返回用户关注的渠道来源,
                              //  ADD_SCENE_SEARCH 公众号搜索,
                              //  ADD_SCENE_ACCOUNT_MIGRATION 公众号迁移,
                              //  ADD_SCENE_PROFILE_CARD 名片分享,
                              //  ADD_SCENE_QR_CODE 扫描二维码,
                              //  ADD_SCENE_PROFILE_ LINK 图文页内名称点击,
                              //  ADD_SCENE_PROFILE_ITEM 图文页右上角菜单,
                              //  ADD_SCENE_PAID 支付后关注,
                              //  ADD_SCENE_OTHERS 其他}
    qr_scene     : string;   //二维码扫码场景(开发者自定义)
    qr_scene_str : string;   //二维码扫码场景描述(开发者自定义)
    privilege    : string;
    refresh_token: string;   //刷新授权的token
    access_token : string;   //授权获取基本信息的token
    expires_in   : TDatetime;   //token 的有效期截止时间
    scope        : string;
  end;

  TFans_InfoArr = array of TFans_Info;   //当前用户列表

2. 图文消息记录结构

TNews = record
    Title           : String;  //图文消息标题
    thumb_media_id  : string;  //图文消息的封面图片素材id(必须是永久mediaID)
    show_cover_pic  : string;  //是否显示封面,0为false,即不显示,1为true,即显示
    author          : string;  //作者
    digest          : string;  //图文消息的摘要,仅有单图文消息才有摘要,多图文此处为空
    content         : string;  //图文消息的具体内容,支持HTML标签,必须少于2万字符,小于1M,且此处会去除JS
    Url             : String;  //点击图文消息跳转链接
    content_source_url : string;//图文消息的原文地址,即点击“阅读原文”后的URL
    update_time     : string;  //这篇图文消息素材的最后更新时间
    name            : string;  //文件名称
    Description     : String;  //图文消息描述
    PicUrl          : String;  //图片链接,支持JPG、PNG格式,较好的效果为大图360*200,小图200*200
  end;

3. 永久图文消息获取记录结构

//永久图文消息获取记录 定义开始********************
  Tnews_item = record
    Title           : String;  //图文消息标题
    thumb_media_id  : string;  //图文消息的封面图片素材id(必须是永久mediaID)
    show_cover_pic  : string;  //是否显示封面,0为false,即不显示,1为true,即显示
    author          : string;  //作者
    digest          : string;  //图文消息的摘要,仅有单图文消息才有摘要,多图文此处为空
    content         : string;  //图文消息的具体内容,支持HTML标签,必须少于2万字符,小于1M,且此处会去除JS
    Url             : String;  //点击图文消息跳转链接
    content_source_url    : string;//图文消息的原文地址,即点击“阅读原文”后的URL
    thumb_url             : string;
    need_open_comment     : string;
    only_fans_can_comment : string;
  end;

 TContent = record
   create_time : TDateTime;
   update_time : TDateTime;
   news_item   : TArray<Tnews_item>;
 end;

 TItem = record
   media_id    : string;
   content     : TContent;
   update_time : TDateTime;
 end;

 TWXNews = record
   Item : TArray<TItem>;
   total_count : integer;
   item_count  : integer;
 end;
  //永久图文消息获取记录 定义结束********************

4. 获取(增加)永久 图片、语音、视频 消息定义

//获取永久 图片、语音、视频 消息定义开始 *************************************
  TImage_Voice_Video_Item = record
    media_id   : string;
    name       : string;
    update_time: TDatetime;
    url        : string;
  end;

  TImage_Voice_Video = record
    Item : TArray<TImage_Voice_Video_Item>;
    total_count : integer;
    item_count  : integer;
  end;
  //获取永久 图片、语音、视频 消息定义结束 *************************************

  //增加永久 图文消息 定义开始
  TNews_articles = TArray<Tnews_item>;
  //增加永久 图文消息 定义结束

5. 模板消息结构定义

//模板消息 列表 定义 开始********************************
  Ttemplate_Item = record
          template_id : string;     //模板id
                title : string;     //标题
     primary_industry : string;     //所属行业
     deputy_industry  : string;     //所属副业
              content : string;     //模板内容
              example : string;     //模板样例
  End;
  //模板消息 列表 定义 结束********************************

  //发送模板消息结构定义开始 ************************
  Tminiprogram = record
     appid    : string;
     pagepath : string;
  end;

  Ttemplate_message = record
          touser : string;
     template_id : string;
             url : string;
     miniprogram : Tminiprogram;    //小程序定义
            data : string;
  end;
  //发送模板消息结构定义结束 ************************

6. 其它结构定义

  TMenu = record
    id      : string;
    content : string;
  end;

  //通过openid获取用户在当前devicetype下绑定的deviceid列表
  TDeviceList = record
     devicetype : string;
     deviceid   : string;
  end;

  TArrDeviceList = array of TDeviceList;

  //消息加密方式
  TEncodeingType = (etPlainText,etCipherText,etMixText);  //明文、密文、混合

三、 事件类型定义

1. 错误事件:TOnZZZ_Error

发生错误时会触发这个事件。

procedure(errcode,errmsg : string) of object;

参数说明:

参数名称 参数说明
errcode 错误代码,一般是数字
errmsg 错误描述,是比较详细的描述错误位置,状态等

2. 收到文本消息事件:TOnA01_Text

当后台收到关注者(用户,粉丝)发来的文本消息的时候触发这个事件,可以在这个事件中根据关注者发送的文本消息进行自动回复。【公众号文档-接受普通消息

procedure(AResponseInfo: THttpServerResponse; ToUserName,FromUserName,CreateTime,Text,bizmsgmenuid : string) of object;

参数说明:

参数名称 参数说明
AResponseInfo 表示收到消息当时的Http对象,可以使用这个对象立即进行消息回复
ToUserName 表示是谁发来的消息,关注者的OpenID,这个是站在服务器后台的角度命名的。
FromUserName 表示的是公众号的ID
CreateTime 表示的是消息收到的事件,格式为:YYYY-MM-DD hh:mm:ss
Text 收到的具体文本消息内容
bizmsgmenuid 如果不为空,表示的是收到调查消息菜单的ID,正常情况下为空。具体参见微信开发者文档【[客服消息]中的 发送菜单消息

菜单消息前端界面表现如下:

在这里插入图片描述

3. 收到图片消息:TOnA02_Image

如果用户发送图片,就会触发这个事件,可以在这个事件中处理相关业务。【公众号文档-接受普通消息

procedure(AResponseInfo: THttpServerResponse; ToUserName,FromUserName,CreateTime,PicUrl,MediaId,MsgId : string) of object;

参数说明:

参数名称 参数说明
AResponseInfo 表示收到消息当时的Http对象,可以使用这个对象立即进行消息回复
ToUserName 表示是谁发来的消息,关注者的OpenID,这个是站在服务器后台的角度命名的。
FromUserName 表示的是公众号的ID
CreateTime 表示的是消息收到的事件,格式为:YYYY-MM-DD hh:mm:ss
PicUrl 图像存放的Url地址
MediaId 图片的媒体ID,可以通过这个ID把图像在发送回去给关注者。
MsgId 消息ID,目前无需使用

如果关注者给后台发送一张照片,后台在发送回来,界面和程序如下:

在这里插入图片描述

4. 收到语音信息:TOnA03_Voice

用户给公众号发送语音消息的时候,会触发这个事件,可以在此事件中处理相关逻辑。【公众号文档-接受普通消息

procedure(AResponseInfo: THttpServerResponse; ToUserName,FromUserName,CreateTime,MediaId,Format,MsgID : string) of object;

参数说明:

参数名称 参数说明
AResponseInfo 表示收到消息当时的Http对象,可以使用这个对象立即进行消息回复
ToUserName 表示是谁发来的消息,关注者的OpenID,这个是站在服务器后台的角度命名的。
FromUserName 表示的是公众号的ID
CreateTime 表示的是消息收到的事件,格式为:YYYY-MM-DD hh:mm:ss
PicUrl 图像存放的Url地址
MediaId 图片的媒体ID,可以通过这个ID把图像在发送回去给关注者。
Format 表示语音的格式。语音格式,如amr,speex等
MsgId 消息ID,目前无需使用

5. 收到视频信息:TOnA04_Video

用户给公众号平台发送视频的时候,会触发这个事件。

procedure(AResponseInfo: THttpServerResponse; ToUserName,FromUserName,CreateTime,MediaId,ThumbMediaId,MsgID : string) of object;

参数说明:

参数名称 参数说明
AResponseInfo 表示收到消息当时的Http对象,可以使用这个对象立即进行消息回复
ToUserName 表示是谁发来的消息,关注者的OpenID,这个是站在服务器后台的角度命名的。
FromUserName 表示的是公众号的ID
CreateTime 表示的是消息收到的事件,格式为:YYYY-MM-DD hh:mm:ss
PicUrl 图像存放的Url地址
MediaId 图片的媒体ID,可以通过这个ID把图像在发送回去给关注者。
ThumbMediaId 视频消息缩略图的媒体id,可以调用多媒体文件下载接口拉取数据。
MsgId 消息ID,目前无需使用

6. 收到短视频信息:TOnA05_ShortVideo

公众号平台收到短视频消息时触发这个事件。参数和 TOnVideo 一致。

7. 用户主动上报的位置信息:TOnA06_Location

用户在微信平台主动上报位置信息时触发这个事件。
在这里插入图片描述

procedure(AResponseInfo: THttpServerResponse; ToUserName,FromUserName,CreateTime,Location_X,Location_Y,Scale,Label1,MsgId : string) of object;

参数说明:

参数名称 参数说明
AResponseInfo 表示收到消息当时的Http对象,可以使用这个对象立即进行消息回复
ToUserName 表示是谁发来的消息,关注者的OpenID,这个是站在服务器后台的角度命名的。
FromUserName 表示的是公众号的ID
CreateTime 表示的是消息收到的事件,格式为:YYYY-MM-DD hh:mm:ss
Location_X 地理位置纬度
Location_Y 地理位置经度
Scale 地图缩放大小
Label1 地理位置信息
MsgId 消息ID,64位整型,暂不需要。

8. 收到链接消息:TOnA07_Link

用户点击链接后触发这个事件。【公众号文档-接受普通消息

procedure(AResponseInfo: THttpServerResponse; ToUserName,FromUserName,CreateTime,Title,Description,Url,MsgId : string) of object;

参数说明:

参数名称 参数说明
AResponseInfo 表示收到消息当时的Http对象,可以使用这个对象立即进行消息回复
ToUserName 表示是谁发来的消息,关注者的OpenID,这个是站在服务器后台的角度命名的。
FromUserName 表示的是公众号的ID
CreateTime 表示的是消息收到的事件,格式为:YYYY-MM-DD hh:mm:ss
Title 消息标题
Description 消息描述
Url 消息链接
MsgId 消息ID,64位整型,暂不需要。

9. 关注公众号事件:OnB01_subscribe

用户通过扫描二维码或者其他方式对公众号关注成功后,触发这个事件。

procedure(AResponseInfo: THttpServerResponse; ToUserName,FromUserName,CreateTime : string) of object;

参数说明:

参数名称 参数说明
AResponseInfo 表示收到消息当时的Http对象,可以使用这个对象立即进行消息回复
ToUserName 表示是谁发来的消息,关注者的OpenID,这个是站在服务器后台的角度命名的。
FromUserName 表示的是公众号的ID
CreateTime 表示的是消息收到的时间,格式为:YYYY-MM-DD hh:mm:ss

10. 取消关注公众号事件:OnB02_Unsubscribe

用户取消公众号的关注以后,会触发这个事件。

procedure(AResponseInfo: THttpServerResponse; ToUserName,FromUserName,CreateTime : string) of object;

参数说明:

参数名称 参数说明
AResponseInfo 表示收到消息当时的Http对象,可以使用这个对象立即进行消息回复
ToUserName 表示是谁发来的消息,关注者的OpenID,这个是站在服务器后台的角度命名的。
FromUserName 表示的是公众号的ID
CreateTime 表示的是消息收到的时间,格式为:YYYY-MM-DD hh:mm:ss

11. 首次关注带参数二维码:OnB03_subscribeWithParamFirst

通过扫描带参数的二维码关注公众号时,会触发这个事件。
参见:【微信官方文档 - 消息管理 - 接受事件推送 - 扫描带参数二维码事件

procedure(AResponseInfo: THttpServerResponse; ToUserName,FromUserName,CreateTime,EventKey,ticket : string) of object;

参数说明:

参数名称 参数说明
AResponseInfo 表示收到消息当时的Http对象,可以使用这个对象立即进行消息回复
ToUserName 表示是谁发来的消息,关注者的OpenID,这个是站在服务器后台的角度命名的。
FromUserName 表示的是公众号的ID
CreateTime 表示的是消息收到的时间,格式为:YYYY-MM-DD hh:mm:ss
EventKey 事件KEY值,qrscene_为前缀,后面为二维码的参数值
ticket 二维码的ticket,可用来换取二维码图片

12. 扫描带参数已关注二维码:OnB04_subscribeWithParam

用户扫描已经关注过的公众号的带参数的二维码,触发这个事件。这个事件和 11 中的事件了类似,只是触发接口不同而已。

 procedure(AResponseInfo: THttpServerResponse; ToUserName,FromUserName,CreateTime,EventKey,ticket : string) of object;

参数说明:

参数名称 参数说明
AResponseInfo 表示收到消息当时的Http对象,可以使用这个对象立即进行消息回复
ToUserName 表示是谁发来的消息,关注者的OpenID,这个是站在服务器后台的角度命名的。
FromUserName 表示的是公众号的ID
CreateTime 表示的是消息收到的时间,格式为:YYYY-MM-DD hh:mm:ss
EventKey 事件KEY值,qrscene_为前缀,后面为二维码的参数值
ticket 二维码的ticket,可用来换取二维码图片

13. 自动上报的位置信息:TOnB05_Location_Event

用户允许上报位置信息后,会自动上报位置信息到公众号平台。上报时触发这个事件。【公众号文档-接受事件推送

在这里插入图片描述

procedure(AResponseInfo: THttpServerResponse; ToUserName,FromUserName,CreateTime,Latitude,Longitude,Precision : string) of object;

参数说明:

参数名称 参数说明
AResponseInfo 表示收到消息当时的Http对象,可以使用这个对象立即进行消息回复
ToUserName 表示是谁发来的消息,关注者的OpenID,这个是站在服务器后台的角度命名的。
FromUserName 表示的是公众号的ID
CreateTime 表示的是消息收到的时间,格式为:YYYY-MM-DD hh:mm:ss
Latitude 地理位置纬度
Longitude 地理位置经度
Precision 地理位置精度

获取到用户位置的经度,纬度数据以后,可以通过百度,或者腾讯的 逆地址解析(坐标位描述) 进行解析,得到具体的位置描述信息。
在这里插入图片描述

14. 点击菜单拉取消息时的事件推送:TOnC01_ClickMenu

用户点击公众号下面的菜单时会触发这个事件。

procedure(AResponseInfo: THttpServerResponse; ToUserName,FromUserName,CreateTime,EventKey : string) of object;

参数说明:

参数名称 参数说明
AResponseInfo 表示收到消息当时的Http对象,可以使用这个对象立即进行消息回复
ToUserName 表示是谁发来的消息,关注者的OpenID,这个是站在服务器后台的角度命名的。
FromUserName 表示的是公众号的ID
CreateTime 表示的是消息收到的时间,格式为:YYYY-MM-DD hh:mm:ss
EventKey 事件KEY值,与自定义菜单接口中KEY值对应

15. 点击菜单跳转链接时的事件:TOnC02_View_Event

点击菜单中的链接时触发这个事件。

procedure(AResponseInfo: THttpServerResponse; ToUserName,FromUserName,CreateTime,EventKey,MenuID : string) of object;

参数说明:

参数名称 参数说明
AResponseInfo 表示收到消息当时的Http对象,可以使用这个对象立即进行消息回复
ToUserName 表示是谁发来的消息,关注者的OpenID,这个是站在服务器后台的角度命名的。
FromUserName 表示的是公众号的ID
CreateTime 表示的是消息收到的时间,格式为:YYYY-MM-DD hh:mm:ss
EventKey 事件KEY值,设置的跳转URL
MenuID 指菜单ID,如果是个性化菜单,则可以通过这个字段,知道是哪个规则的菜单被点击了。

16. 扫码推事件的事件推送:TOnC03_Scancode_push

扫描条码等信息会触发这个事件。扫描成功会返回扫描的结果 ScanResult

procedure(AResponseInfo: THttpServerResponse; ToUserName,FromUserName,CreateTime,EventKey,ScanType,ScanResult: string) of object;

参数说明:

参数名称 参数说明
AResponseInfo 表示收到消息当时的Http对象,可以使用这个对象立即进行消息回复
ToUserName 表示是谁发来的消息,关注者的OpenID,这个是站在服务器后台的角度命名的。
FromUserName 表示的是公众号的ID
CreateTime 表示的是消息收到的时间,格式为:YYYY-MM-DD hh:mm:ss
EventKey 事件KEY值,由开发者在创建菜单时设定
ScanType 扫描类型,一般是qrcode
ScanResult 扫描结果,即二维码对应的字符串信息

17. 扫码推事件且弹出“消息接收中”:TOnC04_Scancode_waitmsg

扫码推事件且弹出“消息接收中”提示框的事件推送。和上面命令是一样的,就是多了一个提示信息。

procedure(AResponseInfo: THttpServerResponse; ToUserName,FromUserName,CreateTime,EventKey,ScanType,ScanResult: string) of object;

参数说明:

参数名称 参数说明
AResponseInfo 表示收到消息当时的Http对象,可以使用这个对象立即进行消息回复
ToUserName 表示是谁发来的消息,关注者的OpenID,这个是站在服务器后台的角度命名的。
FromUserName 表示的是公众号的ID
CreateTime 表示的是消息收到的时间,格式为:YYYY-MM-DD hh:mm:ss
EventKey 事件KEY值,由开发者在创建菜单时设定
ScanType 扫描类型,一般是qrcode
ScanResult 扫描结果,即二维码对应的字符串信息

18. 弹出系统拍照发图的事件:TOnC05_Pic_sysphoto

弹出系统照相事件。

procedure(AResponseInfo: THttpServerResponse; ToUserName,FromUserName,CreateTime,EventKey,Count,PicList,PicMd5Sum: string) of object;

参数说明:

参数名称 参数说明
AResponseInfo 表示收到消息当时的Http对象,可以使用这个对象立即进行消息回复
ToUserName 表示是谁发来的消息,关注者的OpenID,这个是站在服务器后台的角度命名的。
FromUserName 表示的是公众号的ID
CreateTime 表示的是消息收到的时间,格式为:YYYY-MM-DD hh:mm:ss
EventKey 事件KEY值,由开发者在创建菜单时设定
count 发送的图片数量
PicList 图片列表
PicMd5Sum 图片的MD5值,开发者若需要,可用于验证接收到图片

19. 弹出拍照或者相册发图的事件:TOnC06_Pic_photo_or_album

弹出照片或者选择照片的菜单事件。

procedure(AResponseInfo: THttpServerResponse; ToUserName,FromUserName,CreateTime,EventKey,Count,PicList,PicMd5Sum: string) of object;

参数说明:

参数名称 参数说明
AResponseInfo 表示收到消息当时的Http对象,可以使用这个对象立即进行消息回复
ToUserName 表示是谁发来的消息,关注者的OpenID,这个是站在服务器后台的角度命名的。
FromUserName 表示的是公众号的ID
CreateTime 表示的是消息收到的时间,格式为:YYYY-MM-DD hh:mm:ss
EventKey 事件KEY值,由开发者在创建菜单时设定
count 发送的图片数量
PicList 图片列表
PicMd5Sum 图片的MD5值,开发者若需要,可用于验证接收到图片

20. 弹出微信相册发图器的事件:TOnC07_Pic_weixin

弹出相测选择照片事件。

procedure(AResponseInfo: THttpServerResponse; ToUserName,FromUserName,CreateTime,EventKey,Count,PicList,PicMd5Sum: string) of object;

参数说明:

参数名称 参数说明
AResponseInfo 表示收到消息当时的Http对象,可以使用这个对象立即进行消息回复
ToUserName 表示是谁发来的消息,关注者的OpenID,这个是站在服务器后台的角度命名的。
FromUserName 表示的是公众号的ID
CreateTime 表示的是消息收到的时间,格式为:YYYY-MM-DD hh:mm:ss
EventKey 事件KEY值,由开发者在创建菜单时设定
count 发送的图片数量
PicList 图片列表
PicMd5Sum 图片的MD5值,开发者若需要,可用于验证接收到图片

21. 弹出地理位置选择器的事件:TOnC08_Location_select

选择地理位置事件,是从菜单中触发的。

procedure(AResponseInfo: THttpServerResponse; ToUserName,FromUserName,CreateTime,EventKey,Location_X,Location_Y,Scale,Label1,Poiname : string) of object;

参数说明:

参数名称 参数说明
AResponseInfo 表示收到消息当时的Http对象,可以使用这个对象立即进行消息回复
ToUserName 表示是谁发来的消息,关注者的OpenID,这个是站在服务器后台的角度命名的。
FromUserName 表示的是公众号的ID
CreateTime 表示的是消息收到的时间,格式为:YYYY-MM-DD hh:mm:ss
EventKey 事件KEY值,由开发者在创建菜单时设定
Location_X X坐标信息
Location_Y Y坐标信息
Label1 地理位置的字符串信息
Poiname 朋友圈POI的名字,可能为空

22. 点击菜单跳转小程序的事件:TOnC09_view_miniprogram

在菜单中点击小程序跳转事件。

 procedure(AResponseInfo: THttpServerResponse; ToUserName,FromUserName,CreateTime,EventKey,MenuID: string) of object;

参数说明:

参数名称 参数说明
AResponseInfo 表示收到消息当时的Http对象,可以使用这个对象立即进行消息回复
ToUserName 表示是谁发来的消息,关注者的OpenID,这个是站在服务器后台的角度命名的。
FromUserName 表示的是公众号的ID
CreateTime 表示的是消息收到的时间,格式为:YYYY-MM-DD hh:mm:ss
EventKey 事件KEY值,跳转的小程序路径
MenuID 菜单ID,如果是个性化菜单,则可以通过这个字段,知道是哪个规则的菜单被点击了

23. 模板消息发送完成事件:TOnE01_template_sendjob_finishi

当给用户发送完成模板消息后触发这个事件。
参见:【消息管理 - 模板消息接口 - 事件推送

procedure(MsgID, Status : string) of object;

参数说明:

参数名称 参数说明
MsgID 消息id
Status 发送状态: (成功,拒收)。

24. 服务器配置成功事件:TOnX01_ServerConfigSuccess

微信服务器第三方后台配置成功会触发这个事件。具体就是下图中如果配置成功,就会触发这个事件!在微信公众号管理后台中的【开发 - 基本配置】中。
在这里插入图片描述

25. 资质认证成功(此时立即获得接口权限):TOnZ01_qualification_verify_success

资质认证成功后,公众号就获得了认证相关接口权限,资质认证成功一定发生在名称认证成功之前,
名称认证成功后,公众号才在微信客户端中获得打勾认证标识。

procedure(Next_Onqualification_verify_Time : TDateTime) of object;

参数说明:

参数名称 参数说明
Next_Onqualification_verify_Time 需这个事件之前进行认证

26. 资质认证失败事件:TOnZ02_qualification_verify_fail

资质认证失败,触发这个事件!

procedure(FailTime : TDateTime; FailReason : string) of object;

参数说明:

参数名称 参数说明
FailTime 认证失败的时间
FailReason 认证失败的原因说明。

27. 名称认证成功事件(即命名成功):TOnZ03_naming_verify_success

procedure(Next_Onqualification_verify_Time : TDateTime) of object;

参数说明:

参数名称 参数说明
Next_Onqualification_verify_Time 在这个时间之后认证过期

28. 名称认证失败(这时虽然客户端不打勾,但仍有接口权限):TOnZ04_naming_verify_fail

名称认证失败事件!

procedure(FailTime : TDateTime; FailReason : string) of object;

参数说明:

参数名称 参数说明
FailTime 认证失败的时间
FailReason 认证失败的原因

29. 年审通知事件:TOnZ05_annual_renew

公众号快要年审的时候,腾讯会推送提醒年审事件!

procedure(Next_Onqualification_verify_Time : TDateTime) of object;

参数说明:

参数名称 参数说明
Next_Onqualification_verify_Time 在这个时间之后认证过期,这个时间之前要进行认证。

30. 认证过期失效通知事件:TOnZ06_verify_expired

认证过期之后,腾旭会推送提醒事件。

procedure(ExpiredTime : TDateTime) of object;

参数说明:

参数名称 参数说明
ExpiredTime 已于改时间认证过期,请重新发起认证
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!