lazy-kit-weixin
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

lazy-kit-weixin

weixin quick toolkit based on Nodejs

Functions

interface WxAccessToken {
  access_token?: string;
  expires_in?: number;
  errcode?: number;
  errmsg?: string;
}
interface WxWebAccessToken {
  access_token?: string;
  expires_in?: number;
  refresh_token?: string;
  openid?: string;
  scope?: string;
  unionid?: string;
}
interface WxSession {
  openid?: string;
  session_key?: string;
  unionid?: string;
  errcode?: number;
  errmsg?: string;
}
interface WxPhone {
  phone_info?: {
    phoneNumber?: string;
    purePhoneNumber?: string;
    countryCode?: string;
    watermark?: {
      appid?: string;
      timestamp?: number;
    };
  };
  errcode?: number;
  errmsg?: string;
}
interface WxWebUserInfo {
  openid?: string;
  nickname?: string;
  sex?: number;
  province?: string;
  city?: string;
  country?: string;
  headimgurl?: string;
  privilege?: string[];
  unionid?: string;
}
interface NotifyParams {
  out_trade_no: string;
  transaction_id: string;
  trade_state: string;
  success_time: string;
}
interface MchOptions {
  id: string;
  serial_no: string;
  key_path: string;
  notify_url: string;
  prepay_url: string;
  v2?: string;
  v3?: string;
}
interface PrepayParams {
  appid: string;
  openid: string;
  amount: number;
  description: string;
  tradeno: string;
}
interface MsgTemplate {
  touser: string;
  template_id: string;
  page?: string;
  data: any;
  miniprogram_state: "developer" | "trial" | "formal";
  lang: "zh_CN";
}
interface AppSetting {
  appid: string;
  appSecret: string;
}

/**
 * [1] 授权认证
 */
namespace WeAuth {
  /**
   * 获取accessToken
   * @param appid
   * @param secret
   * @returns WxAccessTokenResult
   */
  function getAccessToken(
    appid: string,
    secret: string,
    options?: {
      url: string;
    }
  ): Promise<WxAccessToken>;

  /**
   * 获取session
   * @param appid
   * @param secret
   * @param code
   * @returns WxSessionResult
   */
  function getSession(
    appid: string,
    secret: string,
    code: string,
    options?: {
      url: string;
    }
  ): Promise<WxSession>;

  /**
   * 获取手机号
   * @param appid
   * @param secret
   * @param code
   * @returns WxPhoneResult
   */
  function getPhone(
    appid: string,
    secret: string,
    code: string,
    options?: {
      url: string;
    }
  ): Promise<WxPhone>;

  /**
   * 解密
   * @param encrypted_data
   * @param iv
   * @param appId
   * @param session_key
   * @returns encrypted JSON
   */
  function decrypt(
    encrypted_data: string,
    iv: string,
    appId: string,
    session_key: string
  ): any;

  /**
   * 获取微信QR扫码登陆页的访问地址
   * @param appid
   * @param redirect_uri query参数:CODE&SCOPE
   * @param scope snsapi_login
   * @param state
   * @param lang
   * @returns
   */
  function getScanPageURL(
    appid: string,
    redirect_uri: string,
    scope?: string,
    options?: {
      url: string;
      state?: string;
      lang?: string;
    }
  ): string;

  /**
   * 获取网页端的accessToken
   * @param appid
   * @param secret
   * @param code 网页端的redirect_uri返回的code
   * @returns
   */
  function getWebAccessToken(
    appid: string,
    secret: string,
    code: string,
    options?: {
      url: string;
    }
  ): Promise<WxWebAccessToken>;

  /**
   * 刷新网页端的Token
   * @param appid
   * @param refresh_token
   * @returns WxWebAccessTokenResult
   */
  function refreshWebAccessToken(
    appid: string,
    token: string,
    options?: {
      url: string;
    }
  ): Promise<WxWebAccessToken>;

  /**
   * 获取用户信息
   * @param access_token
   * @param openid
   * @returns
   */
  function getWebUserInfo(
    access_token: string,
    openid: string,
    options?: {
      url: string;
    }
  ): Promise<WxWebUserInfo>;
}

/**
 * [2] 商家支付
 */
namespace WePay {
  /**
   * 统一下单
   * @param params PrepayParams
   * @param mch MchOptions
   * @returns payment 小程序支付参数
   */
  function prepay(params: PrepayParams, mch: MchOptions): Promise<any>;

  /**
   * 统一订单参数
   * @param mch_id
   * @param notify_url
   * @param appid
   * @param openid
   * @param out_trade_no
   * @param description
   * @param amount 分
   * @param currency "CNY"
   * @returns
   */
  function getPrePayArgs(
    mch_id: string,
    notify_url: string,
    appid: string,
    openid: string,
    out_trade_no: string,
    description: string,
    amount: number,
    currency?: string
  ): any;

  /**
   * 获取小程序调用支付参数
   * @param appid
   * @param mchKey
   * @param prepay_id
   * @returns
   */
  function getPaymentArgs(
    appid: string,
    mchKey: string | Buffer,
    prepay_id: string
  ): any;

  /**
   * 支付完成回调 [POST]
   * @param req_body 请求参数
   * @param apiv3
   * @param callback (params: NotifyParams)=>void 后处理函数
   * @returns 通知参数
   */
  function onNotify(
    req_body: any,
    apiv3: string,
    callback?: (params: NotifyParams) => void
  ): Promise<NotifyParams>;

  /**
   * 获取支付回调参数
   * @param body
   * @returns NotifyParams
   */
  function getNotifyParams(body: any, apiv3: string): NotifyParams;

  /**
   * 参数解密
   * @param resource
   * @param apiv3
   * @returns any 通知回调参数
   */
  function decode(resource: any, apiv3: string): any;
}

/**
 * [3] 消息推送
 */
namespace WeMsg {
  /**
   * 发送消息
   * @param template MsgTemplate 消息模板
   * @param app AppSetting 小程序参数
   * @returns 推送回执
   */
  function send(
    template: MsgTemplate,
    app: AppSetting,
    options?: {
      url: string;
    }
  ): Promise<any>;
}

Readme

Keywords

none

Package Sidebar

Install

npm i lazy-kit-weixin

Weekly Downloads

1

Version

1.0.0

License

none

Unpacked Size

43.5 kB

Total Files

5

Last publish

Collaborators

  • geo.pan