/// import { Promise } from 'bluebird'; import { RequestInfo, RequestInit, Response } from 'node-fetch'; import { MiniSubscribeData, SubscribeMessageInfo, TemplateData, WxAccessToken, WxCodeSession, WxQrTicketInfo, WxSendTemplateInfo } from './wx.interfaces'; import { WxUserInfo, WxUserList } from './wx.vo'; declare type QrScene = { expire_seconds?: number; action_name: 'QR_SCENE'; action_info: { scene: { scene_id: string; }; }; } | { expire_seconds?: number; action_name: 'QR_STR_SCENE'; action_info: { scene: { scene_str: string; }; }; }; declare type QrLimitScene = { action_name: 'QR_LIMIT_SCENE'; action_info: { scene: { scene_id: string; }; }; } | { action_name: 'QR_LIMIT_STR_SCENE'; action_info: { scene: { scene_str: string; }; }; }; export declare type TemplateInfo = { touser: string; template_id: string; data: TemplateData; color?: string; }; export declare type MiniAppTemplateInfo = TemplateData & { miniprogram?: { appid: string; pagepath: string; }; pagepath?: string; }; export declare type UrlRedirectTemplateInfo = TemplateData & { url: string; }; export declare type MiniSubscribeInfo = { touser: string; template_id: string; page?: string; data: MiniSubscribeData; }; declare type CreateQRCode = { path: string; width?: number; }; declare type GetMiniCode = { path: string; width?: number; auto_color?: boolean; line_color?: Record<'r' | 'g' | 'b', string>; is_hyaline?: boolean; }; export declare type TemplateMsgInfo = TemplateInfo | MiniAppTemplateInfo | UrlRedirectTemplateInfo; export declare class WxApi { /** * https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html * @param opts.mini 是否是小程序 */ static getAccessToken: (opts?: { appId?: string; appSecret?: string; mini?: boolean; }) => Promise; static code2Session: (code: string) => Promise; static getUserList: (nextOpenId?: string) => Promise; static batchGetUserInfo: (openIds: string[]) => Promise; /** * https://developers.weixin.qq.com/doc/offiaccount/User_Management/Get_users_basic_information_UnionID.html#UinonId * @param openId */ static getUserInfo: (openId: string) => Promise; static sendTemplateMsg: (opts: TemplateMsgInfo) => Promise; /** * 小程序订阅消息发送 * https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.send.html * @param opts */ static sendSubscribeMsg: (opts: MiniSubscribeInfo) => Promise; static createQrTicket: (opts: QrScene | QrLimitScene) => Promise; /** * https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.createQRCode.html * @param opts */ static createQRCode: (opts: CreateQRCode) => Promise; /** * https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.get.html#HTTPS%20%E8%B0%83%E7%94%A8 * @param opts */ static getMiniCode: (opts: GetMiniCode) => Promise; static getQrCodeByTicket: (ticket: string) => Promise; static wrappedFetch(url: RequestInfo, init?: RequestInit): Promise; static logInterceptor(response: T): Promise>; static withConfig(call: (config: WeChatServiceConfig) => Promise): Promise; static withMiniConfig(call: (config: WeChatServiceConfig) => Promise): Promise; static withAccessToken(fn: (config: WeChatServiceConfig, opts: { accessToken: string; }) => Promise, mini?: boolean): Promise; } export declare class WeChatServiceConfig { login?: boolean; saveToAdmin?: boolean; enabled?: boolean; token?: string; appId?: string; appSecret?: string; miniEnabled?: boolean; miniAppId?: string; miniAppSecret?: string; constructor(o: WeChatServiceConfig); } export declare enum WeChatFieldKeys { login = "wechat.login", saveToAdmin = "wechat.save-to-admin", enabled = "service.enabled", token = "service.token", appId = "service.appid", appSecret = "service.appsecret", miniEnabled = "mini.enabled", miniAppId = "mini.appid", miniAppSecret = "mini.appsecret" } export {};