typed-wx-api
Version:
Typed Wechat API
130 lines (129 loc) • 3.24 kB
TypeScript
export interface WxMpUserMessage {
ToUserName: string;
FromUserName: string;
CreateTime: string;
MsgId: string;
/**消息的数据ID(消息如果来自文章时才有)*/
MsgDataId?: string;
/** 多图文时第几篇文章,从1开始(消息如果来自文章时才有)*/
Idx?: string;
}
export interface WxMpEventMessage {
ToUserName: string;
FromUserName: string;
CreateTime: string;
MsgId: string;
MsgType: 'event';
}
export interface WxMpMessages {
text: WxMpUserMessage & {
MsgType: 'text';
Content: string;
};
image: WxMpUserMessage & {
MsgType: 'image';
PicUrl: string;
MediaId: string;
};
voice: WxMpUserMessage & {
MsgType: 'voice';
Format: string;
MediaId: string;
};
video: WxMpUserMessage & {
MsgType: 'video';
ThumbMediaId: string;
MediaId: string;
};
shortvideo: WxMpUserMessage & {
MsgType: 'shortvideo';
ThumbMediaId: string;
MediaId: string;
};
location: WxMpUserMessage & {
MsgType: 'location';
Location_X: string;
Location_Y: string;
Scale: string;
Label: string;
};
link: WxMpUserMessage & {
MsgType: 'link';
Title: string;
Description?: string;
Url: string;
};
subscribe: WxMpEventMessage & {
Event: 'event';
EventKey?: string;
Ticket?: string;
};
unsubscribe: WxMpEventMessage & {
Event: 'unsubscribe';
};
SCAN: WxMpEventMessage & {
Event: 'SCAN';
EventKey: string;
Ticket: string;
};
LOCATION: WxMpEventMessage & {
Event: 'LOCATION';
Latitude: string;
Longitude: string;
Precision: string;
};
CLICK: WxMpEventMessage & {
Event: 'CLICK';
EventKey: string;
};
VIEW: WxMpEventMessage & {
Event: 'VIEW';
EventKey: string;
};
/**成功: status =success , 失败: failed:user block failed: system failed*/
TEMPLATESENDJOBFINISH: WxMpEventMessage & {
Event: 'TEMPLATESENDJOBFINISH';
Status: string;
};
}
export declare class WxMpCrypto {
private readonly wxCrypto;
constructor(config: {
token: string;
encodingAESKey: string;
appid: string;
});
decrypt(params: {
msg_signature: string;
timestamp: string;
nonce: string;
}, encrypt: string): Promise<{
errMessage: string;
message?: undefined;
} | {
errMessage: undefined;
message: string;
}>;
private formatXmlObj;
decryptMessageXML(params: {
msg_signature: string;
timestamp: string;
nonce: string;
}, xmlStr: string): Promise<{
errMessage: string;
} | {
errMessage: undefined;
Decrypt: WxMpMessages[keyof WxMpMessages];
}>;
decryptXML<T>(params: {
msg_signature: string;
timestamp: string;
nonce: string;
}, xmlStr: string): Promise<{
errMessage: string;
message?: undefined;
} | {
errMessage: undefined;
Decrypt: T;
}>;
}