智慧教务系统 PHP-NiuCloud框架开发
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

84 lines
2.4 KiB

// #ifdef H5
import wx from 'weixin-js-sdk'
// #endif
import { getWechatSdkConfig } from '@/app/api/system'
import { isWeixinBrowser } from '@/utils/common'
class Wechat {
constructor() {
// #ifdef H5
// isWeixinBrowser() && this.init()
// #endif
}
public init(callback:any = null) {
getWechatSdkConfig({
url: uni.getSystemInfoSync().platform == 'ios' ? uni.getStorageSync('initUrl') : location.href
}).then((res: any) => {
const { data } = res
wx.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: data.appId, // 必填,公众号的唯一标识
timestamp: data.timestamp, // 必填,生成签名的时间戳
nonceStr: data.nonceStr, // 必填,生成签名的随机串
signature: data.signature,// 必填,签名
jsApiList: ['chooseWXPay', 'updateAppMessageShareData', 'updateTimelineShareData', 'scanQRCode', 'getLocation'] // 必填,需要使用的JS接口列表
});
if(callback) callback();
})
}
/**
* 发起支付
*/
public pay(options: WeixinJsSdk.ChooseWXPayOptions) {
wx.ready(() => {
wx.chooseWXPay(options)
})
}
/**
* 分享设置
*/
public share(options: WeixinJsSdk.OnMenuShareAppMessageOptions) {
wx.ready(() => {
// 分享给朋友
wx.updateAppMessageShareData(options)
// 分享到朋友圈
wx.updateTimelineShareData(options)
})
}
/**
* 扫一扫
* @param {Object} callback
*/
public scanQRCode(callback: any) {
wx.ready(() => {
wx.scanQRCode({
needResult: 1,
scanType: ["qrCode"],
success: function (res) {
typeof callback == 'function' && callback(res);
}
});
})
}
/**
* 获取地理位置接口
* @param {Object} callback
*/
public getLocation(callback: any) {
wx.ready(function() {
wx.getLocation({
type: 'gcj02',
success: function(res) {
typeof callback == 'function' && callback(res);
}
});
})
}
}
export default new Wechat()