9 changed files with 1734 additions and 26 deletions
@ -0,0 +1,21 @@ |
|||
MIT License |
|||
|
|||
Copyright (c) 2023 Yanxi |
|||
|
|||
Permission is hereby granted, free of charge, to any person obtaining a copy |
|||
of this software and associated documentation files (the "Software"), to deal |
|||
in the Software without restriction, including without limitation the rights |
|||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
|||
copies of the Software, and to permit persons to whom the Software is |
|||
furnished to do so, subject to the following conditions: |
|||
|
|||
The above copyright notice and this permission notice shall be included in all |
|||
copies or substantial portions of the Software. |
|||
|
|||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
|||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
|||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
|||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
|||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
|||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
|||
SOFTWARE. |
|||
@ -0,0 +1,36 @@ |
|||
微信官方 js-sdk |
|||
---- |
|||
|
|||
说明: 仅将官方 js-sdk 发布到 npm,支持 CommonJS,便于 browserify, webpack 等直接使用,支持 TypeScript。 |
|||
|
|||
|
|||
官方 JS 源码: https://res.wx.qq.com/open/js/jweixin-1.6.0.js |
|||
|
|||
官方使用说明: https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html |
|||
|
|||
安装: |
|||
```shell |
|||
npm install weixin-js-sdk |
|||
``` |
|||
|
|||
使用: |
|||
```javascript |
|||
// commonjs |
|||
var wx = require('weixin-js-sdk'); |
|||
|
|||
// es module |
|||
import wx from 'weixin-js-sdk' |
|||
``` |
|||
|
|||
### Old versions |
|||
|
|||
* [1.0.0](https://github.com/yanxi123-com/weixin-js-sdk/tree/1.0.0) |
|||
* [1.2.0](https://github.com/yanxi123-com/weixin-js-sdk/tree/1.2.0) |
|||
|
|||
### 个人主页 |
|||
|
|||
* [https://yanxi123.com/](https://yanxi123.com/) |
|||
|
|||
### 感谢 |
|||
|
|||
TypeScript 定义文件来自 [wx-jssdk-ts](https://github.com/zhaoky/wx-jssdk-ts/blob/master/index.d.ts) |
|||
@ -0,0 +1,601 @@ |
|||
// Type definitions for weixin jssdk 1.6.0
|
|||
// Project: https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115
|
|||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
|||
|
|||
declare namespace wx { |
|||
type ImageSizeType = "original" | "compressed"; |
|||
type ImageSourceType = "album" | "camera"; |
|||
type VideoSourceType = "album" | "camera"; |
|||
type ApiMethod = |
|||
| "onMenuShareTimeline" |
|||
| "onMenuShareAppMessage" |
|||
| "onMenuShareQQ" |
|||
| "onMenuShareWeibo" |
|||
| "onMenuShareQZone" |
|||
| "updateAppMessageShareData" |
|||
| "updateTimelineShareData" |
|||
| "startRecord" |
|||
| "stopRecord" |
|||
| "onVoiceRecordEnd" |
|||
| "playVoice" |
|||
| "pauseVoice" |
|||
| "stopVoice" |
|||
| "onVoicePlayEnd" |
|||
| "uploadVoice" |
|||
| "downloadVoice" |
|||
| "chooseImage" |
|||
| "previewImage" |
|||
| "uploadImage" |
|||
| "downloadImage" |
|||
| "translateVoice" |
|||
| "getNetworkType" |
|||
| "openLocation" |
|||
| "getLocation" |
|||
| "hideOptionMenu" |
|||
| "showOptionMenu" |
|||
| "hideMenuItems" |
|||
| "showMenuItems" |
|||
| "hideAllNonBaseMenuItem" |
|||
| "showAllNonBaseMenuItem" |
|||
| "closeWindow" |
|||
| "scanQRCode" |
|||
| "chooseWXPay" |
|||
| "openProductSpecificView" |
|||
| "addCard" |
|||
| "chooseCard" |
|||
| "openCard"; |
|||
// 所有JS接口列表
|
|||
type jsApiList = ApiMethod[]; |
|||
|
|||
// 开放标签列表
|
|||
// https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_Open_Tag.html
|
|||
type openTag = "wx-open-launch-weapp" | "wx-open-launch-app" | "wx-open-subscribe" | "wx-open-audio" |
|||
type openTagList = openTag[]; |
|||
|
|||
// 所有菜单项列表
|
|||
// 基本类
|
|||
type menuBase = |
|||
| "menuItem:exposeArticle" // 举报
|
|||
| "menuItem:setFont" // 调整字体
|
|||
| "menuItem:dayMode" // 日间模式
|
|||
| "menuItem:nightMode" // 夜间模式
|
|||
| "menuItem:refresh" // 刷新
|
|||
| "menuItem:profile" // 查看公众号(已添加)
|
|||
| "menuItem:addContact"; // 查看公众号(未添加)
|
|||
// 传播类
|
|||
type menuShare = |
|||
| "menuItem:share:appMessage" // 发送给朋友
|
|||
| "menuItem:share:timeline" // 分享到朋友圈
|
|||
| "menuItem:share:qq" // 分享到QQ
|
|||
| "menuItem:share:weiboApp" // 分享到Weibo
|
|||
| "menuItem:favorite" // 收藏
|
|||
| "menuItem:share:facebook" // 分享到FB
|
|||
| "menuItem:share:QZone"; // 分享到 QQ 空间
|
|||
|
|||
// 保护类
|
|||
type menuProtected = |
|||
| "menuItem:editTag" // 编辑标签
|
|||
| "menuItem:delete" // 删除
|
|||
| "menuItem:copyUrl" // 复制链接
|
|||
| "menuItem:originPage" // 原网页
|
|||
| "menuItem:readMode" // 阅读模式
|
|||
| "menuItem:openWithQQBrowser" // 在QQ浏览器中打开
|
|||
| "menuItem:openWithSafari" // 在Safari中打开
|
|||
| "menuItem:share:email" // 邮件
|
|||
| "menuItem:share:brand"; // 一些特殊公众号
|
|||
|
|||
type menuList = Array<menuBase | menuProtected | menuShare>; |
|||
|
|||
function config(conf: { |
|||
debug?: boolean; // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
|
|||
appId: string; // 必填,公众号的唯一标识
|
|||
timestamp: number; // 必填,生成签名的时间戳
|
|||
nonceStr: string; // 必填,生成签名的随机串
|
|||
signature: string; // 必填,签名,见附录1
|
|||
jsApiList?: jsApiList; // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
|
|||
openTagList?: openTagList; |
|||
}): void; |
|||
|
|||
interface Resouce { |
|||
localId: string; |
|||
} |
|||
interface BaseParams { |
|||
success?(...args: any[]): void; |
|||
/** 接口调用失败的回调函数 */ |
|||
fail?(...args: any[]): void; |
|||
/** 接口取消调用的回调函数 */ |
|||
cancel?(...args: any[]): void; |
|||
/** 接口调用结束的回调函数(调用成功、失败都会执行) */ |
|||
complete?(...args: any[]): void; |
|||
} |
|||
function ready(fn: () => void): void; |
|||
function error(fn: (err: { errMsg: string }) => void): void; |
|||
|
|||
interface IcheckJsApi extends BaseParams { |
|||
jsApiList: jsApiList; // 需要检测的JS接口列表,所有JS接口列表见附录2,
|
|||
// 以键值对的形式返回,可用的api值true,不可用为false
|
|||
// 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
|
|||
success(res: { |
|||
checkResult: { [api: string]: boolean }; |
|||
errMsg: string; |
|||
}): void; |
|||
} |
|||
/** |
|||
* 判断当前客户端版本是否支持指定JS接口 |
|||
* 备注:checkJsApi接口是客户端6.0.2新引入的一个预留接口,第一期开放的接口均可不使用checkJsApi来检测。 |
|||
*/ |
|||
function checkJsApi(params: IcheckJsApi): void; |
|||
|
|||
interface IonMenuShareTimeline extends BaseParams { |
|||
title: string; // 分享标题
|
|||
link: string; // 分享链接
|
|||
imgUrl: string; // 分享图标
|
|||
// 用户确认分享后执行的回调函数
|
|||
success(): void; |
|||
// 用户取消分享后执行的回调函数
|
|||
cancel(): void; |
|||
} |
|||
/*=============================基础接口================================*/ |
|||
/** |
|||
* 获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 |
|||
*/ |
|||
function onMenuShareTimeline(params: IonMenuShareTimeline): void; |
|||
|
|||
interface IonMenuShareAppMessage extends BaseParams { |
|||
title: string; // 分享标题
|
|||
desc: string; // 分享描述
|
|||
link: string; // 分享链接
|
|||
imgUrl: string; // 分享图标
|
|||
type?: "music" | "video或link" | "link"; // 分享类型,music、video或link,不填默认为link
|
|||
dataUrl?: string; // 如果type是music或video,则要提供数据链接,默认为空
|
|||
// 用户确认分享后执行的回调函数
|
|||
success(): void; |
|||
// 用户取消分享后执行的回调函数
|
|||
cancel(): void; |
|||
} |
|||
/** |
|||
* 获取“分享给朋友”按钮点击状态及自定义分享内容接口 |
|||
*/ |
|||
function onMenuShareAppMessage(params: IonMenuShareAppMessage): void; |
|||
|
|||
interface IonMenuShareQQ extends BaseParams { |
|||
title: string; // 分享标题
|
|||
desc: string; // 分享描述
|
|||
link: string; // 分享链接
|
|||
imgUrl: string; // 分享图标
|
|||
// 用户确认分享后执行的回调函数
|
|||
success(): void; |
|||
// 用户取消分享后执行的回调函数
|
|||
cancel(): void; |
|||
} |
|||
/** |
|||
* 获取“分享到QQ”按钮点击状态及自定义分享内容接口 |
|||
*/ |
|||
function onMenuShareQQ(params: IonMenuShareQQ): void; |
|||
|
|||
interface IonMenuShareWeibo extends BaseParams { |
|||
title: string; // 分享标题
|
|||
desc: string; // 分享描述
|
|||
link: string; // 分享链接
|
|||
imgUrl: string; // 分享图标
|
|||
// 用户确认分享后执行的回调函数
|
|||
success(): void; |
|||
// 用户取消分享后执行的回调函数
|
|||
cancel(): void; |
|||
} |
|||
/** |
|||
* 获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 |
|||
*/ |
|||
function onMenuShareWeibo(params: IonMenuShareWeibo): void; |
|||
|
|||
interface IonMenuShareQZone extends BaseParams { |
|||
title: string; // 分享标题
|
|||
desc: string; // 分享描述
|
|||
link: string; // 分享链接
|
|||
imgUrl: string; // 分享图标
|
|||
// 用户确认分享后执行的回调函数
|
|||
success(): void; |
|||
// 用户取消分享后执行的回调函数
|
|||
cancel(): void; |
|||
} |
|||
/** |
|||
* 获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 |
|||
*/ |
|||
function onMenuShareQZone(params: IonMenuShareQZone): void; |
|||
|
|||
interface IupdateAppMessageShareData extends BaseParams { |
|||
title: string; // 分享标题
|
|||
desc: string; // 分享描述
|
|||
link: string; // 分享链接
|
|||
imgUrl: string; // 分享图标
|
|||
// 用户确认分享后执行的回调函数
|
|||
success(): void; |
|||
} |
|||
/** |
|||
* 获取“分享给朋友”及“分享到QQ”按钮点击状态及自定义分享内容接口(新) |
|||
*/ |
|||
function updateAppMessageShareData(params: IupdateAppMessageShareData): void; |
|||
|
|||
interface IupdateTimelineShareData extends BaseParams { |
|||
title: string; // 分享标题
|
|||
link: string; // 分享链接
|
|||
imgUrl: string; // 分享图标
|
|||
// 用户确认分享后执行的回调函数
|
|||
success(): void; |
|||
} |
|||
/** |
|||
* 获取“分享到朋友圈”及“分享到QQ空间”按钮点击状态及自定义分享内容接口 |
|||
*/ |
|||
function updateTimelineShareData(params: IupdateTimelineShareData): void; |
|||
/*=============================基础接口================================*/ |
|||
|
|||
/*=============================图像接口================================*/ |
|||
interface IchooseImage extends BaseParams { |
|||
/** 最多可以选择的图片张数,默认9 */ |
|||
count?: number; |
|||
/** original 原图,compressed 压缩图,默认二者都有 */ |
|||
sizeType?: ImageSizeType[]; |
|||
/** album 从相册选图,camera 使用相机,默认二者都有 */ |
|||
sourceType?: ImageSourceType[]; |
|||
/** 成功则返回图片的本地文件路径列表 tempFilePaths */ |
|||
success(res: { |
|||
sourceType: string; // weixin album camera
|
|||
localIds: string[]; |
|||
errMsg: string; |
|||
}): void; |
|||
cancel(): void; |
|||
} |
|||
/** |
|||
* 从本地相册选择图片或使用相机拍照。 |
|||
*/ |
|||
function chooseImage(params: IchooseImage): void; |
|||
|
|||
interface IpreviewImage extends BaseParams { |
|||
current: string; // 当前显示图片的http链接
|
|||
urls: string[]; // 需要预览的图片http链接列表
|
|||
} |
|||
/** |
|||
* 预览图片接口 |
|||
*/ |
|||
function previewImage(params: IpreviewImage): void; |
|||
|
|||
interface IuploadResource extends BaseParams { |
|||
localId: string; // 需要上传的图片的本地ID,由chooseImage接口获得
|
|||
isShowProgressTips: number; // 默认为1,显示进度提示
|
|||
// 返回图片的服务器端ID
|
|||
success(res: { serverId: string }): void; |
|||
} |
|||
/** |
|||
* 上传图片接口 |
|||
*/ |
|||
function uploadImage(params: IuploadResource): void; |
|||
|
|||
interface IdownloadResource extends BaseParams { |
|||
serverId: string; // 需要下载的图片的服务器端ID,由uploadImage接口获得
|
|||
isShowProgressTips: number; // 默认为1,显示进度提示
|
|||
// 返回图片下载后的本地ID
|
|||
success(res: Resouce): void; |
|||
} |
|||
/** |
|||
* 下载图片接口 |
|||
*/ |
|||
function downloadImage(params: IdownloadResource): void; |
|||
|
|||
interface IgetLocalImgData extends BaseParams { |
|||
localId: string; // 图片的localID
|
|||
// localData是图片的base64数据,可以用img标签显示
|
|||
success(res: { localData: string }): void; |
|||
} |
|||
|
|||
/** |
|||
* 获取本地图片接口 |
|||
*/ |
|||
function getLocalImgData(params: IgetLocalImgData): void; |
|||
/*=============================图像接口================================*/ |
|||
/*=============================音频接口================================*/ |
|||
/** |
|||
* 开始录音接口 |
|||
*/ |
|||
function startRecord(): void; |
|||
|
|||
interface IstopRecord extends BaseParams { |
|||
success(res: Resouce): void; |
|||
} |
|||
/** |
|||
* 停止录音接口 |
|||
*/ |
|||
function stopRecord(params: IstopRecord): void; |
|||
|
|||
interface IonVoiceRecordEnd extends BaseParams { |
|||
// 录音时间超过一分钟没有停止的时候会执行 complete 回调
|
|||
complete(res: Resouce): void; |
|||
} |
|||
/** |
|||
* 监听录音自动停止接口 |
|||
*/ |
|||
function onVoiceRecordEnd(params: IonVoiceRecordEnd): void; |
|||
|
|||
interface IplaypausestopVoice extends BaseParams { |
|||
localId: string; // 需要播放的音频的本地ID,由stopRecord接口获得
|
|||
} |
|||
/** |
|||
* 播放语音接口 |
|||
*/ |
|||
function playVoice(params: IplaypausestopVoice): void; |
|||
|
|||
/** |
|||
* 暂停播放接口 |
|||
*/ |
|||
function pauseVoice(params: IplaypausestopVoice): void; |
|||
/** |
|||
* 停止播放接口 |
|||
*/ |
|||
function stopVoice(params: IplaypausestopVoice): void; |
|||
|
|||
interface IonVoicePlayEnd extends BaseParams { |
|||
success(res: Resouce): void; |
|||
} |
|||
/** |
|||
* 监听语音播放完毕接口 |
|||
*/ |
|||
function onVoicePlayEnd(params: IonVoicePlayEnd): void; |
|||
/** |
|||
* 上传语音接口 |
|||
* 备注:上传语音有效期3天,可用微信多媒体接口下载语音到自己的服务器 |
|||
* ,此处获得的 serverId 即 media_id,参考文档 |
|||
* ../12 / 58bfcfabbd501c7cd77c19bd9cfa8354.html |
|||
* 目前多媒体文件下载接口的频率限制为10000次/ 天, |
|||
* 如需要调高频率,请邮件weixin - open@qq.com, |
|||
* 邮件主题为【申请多媒体接口调用量】,请对你的项目进行简单描述, |
|||
* 附上产品体验链接,并对用户量和使用量进行说明。 |
|||
*/ |
|||
function uploadVoice(params: IuploadResource): void; |
|||
/** |
|||
* 下载语音接口 |
|||
*/ |
|||
function downloadVoice(params: IdownloadResource): void; |
|||
/*=============================音频接口================================*/ |
|||
/*=============================智能接口================================*/ |
|||
|
|||
interface ItranslateVoice extends BaseParams { |
|||
localId: string; // 需要识别的音频的本地Id,由录音相关接口获得
|
|||
isShowProgressTips: number; // 默认为1,显示进度提示
|
|||
success(res: { translateResult: string }): void; |
|||
} |
|||
/** |
|||
* 识别音频并返回识别结果接口 |
|||
*/ |
|||
function translateVoice(params: ItranslateVoice): void; |
|||
|
|||
/*=============================智能接口================================*/ |
|||
|
|||
/*=============================设备信息================================*/ |
|||
type networkType = "2g" | "3g" | "4g" | "wifi"; |
|||
interface IgetNetworkType extends BaseParams { |
|||
success(res: { networkType: networkType }): void; |
|||
} |
|||
/** |
|||
* 获取网络状态接口 |
|||
*/ |
|||
function getNetworkType(params: IgetNetworkType): void; |
|||
/*=============================设备信息================================*/ |
|||
|
|||
/*=============================地理位置================================*/ |
|||
interface IopenLocation extends BaseParams { |
|||
latitude: number; // 纬度,浮点数,范围为90 ~ -90
|
|||
longitude: number; // 经度,浮点数,范围为180 ~ -180。
|
|||
name: string; // 位置名
|
|||
address: string; // 地址详情说明
|
|||
scale: number; // 地图缩放级别,整形值,范围从1~28。默认为最大
|
|||
infoUrl: string; // 在查看位置界面底部显示的超链接,可点击跳转
|
|||
} |
|||
/** |
|||
* 使用微信内置地图查看位置接口 |
|||
*/ |
|||
function openLocation(params: IopenLocation): void; |
|||
|
|||
interface IgetLocation extends BaseParams { |
|||
type: "wgs84" | "gcj02"; // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
|
|||
success(res: { |
|||
latitude: number; // 纬度,浮点数,范围为90 ~ -90
|
|||
longitude: number; // 经度,浮点数,范围为180 ~ -180。
|
|||
speed: number; // 速度,以米/每秒计
|
|||
accuracy: number; // 位置精度
|
|||
}): void; |
|||
} |
|||
/** |
|||
* 获取地理位置接口 |
|||
*/ |
|||
function getLocation(params: IgetLocation): void; |
|||
/*=============================地理位置================================*/ |
|||
/*=============================摇一摇周边================================*/ |
|||
interface IstartSearchBeacons extends BaseParams { |
|||
ticket: string; // 摇周边的业务ticket, 系统自动添加在摇出来的页面链接后面
|
|||
// 开启查找完成后的回调函数
|
|||
complete(argv: any): void; |
|||
} |
|||
/** |
|||
* 开启查找周边ibeacon设备接口 |
|||
* 备注:如需接入摇一摇周边功能,请参考:申请开通摇一摇周边 |
|||
*/ |
|||
function startSearchBeacons(params: IstartSearchBeacons): void; |
|||
|
|||
interface IstopSearchBeacons extends BaseParams { |
|||
// 关闭查找完成后的回调函数
|
|||
complete(res: any): void; |
|||
} |
|||
|
|||
/** |
|||
* 关闭查找周边ibeacon设备接口 |
|||
*/ |
|||
function stopSearchBeacons(params: IstopSearchBeacons): void; |
|||
|
|||
interface IonSearchBeacons extends BaseParams { |
|||
// 回调函数,可以数组形式取得该商家注册的在周边的相关设备列表
|
|||
complete(argv: any): void; |
|||
} |
|||
/** |
|||
* 监听周边ibeacon设备接口 |
|||
*/ |
|||
function onSearchBeacons(params: IonSearchBeacons): void; |
|||
/*=============================摇一摇周边================================*/ |
|||
/*=============================界面操作================================*/ |
|||
|
|||
/** |
|||
* 隐藏右上角菜单接口 |
|||
*/ |
|||
function hideOptionMenu(): void; |
|||
|
|||
/** |
|||
* 显示右上角菜单接口 |
|||
*/ |
|||
function showOptionMenu(): void; |
|||
|
|||
/** |
|||
* 关闭当前网页窗口接口 |
|||
*/ |
|||
function closeWindow(): void; |
|||
|
|||
interface IhideMenuItems extends BaseParams { |
|||
menuList: Array<menuProtected | menuShare>; // 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮,所有menu项见附录3
|
|||
} |
|||
/** |
|||
* 批量隐藏功能按钮接口 |
|||
*/ |
|||
function hideMenuItems(params: IhideMenuItems): void; |
|||
|
|||
interface IshowMenuItems extends BaseParams { |
|||
menuList: menuList; // 要显示的菜单项,所有menu项见附录3
|
|||
} |
|||
/** |
|||
* 批量显示功能按钮接口 |
|||
*/ |
|||
function showMenuItems(params: IshowMenuItems): void; |
|||
|
|||
/** |
|||
* 隐藏所有非基础按钮接口 |
|||
* “基本类”按钮详见附录3 |
|||
*/ |
|||
function hideAllNonBaseMenuItem(): void; |
|||
|
|||
/** |
|||
* 显示所有功能按钮接口 |
|||
*/ |
|||
function showAllNonBaseMenuItem(): void; |
|||
/*=============================界面操作================================*/ |
|||
/*=============================微信扫一扫================================*/ |
|||
|
|||
type scanType = "qrCode" | "barCode"; |
|||
|
|||
interface IscanQRCode extends BaseParams { |
|||
needResult: 0 | 1; // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
|
|||
scanType: scanType[]; // 可以指定扫二维码还是一维码,默认二者都有
|
|||
// 当needResult 为 1 时,扫码返回的结果
|
|||
success(res: { resultStr: string }): void; |
|||
} |
|||
/** |
|||
* 调起微信扫一扫接口 |
|||
*/ |
|||
function scanQRCode(params: IscanQRCode): void; |
|||
/*=============================微信扫一扫================================*/ |
|||
/*=============================微信小店================================*/ |
|||
|
|||
interface IopenProductSpecificView extends BaseParams { |
|||
productId: string; // 商品id
|
|||
viewType: "0" | "1" | "2"; // 0.默认值,普通商品详情页1.扫一扫商品详情页2.小店商品详情页
|
|||
} |
|||
/** |
|||
* 跳转微信商品页接口 |
|||
*/ |
|||
function openProductSpecificView(params: IopenProductSpecificView): void; |
|||
/*=============================微信卡券================================*/ |
|||
|
|||
interface IchooseCard extends BaseParams { |
|||
shopId: string; // 门店Id
|
|||
cardType: string; // 卡券类型
|
|||
cardId: string; // 卡券Id
|
|||
timestamp: number; // 卡券签名时间戳
|
|||
nonceStr: string; // 卡券签名随机串
|
|||
signType: string; // 签名方式,默认'SHA1'
|
|||
cardSign: string; // 卡券签名
|
|||
success(res: { cardList: string[] }): void; |
|||
} |
|||
/** |
|||
* 拉取适用卡券列表并获取用户选择信息 |
|||
*/ |
|||
function chooseCard(params: IchooseCard): void; |
|||
|
|||
interface IaddCard extends BaseParams { |
|||
cardList: Array<{ |
|||
cardId: string; |
|||
cardExt: string; |
|||
}>; // 需要添加的卡券列表
|
|||
success(res: { cardList: string[] }): void; |
|||
} |
|||
/** |
|||
* 批量添加卡券接口 |
|||
*/ |
|||
function addCard(): void; |
|||
|
|||
interface IopenCard extends BaseParams { |
|||
cardList: Array<{ |
|||
cardId: string; |
|||
code: string; |
|||
}>; // 需要打开的卡券列表
|
|||
} |
|||
/** |
|||
* 查看微信卡包中的卡券接口 |
|||
*/ |
|||
function openCard(params: IopenCard): void; |
|||
|
|||
interface IconsumeAndShareCard extends BaseParams { |
|||
cardId: string; |
|||
code: string; |
|||
} |
|||
/** |
|||
* 核销后再次赠送卡券接口 |
|||
*/ |
|||
function consumeAndShareCard(params: IconsumeAndShareCard): void; |
|||
/*=============================微信卡券================================*/ |
|||
/*=============================微信支付================================*/ |
|||
|
|||
interface IchooseWXPay extends BaseParams { |
|||
timestamp: number; // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
|
|||
nonceStr: string; // 支付签名随机串,不长于 32 位
|
|||
package: string; // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)
|
|||
signType: string; // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
|
|||
paySign: string; // 支付签名
|
|||
// 支付成功后的回调函数
|
|||
success(res: any): void; |
|||
} |
|||
/** |
|||
* 发起一个微信支付请求 |
|||
*/ |
|||
function chooseWXPay(params: IchooseWXPay): void; |
|||
/*=============================微信支付================================*/ |
|||
/*=============================微信小程序==============================*/ |
|||
interface miniProgramMethodsParams extends BaseParams { |
|||
url: string; |
|||
} |
|||
interface miniProgramMethods { |
|||
navigateTo(params: miniProgramMethodsParams): void; |
|||
navigateBack(params: miniProgramMethodsParams): void; |
|||
switchTab(params: miniProgramMethodsParams): void; |
|||
reLaunch(params: miniProgramMethodsParams): void; |
|||
redirectTo(params: miniProgramMethodsParams): void; |
|||
postMessage(params: { data: any }): void; |
|||
getEnv(fn: (res: any) => void): void; |
|||
} |
|||
const miniProgram: miniProgramMethods; |
|||
/*=============================微信小程序==============================*/ |
|||
} |
|||
declare function wx(): void; |
|||
/*=============================微信内全局变量==============================*/ |
|||
declare global { |
|||
interface Window { |
|||
WeixinJSBridge: any; |
|||
__wxjs_environment: any; |
|||
} |
|||
const WeixinJSBridge: any; |
|||
} |
|||
export default wx; |
|||
@ -0,0 +1,891 @@ |
|||
!(function (e, n) { |
|||
module.exports = n(e); |
|||
})(typeof window === "object" && window, function (r, e) { |
|||
if (!r) { |
|||
console.warn("can't use weixin-js-sdk in server side"); |
|||
return; |
|||
} |
|||
var a, c, n, i, t, o, s, d, l, u, p, f, m, g, h, S, y, I, v, _, w, T; |
|||
if (!r.jWeixin) |
|||
return ( |
|||
(a = { |
|||
config: "preVerifyJSAPI", |
|||
onMenuShareTimeline: "menu:share:timeline", |
|||
onMenuShareAppMessage: "menu:share:appmessage", |
|||
onMenuShareQQ: "menu:share:qq", |
|||
onMenuShareWeibo: "menu:share:weiboApp", |
|||
onMenuShareQZone: "menu:share:QZone", |
|||
previewImage: "imagePreview", |
|||
getLocation: "geoLocation", |
|||
openProductSpecificView: "openProductViewWithPid", |
|||
addCard: "batchAddCard", |
|||
openCard: "batchViewCard", |
|||
chooseWXPay: "getBrandWCPayRequest", |
|||
openEnterpriseRedPacket: "getRecevieBizHongBaoRequest", |
|||
startSearchBeacons: "startMonitoringBeacons", |
|||
stopSearchBeacons: "stopMonitoringBeacons", |
|||
onSearchBeacons: "onBeaconsInRange", |
|||
consumeAndShareCard: "consumedShareCard", |
|||
openAddress: "editAddress", |
|||
}), |
|||
(c = (function () { |
|||
var e, |
|||
n = {}; |
|||
for (e in a) n[a[e]] = e; |
|||
return n; |
|||
})()), |
|||
(n = r.document), |
|||
(i = n.title), |
|||
(t = navigator.userAgent.toLowerCase()), |
|||
(f = navigator.platform.toLowerCase()), |
|||
(o = !(!f.match("mac") && !f.match("win"))), |
|||
(s = -1 != t.indexOf("wxdebugger")), |
|||
(d = -1 != t.indexOf("micromessenger")), |
|||
(l = -1 != t.indexOf("android")), |
|||
(u = -1 != t.indexOf("iphone") || -1 != t.indexOf("ipad")), |
|||
(p = (f = |
|||
t.match(/micromessenger\/(\d+\.\d+\.\d+)/) || |
|||
t.match(/micromessenger\/(\d+\.\d+)/)) |
|||
? f[1] |
|||
: ""), |
|||
(m = { |
|||
initStartTime: L(), |
|||
initEndTime: 0, |
|||
preVerifyStartTime: 0, |
|||
preVerifyEndTime: 0, |
|||
}), |
|||
(g = { |
|||
version: 1, |
|||
appId: "", |
|||
initTime: 0, |
|||
preVerifyTime: 0, |
|||
networkType: "", |
|||
isPreVerifyOk: 1, |
|||
systemType: u ? 1 : l ? 2 : -1, |
|||
clientVersion: p, |
|||
url: encodeURIComponent(location.href), |
|||
}), |
|||
(h = {}), |
|||
(S = { _completes: [] }), |
|||
(y = { state: 0, data: {} }), |
|||
O(function () { |
|||
m.initEndTime = L(); |
|||
}), |
|||
(I = !1), |
|||
(v = []), |
|||
(_ = { |
|||
config: function (e) { |
|||
C("config", (h = e)); |
|||
var o = !1 !== h.check; |
|||
O(function () { |
|||
if (o) |
|||
k( |
|||
a.config, |
|||
{ |
|||
verifyJsApiList: A(h.jsApiList), |
|||
verifyOpenTagList: A(h.openTagList), |
|||
}, |
|||
((S._complete = function (e) { |
|||
(m.preVerifyEndTime = L()), (y.state = 1), (y.data = e); |
|||
}), |
|||
(S.success = function (e) { |
|||
g.isPreVerifyOk = 0; |
|||
}), |
|||
(S.fail = function (e) { |
|||
S._fail ? S._fail(e) : (y.state = -1); |
|||
}), |
|||
(t = S._completes).push(function () { |
|||
B(); |
|||
}), |
|||
(S.complete = function (e) { |
|||
for (var n = 0, i = t.length; n < i; ++n) t[n](); |
|||
S._completes = []; |
|||
}), |
|||
S) |
|||
), |
|||
(m.preVerifyStartTime = L()); |
|||
else { |
|||
y.state = 1; |
|||
for (var e = S._completes, n = 0, i = e.length; n < i; ++n) |
|||
e[n](); |
|||
S._completes = []; |
|||
} |
|||
var t; |
|||
}), |
|||
_.invoke || |
|||
((_.invoke = function (e, n, i) { |
|||
r.WeixinJSBridge && WeixinJSBridge.invoke(e, P(n), i); |
|||
}), |
|||
(_.on = function (e, n) { |
|||
r.WeixinJSBridge && WeixinJSBridge.on(e, n); |
|||
})); |
|||
}, |
|||
ready: function (e) { |
|||
(0 != y.state || (S._completes.push(e), !d && h.debug)) && e(); |
|||
}, |
|||
error: function (e) { |
|||
p < "6.0.2" || (-1 == y.state ? e(y.data) : (S._fail = e)); |
|||
}, |
|||
checkJsApi: function (e) { |
|||
k( |
|||
"checkJsApi", |
|||
{ jsApiList: A(e.jsApiList) }, |
|||
((e._complete = function (e) { |
|||
l && (i = e.checkResult) && (e.checkResult = JSON.parse(i)); |
|||
var n, |
|||
i = e, |
|||
t = i.checkResult; |
|||
for (n in t) { |
|||
var o = c[n]; |
|||
o && ((t[o] = t[n]), delete t[n]); |
|||
} |
|||
}), |
|||
e) |
|||
); |
|||
}, |
|||
onMenuShareTimeline: function (e) { |
|||
M( |
|||
a.onMenuShareTimeline, |
|||
{ |
|||
complete: function () { |
|||
k( |
|||
"shareTimeline", |
|||
{ |
|||
title: e.title || i, |
|||
desc: e.title || i, |
|||
img_url: e.imgUrl || "", |
|||
link: e.link || location.href, |
|||
type: e.type || "link", |
|||
data_url: e.dataUrl || "", |
|||
}, |
|||
e |
|||
); |
|||
}, |
|||
}, |
|||
e |
|||
); |
|||
}, |
|||
onMenuShareAppMessage: function (n) { |
|||
M( |
|||
a.onMenuShareAppMessage, |
|||
{ |
|||
complete: function (e) { |
|||
"favorite" === e.scene |
|||
? k("sendAppMessage", { |
|||
title: n.title || i, |
|||
desc: n.desc || "", |
|||
link: n.link || location.href, |
|||
img_url: n.imgUrl || "", |
|||
type: n.type || "link", |
|||
data_url: n.dataUrl || "", |
|||
}) |
|||
: k( |
|||
"sendAppMessage", |
|||
{ |
|||
title: n.title || i, |
|||
desc: n.desc || "", |
|||
link: n.link || location.href, |
|||
img_url: n.imgUrl || "", |
|||
type: n.type || "link", |
|||
data_url: n.dataUrl || "", |
|||
}, |
|||
n |
|||
); |
|||
}, |
|||
}, |
|||
n |
|||
); |
|||
}, |
|||
onMenuShareQQ: function (e) { |
|||
M( |
|||
a.onMenuShareQQ, |
|||
{ |
|||
complete: function () { |
|||
k( |
|||
"shareQQ", |
|||
{ |
|||
title: e.title || i, |
|||
desc: e.desc || "", |
|||
img_url: e.imgUrl || "", |
|||
link: e.link || location.href, |
|||
}, |
|||
e |
|||
); |
|||
}, |
|||
}, |
|||
e |
|||
); |
|||
}, |
|||
onMenuShareWeibo: function (e) { |
|||
M( |
|||
a.onMenuShareWeibo, |
|||
{ |
|||
complete: function () { |
|||
k( |
|||
"shareWeiboApp", |
|||
{ |
|||
title: e.title || i, |
|||
desc: e.desc || "", |
|||
img_url: e.imgUrl || "", |
|||
link: e.link || location.href, |
|||
}, |
|||
e |
|||
); |
|||
}, |
|||
}, |
|||
e |
|||
); |
|||
}, |
|||
onMenuShareQZone: function (e) { |
|||
M( |
|||
a.onMenuShareQZone, |
|||
{ |
|||
complete: function () { |
|||
k( |
|||
"shareQZone", |
|||
{ |
|||
title: e.title || i, |
|||
desc: e.desc || "", |
|||
img_url: e.imgUrl || "", |
|||
link: e.link || location.href, |
|||
}, |
|||
e |
|||
); |
|||
}, |
|||
}, |
|||
e |
|||
); |
|||
}, |
|||
updateTimelineShareData: function (e) { |
|||
k( |
|||
"updateTimelineShareData", |
|||
{ title: e.title, link: e.link, imgUrl: e.imgUrl }, |
|||
e |
|||
); |
|||
}, |
|||
updateAppMessageShareData: function (e) { |
|||
k( |
|||
"updateAppMessageShareData", |
|||
{ title: e.title, desc: e.desc, link: e.link, imgUrl: e.imgUrl }, |
|||
e |
|||
); |
|||
}, |
|||
startRecord: function (e) { |
|||
k("startRecord", {}, e); |
|||
}, |
|||
stopRecord: function (e) { |
|||
k("stopRecord", {}, e); |
|||
}, |
|||
onVoiceRecordEnd: function (e) { |
|||
M("onVoiceRecordEnd", e); |
|||
}, |
|||
playVoice: function (e) { |
|||
k("playVoice", { localId: e.localId }, e); |
|||
}, |
|||
pauseVoice: function (e) { |
|||
k("pauseVoice", { localId: e.localId }, e); |
|||
}, |
|||
stopVoice: function (e) { |
|||
k("stopVoice", { localId: e.localId }, e); |
|||
}, |
|||
onVoicePlayEnd: function (e) { |
|||
M("onVoicePlayEnd", e); |
|||
}, |
|||
uploadVoice: function (e) { |
|||
k( |
|||
"uploadVoice", |
|||
{ |
|||
localId: e.localId, |
|||
isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1, |
|||
}, |
|||
e |
|||
); |
|||
}, |
|||
downloadVoice: function (e) { |
|||
k( |
|||
"downloadVoice", |
|||
{ |
|||
serverId: e.serverId, |
|||
isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1, |
|||
}, |
|||
e |
|||
); |
|||
}, |
|||
translateVoice: function (e) { |
|||
k( |
|||
"translateVoice", |
|||
{ |
|||
localId: e.localId, |
|||
isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1, |
|||
}, |
|||
e |
|||
); |
|||
}, |
|||
chooseImage: function (e) { |
|||
k( |
|||
"chooseImage", |
|||
{ |
|||
scene: "1|2", |
|||
count: e.count || 9, |
|||
sizeType: e.sizeType || ["original", "compressed"], |
|||
sourceType: e.sourceType || ["album", "camera"], |
|||
}, |
|||
((e._complete = function (e) { |
|||
if (l) { |
|||
var n = e.localIds; |
|||
try { |
|||
n && (e.localIds = JSON.parse(n)); |
|||
} catch (e) {} |
|||
} |
|||
}), |
|||
e) |
|||
); |
|||
}, |
|||
getLocation: function (e) { |
|||
(e = e || {}), |
|||
k( |
|||
a.getLocation, |
|||
{ type: e.type || "wgs84" }, |
|||
((e._complete = function (e) { |
|||
delete e.type; |
|||
}), |
|||
e) |
|||
); |
|||
}, |
|||
previewImage: function (e) { |
|||
k(a.previewImage, { current: e.current, urls: e.urls }, e); |
|||
}, |
|||
uploadImage: function (e) { |
|||
k( |
|||
"uploadImage", |
|||
{ |
|||
localId: e.localId, |
|||
isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1, |
|||
}, |
|||
e |
|||
); |
|||
}, |
|||
downloadImage: function (e) { |
|||
k( |
|||
"downloadImage", |
|||
{ |
|||
serverId: e.serverId, |
|||
isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1, |
|||
}, |
|||
e |
|||
); |
|||
}, |
|||
getLocalImgData: function (e) { |
|||
!1 === I |
|||
? ((I = !0), |
|||
k( |
|||
"getLocalImgData", |
|||
{ localId: e.localId }, |
|||
((e._complete = function (e) { |
|||
var n; |
|||
(I = !1), |
|||
0 < v.length && ((n = v.shift()), wx.getLocalImgData(n)); |
|||
}), |
|||
e) |
|||
)) |
|||
: v.push(e); |
|||
}, |
|||
getNetworkType: function (e) { |
|||
k( |
|||
"getNetworkType", |
|||
{}, |
|||
((e._complete = function (e) { |
|||
var n = e, |
|||
e = n.errMsg, |
|||
i = ((n.errMsg = "getNetworkType:ok"), n.subtype); |
|||
if ((delete n.subtype, i)) n.networkType = i; |
|||
else { |
|||
var i = e.indexOf(":"), |
|||
t = e.substring(i + 1); |
|||
switch (t) { |
|||
case "wifi": |
|||
case "edge": |
|||
case "wwan": |
|||
n.networkType = t; |
|||
break; |
|||
default: |
|||
n.errMsg = "getNetworkType:fail"; |
|||
} |
|||
} |
|||
}), |
|||
e) |
|||
); |
|||
}, |
|||
openLocation: function (e) { |
|||
k( |
|||
"openLocation", |
|||
{ |
|||
latitude: e.latitude, |
|||
longitude: e.longitude, |
|||
name: e.name || "", |
|||
address: e.address || "", |
|||
scale: e.scale || 28, |
|||
infoUrl: e.infoUrl || "", |
|||
}, |
|||
e |
|||
); |
|||
}, |
|||
hideOptionMenu: function (e) { |
|||
k("hideOptionMenu", {}, e); |
|||
}, |
|||
showOptionMenu: function (e) { |
|||
k("showOptionMenu", {}, e); |
|||
}, |
|||
closeWindow: function (e) { |
|||
k("closeWindow", {}, (e = e || {})); |
|||
}, |
|||
hideMenuItems: function (e) { |
|||
k("hideMenuItems", { menuList: e.menuList }, e); |
|||
}, |
|||
showMenuItems: function (e) { |
|||
k("showMenuItems", { menuList: e.menuList }, e); |
|||
}, |
|||
hideAllNonBaseMenuItem: function (e) { |
|||
k("hideAllNonBaseMenuItem", {}, e); |
|||
}, |
|||
showAllNonBaseMenuItem: function (e) { |
|||
k("showAllNonBaseMenuItem", {}, e); |
|||
}, |
|||
scanQRCode: function (e) { |
|||
k( |
|||
"scanQRCode", |
|||
{ |
|||
needResult: (e = e || {}).needResult || 0, |
|||
scanType: e.scanType || ["qrCode", "barCode"], |
|||
}, |
|||
((e._complete = function (e) { |
|||
var n; |
|||
u && |
|||
(n = e.resultStr) && |
|||
((n = JSON.parse(n)), |
|||
(e.resultStr = n && n.scan_code && n.scan_code.scan_result)); |
|||
}), |
|||
e) |
|||
); |
|||
}, |
|||
openAddress: function (e) { |
|||
k( |
|||
a.openAddress, |
|||
{}, |
|||
((e._complete = function (e) { |
|||
((e = e).postalCode = e.addressPostalCode), |
|||
delete e.addressPostalCode, |
|||
(e.provinceName = e.proviceFirstStageName), |
|||
delete e.proviceFirstStageName, |
|||
(e.cityName = e.addressCitySecondStageName), |
|||
delete e.addressCitySecondStageName, |
|||
(e.countryName = e.addressCountiesThirdStageName), |
|||
delete e.addressCountiesThirdStageName, |
|||
(e.detailInfo = e.addressDetailInfo), |
|||
delete e.addressDetailInfo; |
|||
}), |
|||
e) |
|||
); |
|||
}, |
|||
openProductSpecificView: function (e) { |
|||
k( |
|||
a.openProductSpecificView, |
|||
{ |
|||
pid: e.productId, |
|||
view_type: e.viewType || 0, |
|||
ext_info: e.extInfo, |
|||
}, |
|||
e |
|||
); |
|||
}, |
|||
addCard: function (e) { |
|||
for (var n = e.cardList, i = [], t = 0, o = n.length; t < o; ++t) { |
|||
var r = n[t], |
|||
r = { card_id: r.cardId, card_ext: r.cardExt }; |
|||
i.push(r); |
|||
} |
|||
k( |
|||
a.addCard, |
|||
{ card_list: i }, |
|||
((e._complete = function (e) { |
|||
if ((n = e.card_list)) { |
|||
for (var n, i = 0, t = (n = JSON.parse(n)).length; i < t; ++i) { |
|||
var o = n[i]; |
|||
(o.cardId = o.card_id), |
|||
(o.cardExt = o.card_ext), |
|||
(o.isSuccess = !!o.is_succ), |
|||
delete o.card_id, |
|||
delete o.card_ext, |
|||
delete o.is_succ; |
|||
} |
|||
(e.cardList = n), delete e.card_list; |
|||
} |
|||
}), |
|||
e) |
|||
); |
|||
}, |
|||
chooseCard: function (e) { |
|||
k( |
|||
"chooseCard", |
|||
{ |
|||
app_id: h.appId, |
|||
location_id: e.shopId || "", |
|||
sign_type: e.signType || "SHA1", |
|||
card_id: e.cardId || "", |
|||
card_type: e.cardType || "", |
|||
card_sign: e.cardSign, |
|||
time_stamp: e.timestamp + "", |
|||
nonce_str: e.nonceStr, |
|||
}, |
|||
((e._complete = function (e) { |
|||
(e.cardList = e.choose_card_info), delete e.choose_card_info; |
|||
}), |
|||
e) |
|||
); |
|||
}, |
|||
openCard: function (e) { |
|||
for (var n = e.cardList, i = [], t = 0, o = n.length; t < o; ++t) { |
|||
var r = n[t], |
|||
r = { card_id: r.cardId, code: r.code }; |
|||
i.push(r); |
|||
} |
|||
k(a.openCard, { card_list: i }, e); |
|||
}, |
|||
consumeAndShareCard: function (e) { |
|||
k( |
|||
a.consumeAndShareCard, |
|||
{ consumedCardId: e.cardId, consumedCode: e.code }, |
|||
e |
|||
); |
|||
}, |
|||
chooseWXPay: function (e) { |
|||
k(a.chooseWXPay, x(e), e), B({ jsApiName: "chooseWXPay" }); |
|||
}, |
|||
openEnterpriseRedPacket: function (e) { |
|||
k(a.openEnterpriseRedPacket, x(e), e); |
|||
}, |
|||
startSearchBeacons: function (e) { |
|||
k(a.startSearchBeacons, { ticket: e.ticket }, e); |
|||
}, |
|||
stopSearchBeacons: function (e) { |
|||
k(a.stopSearchBeacons, {}, e); |
|||
}, |
|||
onSearchBeacons: function (e) { |
|||
M(a.onSearchBeacons, e); |
|||
}, |
|||
openEnterpriseChat: function (e) { |
|||
k( |
|||
"openEnterpriseChat", |
|||
{ useridlist: e.userIds, chatname: e.groupName }, |
|||
e |
|||
); |
|||
}, |
|||
launchMiniProgram: function (e) { |
|||
k( |
|||
"launchMiniProgram", |
|||
{ |
|||
targetAppId: e.targetAppId, |
|||
path: (function (e) { |
|||
var n; |
|||
if ("string" == typeof e && 0 < e.length) |
|||
return ( |
|||
(n = e.split("?")[0]), |
|||
(n += ".html"), |
|||
void 0 !== (e = e.split("?")[1]) ? n + "?" + e : n |
|||
); |
|||
})(e.path), |
|||
envVersion: e.envVersion, |
|||
}, |
|||
e |
|||
); |
|||
}, |
|||
openBusinessView: function (e) { |
|||
k( |
|||
"openBusinessView", |
|||
{ |
|||
businessType: e.businessType, |
|||
queryString: e.queryString || "", |
|||
envVersion: e.envVersion, |
|||
}, |
|||
((e._complete = function (n) { |
|||
if (l) { |
|||
var e = n.extraData; |
|||
if (e) |
|||
try { |
|||
n.extraData = JSON.parse(e); |
|||
} catch (e) { |
|||
n.extraData = {}; |
|||
} |
|||
} |
|||
}), |
|||
e) |
|||
); |
|||
}, |
|||
miniProgram: { |
|||
navigateBack: function (e) { |
|||
(e = e || {}), |
|||
O(function () { |
|||
k( |
|||
"invokeMiniProgramAPI", |
|||
{ name: "navigateBack", arg: { delta: e.delta || 1 } }, |
|||
e |
|||
); |
|||
}); |
|||
}, |
|||
navigateTo: function (e) { |
|||
O(function () { |
|||
k( |
|||
"invokeMiniProgramAPI", |
|||
{ name: "navigateTo", arg: { url: e.url } }, |
|||
e |
|||
); |
|||
}); |
|||
}, |
|||
redirectTo: function (e) { |
|||
O(function () { |
|||
k( |
|||
"invokeMiniProgramAPI", |
|||
{ name: "redirectTo", arg: { url: e.url } }, |
|||
e |
|||
); |
|||
}); |
|||
}, |
|||
switchTab: function (e) { |
|||
O(function () { |
|||
k( |
|||
"invokeMiniProgramAPI", |
|||
{ name: "switchTab", arg: { url: e.url } }, |
|||
e |
|||
); |
|||
}); |
|||
}, |
|||
reLaunch: function (e) { |
|||
O(function () { |
|||
k( |
|||
"invokeMiniProgramAPI", |
|||
{ name: "reLaunch", arg: { url: e.url } }, |
|||
e |
|||
); |
|||
}); |
|||
}, |
|||
postMessage: function (e) { |
|||
O(function () { |
|||
k( |
|||
"invokeMiniProgramAPI", |
|||
{ name: "postMessage", arg: e.data || {} }, |
|||
e |
|||
); |
|||
}); |
|||
}, |
|||
getEnv: function (e) { |
|||
O(function () { |
|||
e({ miniprogram: "miniprogram" === r.__wxjs_environment }); |
|||
}); |
|||
}, |
|||
}, |
|||
}), |
|||
(w = 1), |
|||
(T = {}), |
|||
n.addEventListener( |
|||
"error", |
|||
function (e) { |
|||
var n, i, t; |
|||
l || |
|||
((t = (n = e.target).tagName), |
|||
(i = n.src), |
|||
"IMG" != t && "VIDEO" != t && "AUDIO" != t && "SOURCE" != t) || |
|||
(-1 != i.indexOf("wxlocalresource://") && |
|||
(e.preventDefault(), |
|||
e.stopPropagation(), |
|||
(t = n["wx-id"]) || ((t = w++), (n["wx-id"] = t)), |
|||
T[t] || |
|||
((T[t] = !0), |
|||
wx.ready(function () { |
|||
wx.getLocalImgData({ |
|||
localId: i, |
|||
success: function (e) { |
|||
n.src = e.localData; |
|||
}, |
|||
}); |
|||
})))); |
|||
}, |
|||
!0 |
|||
), |
|||
n.addEventListener( |
|||
"load", |
|||
function (e) { |
|||
var n; |
|||
l || |
|||
((n = (e = e.target).tagName), |
|||
e.src, |
|||
"IMG" != n && "VIDEO" != n && "AUDIO" != n && "SOURCE" != n) || |
|||
((n = e["wx-id"]) && (T[n] = !1)); |
|||
}, |
|||
!0 |
|||
), |
|||
e && (r.wx = r.jWeixin = _), |
|||
_ |
|||
); |
|||
else return r.jWeixin; |
|||
function k(n, e, i) { |
|||
r.WeixinJSBridge |
|||
? WeixinJSBridge.invoke(n, P(e), function (e) { |
|||
V(n, e, i); |
|||
}) |
|||
: C(n, i); |
|||
} |
|||
function M(n, i, t) { |
|||
r.WeixinJSBridge |
|||
? WeixinJSBridge.on(n, function (e) { |
|||
t && t.trigger && t.trigger(e), V(n, e, i); |
|||
}) |
|||
: C(n, t || i); |
|||
} |
|||
function P(e) { |
|||
return ( |
|||
((e = e || {}).appId = h.appId), |
|||
(e.verifyAppId = h.appId), |
|||
(e.verifySignType = "sha1"), |
|||
(e.verifyTimestamp = h.timestamp + ""), |
|||
(e.verifyNonceStr = h.nonceStr), |
|||
(e.verifySignature = h.signature), |
|||
e |
|||
); |
|||
} |
|||
function x(e) { |
|||
return { |
|||
timeStamp: e.timestamp + "", |
|||
nonceStr: e.nonceStr, |
|||
package: e.package, |
|||
paySign: e.paySign, |
|||
signType: e.signType || "SHA1", |
|||
}; |
|||
} |
|||
function V(e, n, i) { |
|||
("openEnterpriseChat" != e && "openBusinessView" !== e) || |
|||
(n.errCode = n.err_code), |
|||
delete n.err_code, |
|||
delete n.err_desc, |
|||
delete n.err_detail; |
|||
var t = n.errMsg, |
|||
e = |
|||
(t || |
|||
((t = n.err_msg), |
|||
delete n.err_msg, |
|||
(t = (function (e, n) { |
|||
var i = c[e]; |
|||
i && (e = i); |
|||
i = "ok"; |
|||
{ |
|||
var t; |
|||
n && |
|||
((t = n.indexOf(":")), |
|||
("access denied" != |
|||
(i = (i = (i = |
|||
-1 != |
|||
(i = |
|||
-1 != |
|||
(i = |
|||
"failed" == |
|||
(i = "confirm" == (i = n.substring(t + 1)) ? "ok" : i) |
|||
? "fail" |
|||
: i).indexOf("failed_") |
|||
? i.substring(7) |
|||
: i).indexOf("fail_") |
|||
? i.substring(5) |
|||
: i).replace(/_/g, " ")).toLowerCase()) && |
|||
"no permission to execute" != i) || |
|||
(i = "permission denied"), |
|||
"" == |
|||
(i = |
|||
"config" == e && "function not exist" == i ? "ok" : i)) && |
|||
(i = "fail"); |
|||
} |
|||
return (n = e + ":" + i); |
|||
})(e, t)), |
|||
(n.errMsg = t)), |
|||
(i = i || {})._complete && (i._complete(n), delete i._complete), |
|||
(t = n.errMsg || ""), |
|||
h.debug && !i.isInnerInvoke && alert(JSON.stringify(n)), |
|||
t.indexOf(":")); |
|||
switch (t.substring(e + 1)) { |
|||
case "ok": |
|||
i.success && i.success(n); |
|||
break; |
|||
case "cancel": |
|||
i.cancel && i.cancel(n); |
|||
break; |
|||
default: |
|||
i.fail && i.fail(n); |
|||
} |
|||
i.complete && i.complete(n); |
|||
} |
|||
function A(e) { |
|||
if (e) { |
|||
for (var n = 0, i = e.length; n < i; ++n) { |
|||
var t = e[n], |
|||
t = a[t]; |
|||
t && (e[n] = t); |
|||
} |
|||
return e; |
|||
} |
|||
} |
|||
function C(e, n) { |
|||
var i; |
|||
!h.debug || |
|||
(n && n.isInnerInvoke) || |
|||
((i = c[e]) && (e = i), |
|||
n && n._complete && delete n._complete, |
|||
console.log('"' + e + '",', n || "")); |
|||
} |
|||
function B(n) { |
|||
var i; |
|||
o || |
|||
s || |
|||
h.debug || |
|||
p < "6.0.2" || |
|||
g.systemType < 0 || |
|||
((i = new Image()), |
|||
(g.appId = h.appId), |
|||
(g.initTime = m.initEndTime - m.initStartTime), |
|||
(g.preVerifyTime = m.preVerifyEndTime - m.preVerifyStartTime), |
|||
_.getNetworkType({ |
|||
isInnerInvoke: !0, |
|||
success: function (e) { |
|||
g.networkType = e.networkType; |
|||
e = |
|||
"https://open.weixin.qq.com/sdk/report?v=" + |
|||
g.version + |
|||
"&o=" + |
|||
g.isPreVerifyOk + |
|||
"&s=" + |
|||
g.systemType + |
|||
"&c=" + |
|||
g.clientVersion + |
|||
"&a=" + |
|||
g.appId + |
|||
"&n=" + |
|||
g.networkType + |
|||
"&i=" + |
|||
g.initTime + |
|||
"&p=" + |
|||
g.preVerifyTime + |
|||
"&u=" + |
|||
g.url + |
|||
"&jsapi_name=" + |
|||
(n ? n.jsApiName : ""); |
|||
i.src = e; |
|||
}, |
|||
})); |
|||
} |
|||
function L() { |
|||
return new Date().getTime(); |
|||
} |
|||
function O(e) { |
|||
d && |
|||
(r.WeixinJSBridge |
|||
? e() |
|||
: n.addEventListener && |
|||
n.addEventListener("WeixinJSBridgeReady", e, !1)); |
|||
} |
|||
}); |
|||
@ -0,0 +1,41 @@ |
|||
{ |
|||
"_from": "weixin-js-sdk", |
|||
"_id": "weixin-js-sdk@1.6.5", |
|||
"_inBundle": false, |
|||
"_integrity": "sha512-Gph1WAWB2YN/lMOFB/ymb+hbU/wYazzJgu6PMMktCy9cSCeW5wA6Zwt0dpahJbJ+RJEwtTv2x9iIu0U4enuVSQ==", |
|||
"_location": "/weixin-js-sdk", |
|||
"_phantomChildren": {}, |
|||
"_requested": { |
|||
"type": "tag", |
|||
"registry": true, |
|||
"raw": "weixin-js-sdk", |
|||
"name": "weixin-js-sdk", |
|||
"escapedName": "weixin-js-sdk", |
|||
"rawSpec": "", |
|||
"saveSpec": null, |
|||
"fetchSpec": "latest" |
|||
}, |
|||
"_requiredBy": [ |
|||
"#USER", |
|||
"/" |
|||
], |
|||
"_resolved": "https://registry.npmmirror.com/weixin-js-sdk/-/weixin-js-sdk-1.6.5.tgz", |
|||
"_shasum": "01fe5220b91dbfe089fc0730d061be0e68271e6a", |
|||
"_spec": "weixin-js-sdk", |
|||
"_where": "D:\\uni-app\\acupuncture_register_system", |
|||
"bugs": { |
|||
"url": "https://github.com/yanxi123-com/weixin-js-sdk/issues" |
|||
}, |
|||
"bundleDependencies": false, |
|||
"deprecated": false, |
|||
"description": "微信官方 js-sdk npm 安装版,支持 typescript", |
|||
"homepage": "https://yanxi123.com/", |
|||
"license": "MIT", |
|||
"main": "index.js", |
|||
"name": "weixin-js-sdk", |
|||
"repository": { |
|||
"type": "git", |
|||
"url": "git+https://github.com/yanxi123-com/weixin-js-sdk.git" |
|||
}, |
|||
"version": "1.6.5" |
|||
} |
|||
@ -0,0 +1,11 @@ |
|||
{ |
|||
"requires": true, |
|||
"lockfileVersion": 1, |
|||
"dependencies": { |
|||
"weixin-js-sdk": { |
|||
"version": "1.6.5", |
|||
"resolved": "https://registry.npmmirror.com/weixin-js-sdk/-/weixin-js-sdk-1.6.5.tgz", |
|||
"integrity": "sha512-Gph1WAWB2YN/lMOFB/ymb+hbU/wYazzJgu6PMMktCy9cSCeW5wA6Zwt0dpahJbJ+RJEwtTv2x9iIu0U4enuVSQ==" |
|||
} |
|||
} |
|||
} |
|||
|
After Width: | Height: | Size: 658 B |
Loading…
Reference in new issue