60 lines
2.1 KiB
TypeScript
60 lines
2.1 KiB
TypeScript
export { isWechatBrowser, isMiniProgram, getRuntimePlatform } from './env';
|
||
export { initWechatJssdk, ensureJssdkReady, isJssdkReady } from './jssdk';
|
||
export {
|
||
getWechatLocation,
|
||
canUseWechatLocation,
|
||
isWechatEnv,
|
||
} from './location';
|
||
export { scanQrCode } from './scan';
|
||
export { invokeWechatPay } from './pay';
|
||
export { chooseWechatImages, canUseWechatChooseImage } from './chooseImage';
|
||
export type { ChooseWechatImageOptions } from './chooseImage';
|
||
export {
|
||
getWechatOAuthUrl,
|
||
startWechatOAuthLogin,
|
||
getMiniProgramLoginCode,
|
||
loginWithWechatCode,
|
||
handleWechatOAuthCallback,
|
||
bindWechatPhone,
|
||
getWechatPhoneNumber,
|
||
wechatLogin,
|
||
WECHAT_INAPP_REQUIRED_MSG,
|
||
} from './auth';
|
||
export type { WeixinSdkConfig, WxApi, MiniProgramWx } from './types';
|
||
export { DEFAULT_JS_API_LIST } from './types';
|
||
|
||
import type { WeixinSdkConfig } from './types';
|
||
import { initWechatJssdk } from './jssdk';
|
||
import { getWechatLocation } from './location';
|
||
import { scanQrCode } from './scan';
|
||
import { invokeWechatPay } from './pay';
|
||
import { chooseWechatImages } from './chooseImage';
|
||
import {
|
||
wechatLogin,
|
||
handleWechatOAuthCallback,
|
||
bindWechatPhone,
|
||
getWechatPhoneNumber,
|
||
} from './auth';
|
||
|
||
/** 微信 SDK 门面(按端注入 apiBase / clientApp) */
|
||
export function createWeixinSdk(config: WeixinSdkConfig) {
|
||
return {
|
||
init: () => initWechatJssdk({ ...config, apiBase: config.apiBase ?? '/api/v1' }),
|
||
login: () => wechatLogin(config),
|
||
handleOAuthCallback: (params?: URLSearchParams) => handleWechatOAuthCallback(config, params),
|
||
bindPhone: (payload: { wxSessionKey: string; phone: string; code: string }) =>
|
||
bindWechatPhone(config, payload),
|
||
getPhoneNumber: () => getWechatPhoneNumber(config),
|
||
getLocation: () => getWechatLocation(config),
|
||
scanQrCode: () => scanQrCode(config),
|
||
chooseImages: (options?: Parameters<typeof chooseWechatImages>[1]) =>
|
||
chooseWechatImages(config, options),
|
||
pay: (prepay: Parameters<typeof invokeWechatPay>[0]) =>
|
||
invokeWechatPay(prepay, {
|
||
apiBase: config.apiBase ?? '/api/v1',
|
||
clientApp: config.clientApp,
|
||
getAccessToken: config.getAccessToken,
|
||
}),
|
||
};
|
||
}
|