chore: 添加微信事件推送类型
This commit is contained in:
114
src/types/received-event.ts
Normal file
114
src/types/received-event.ts
Normal file
@ -0,0 +1,114 @@
|
||||
/**
|
||||
* 微信公众号/服务号「接收事件推送」类型定义
|
||||
*
|
||||
* @remarks
|
||||
* - 对应微信官方XML信息结构
|
||||
* - 所有事件类型继承自 {@link WechatReceivedBaseEvent}
|
||||
* - 通过 {@link Event} 字段区分不同事件类型
|
||||
* @see 微信官方文档: https://developers.weixin.qq.com/doc/service/guide/product/message/Receiving_event_pushes.html
|
||||
*
|
||||
* @packageDocumentation
|
||||
*/
|
||||
|
||||
/**
|
||||
* 「接收事件推送」事件类型字面量联合类型
|
||||
*
|
||||
* @remarks
|
||||
* 可用于类型收窄
|
||||
*/
|
||||
export type WechatReceivedEventType = | "subscribe"
|
||||
| "unsubscribe"
|
||||
| "SCAN"
|
||||
| "LOCATION"
|
||||
| "CLICK"
|
||||
| "VIEW"
|
||||
|
||||
/**
|
||||
* 「接收事件推送」基础类型定义
|
||||
*
|
||||
* @remarks
|
||||
* 所有事件类型均包含这些公共字段
|
||||
*/
|
||||
export interface WechatReceivedBaseEvent {
|
||||
/** 开发者微信号 */
|
||||
ToUserName: string;
|
||||
/** 发送方帐号(一个OpenID) */
|
||||
FromUserName: string;
|
||||
/** 消息创建时间 (整型) */
|
||||
CreateTime: number;
|
||||
/** 消息类型,event */
|
||||
MsgType: "event";
|
||||
/** 事件类型
|
||||
*
|
||||
* @remarks
|
||||
* 在具体事件类型中收窄为字面量类型(如"subscribe","CLICK"等)
|
||||
*/
|
||||
Event: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 「接收事件推送」用户未关注时,进行关注后的事件推送
|
||||
*/
|
||||
export interface WechatReceivedSubscribeEvent extends WechatReceivedBaseEvent {
|
||||
/** 事件类型: subscribe */
|
||||
Event: "subscribe";
|
||||
/** 事件KEY值,qrscene_为前缀,后面为二维码的参数值 */
|
||||
EventKey?: string;
|
||||
/** 二维码的ticket,可用来换取二维码图片 */
|
||||
Ticket?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 「接收事件推送」用户已关注时的事件推送
|
||||
*/
|
||||
export interface WechatReceivedScanEvent extends WechatReceivedBaseEvent {
|
||||
/** 事件类型: SCAN */
|
||||
Event: "SCAN";
|
||||
/** 事件KEY值,是一个32位无符号整数,即创建二维码时的二维码scene_id */
|
||||
EventKey: string;
|
||||
/** 二维码的ticket,可用来换取二维码图片 */
|
||||
Ticket: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 「接收事件推送」上报地理位置事件
|
||||
*/
|
||||
export interface WechatReceivedLocationEvent extends WechatReceivedBaseEvent {
|
||||
/** 事件类型: LOCATION */
|
||||
Event: "LOCATION";
|
||||
/** 地理位置纬度 */
|
||||
Latitude: string;
|
||||
/** 地理位置经度 */
|
||||
Longitude: string;
|
||||
/** 地理位置精度 */
|
||||
Precision: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 「接收事件推送」自定义菜单点击事件
|
||||
*/
|
||||
export interface WechatReceivedClickEvent extends WechatReceivedBaseEvent {
|
||||
/** 事件类型: CLICK */
|
||||
Event: "CLICK";
|
||||
/** 事件KEY值,与自定义菜单接口中KEY值对应 */
|
||||
EventKey: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 「接收事件推送」自定义菜单跳转链接事件
|
||||
*/
|
||||
export interface WechatReceivedViewEvent extends WechatReceivedBaseEvent {
|
||||
/** 事件类型: VIEW */
|
||||
Event: "VIEW";
|
||||
/** 事件KEY值,设置的跳转URL */
|
||||
EventKey: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 「接收事件推送」类型联合类型
|
||||
*/
|
||||
export type WechatReceivedEvent = WechatReceivedSubscribeEvent
|
||||
| WechatReceivedScanEvent
|
||||
| WechatReceivedLocationEvent
|
||||
| WechatReceivedClickEvent
|
||||
| WechatReceivedViewEvent;
|
||||
Reference in New Issue
Block a user