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.

140 lines
3.5 KiB

3 years ago
var jweixin = require('jweixin-module')
const userId = uni.getStorageSync('userId');
console.log(userId,'userId')
import HttpRequest from '../common/httpRequest'
export default {
//判断是否在微信中
isWechat: function () {
var ua = window.navigator.userAgent.toLowerCase();
if (ua.match(/micromessenger/i) == 'micromessenger') {
// console.log(‘是微信客户端‘)
return true;
} else {
// console.log(‘不是微信客户端‘)
return false;
}
},
//初始化sdk配置
initJssdkShare: function (callback, url) {
HttpRequest.getT('/appLogin/jsapiInit',{url: url}).then((result)=>{
if(result.code == 0){
jweixin.config({
debug: false,
appId: result.appId,
timestamp: result.timestamp,
nonceStr: result.nonceStr,
signature: result.signature,
jsApiList: [
'chooseWXPay',
'checkJsApi',
'updateTimelineShareData',
'updateAppMessageShareData',
'getLocation'
]
});
if (callback) {
callback(result);
}
}
})
},
share: function (data, url) {
url = url ? url : window.location.href;
console.log("url:" + url)
if (!this.isWechat()) {
uni.showToast({
title: '不在微信客户端',
icon: 'none'
})
return;
}
//每次都需要重新初始化配置,才可以进行分享
this.initJssdkShare(function (signData) {
jweixin.ready(function () {
var shareData = {
title: data && data.title ? data.title : signData.site_name,
desc: data && data.desc ? data.desc : signData.site_description,
link: url,
imgUrl: data && data.img ? data.img : signData.site_logo,
success: function (res) {
// 分享后的一些操作,比如分享统计等等
},
cancel: function (res) {}
};
//分享给朋友接口
jweixin.updateAppMessageShareData(shareData);
//分享到朋友圈接口
// jweixin.updateTimelineShareData(shareData);
});
}, url)
},
wxChatWebPay: function (url) {
if (!this.isWechat()) {
uni.showToast({
title: '不在微信客户端',
icon: 'none'
})
return;
}
return new Promise((resolve,reject)=>{
//每次都需要重新初始化配置
this.initJssdkShare(function () {
jweixin.ready(function () {
HttpRequest.postT('/api/order/wxPayMember?userId=' + userId + '&type=3').then((orderInfo)=>{
jweixin.chooseWXPay({
nonceStr: orderInfo.noncestr,
timestamp: orderInfo.timestamp,
package: orderInfo.package,
signType: orderInfo.signType,
paySign: orderInfo.sign,
success: (res) => {
console.log('支付成功')
resolve(res)
},
fail: (res)=> {
reject(res)
console.log('支付失败')
},
cancel: (res)=> {
resolve(res)
console.log('取消支付')
}
})
})
});
},url)
})
},
wxGetLocation: function(url){
return new Promise((resolve,reject)=>{
if (!this.isWechat()) {
uni.showModal({
title: '提示!',
content: '请在微信客户端内打开',
showCancel: false
})
uni.hideLoading()
return
reject(res)
}
//每次都需要重新初始化配置
this.initJssdkShare(function () {
jweixin.ready(function () {
jweixin.getLocation({
type: 'wgs84',
success: function (res) {
console.log('jssdk获取的位置:',res.longitude,res.latitude)
resolve(res)
},
cancel: function (res) {
reject(res)
alert('您已禁止获取位置信息')
}
});
});
},url)
})
}
}