import store from '../store' import setting from './config' async function request(service,method='GET',data={},relogin = true) { // let token = uni.getStorageSync('token'); var header = { 'content-type':'application/x-www-form-urlencoded;charset=utf-8', 'Authorization':store.state.token } var [err, res] = await uni.request({ url:setting.base_url+service, method:method, data:{ v: 1, ...data }, header:header, timeout: 65000 }) return new Promise(function (resolve,reject){ if(err){ console.log(err) if(err.errMsg){ reject(err.errMsg) }else{ reject('未知错误') } }else{ if(res.data.status == 101 || res.data.status == 102){ // if(relogin){ // uni.reLaunch({ // url:"/pages/login/login" // }) // reject("请登录以继续") // } // #ifndef MP-WEIXIN uni.showModal({ title:"提示", content:res.data.msg, success() { uni.reLaunch({ url:"/pages/login/login" }) } }) // #endif uni.hideLoading() reject("请登录以继续") }else if(res.data.status == 501) { uni.showModal({ title:"提示", content:res.data.msg, success() { uni.reLaunch({ url:"/pages/login/login" }) } }) reject(res.data) } resolve(res.data) } }) } function formatTime(timeStamp) { var date = new Date() date.setTime(timeStamp * 1000) var y = date.getFullYear() var m = date.getMonth() + 1 m = m < 10 ? ('0' + m) : m var d = date.getDate() d = d < 10 ? ('0' + d) : d var h = date.getHours() h = h < 10 ? ('0' + h) : h var minute = date.getMinutes() var second = date.getSeconds() minute = minute < 10 ? ('0' + minute) : minute second = second < 10 ? ('0' + second) : second return y + '-' + m + '-' + d+' '+h+':'+minute+':'+second }; function checkAuth(mobile=true,auth=true) { if(!store.state.token){ uni.showModal({ title:'提示', content:"尚未登录,请先登录!", confirmText:"去登录", success: (res) => { if(res.confirm){ let url = "../login/login" // #ifdef MP url = "../login/login?quickLogin=1" // #endif uni.navigateTo({ url:url }) }else{ uni.navigateBack({ delta:1 }) } } }) return false } if(!store.state.userInfo.mobile && mobile){ uni.showModal({ title:'提示', content:"请先绑定手机", confirmText:"去绑定", success: (res) => { if(res.confirm){ uni.navigateTo({ url:"../regiester/regiester?bindMob=1" }) }else{ uni.navigateBack({ delta:1 }) } } }) return false } if(!store.state.userInfo.is_auth && store.state.config.need_auth == '1' && auth){ uni.showModal({ title:'提示', content:"请先进行实名认证才能发布信息", confirmText:"去认证", success: (res) => { if(res.confirm){ uni.navigateTo({ url:"/pages/auth/user_auth" }) }else{ uni.navigateBack({ delta:1 }) } } }) return false }else{ return true } } function isWeChat() { //window.navigator.userAgent属性包含了浏览器类型、版本、操作系统类型、浏览器引擎类型等信息,这个属性可以用来判断浏览器类型 var ua = window.navigator.userAgent.toLowerCase(); //通过正则表达式匹配ua中是否含有MicroMessenger字符串 if (ua.match(/MicroMessenger/i) == 'micromessenger') { return true; } else { return false; } } function jsApiCall(data, callback_succ_func, callback_error_func) { uni.showLoading() //使用原生的,避免初始化appid问题 WeixinJSBridge.invoke('getBrandWCPayRequest', { appId: data['appId'], timeStamp: data['timestamp'], nonceStr: data['nonceStr'], // 支付签名随机串,不长于 32 位 package: data['package'], // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=\*\*\*) signType: data['signType'], // 签名方式,默认为'SHA1',使用新版支付需传入'MD5' paySign: data['paySign'], // 支付签名 }, function (res) { var msg = res.err_msg ? res.err_msg : res.errMsg; console.log(res) uni.hideLoading() //WeixinJSBridge.log(msg); switch (msg) { case 'get_brand_wcpay_request:ok': //支付成功时 if (callback_succ_func) { callback_succ_func(res); } else { uni.showLoading({ title: '支付成功,跳转中...' }) setTimeout(function() { uni.hideLoading() uni.switchTab({ url: '/pages/tab/order' }) }, 200); } break; default: //支付失败时 WeixinJSBridge.log('支付失败!' + msg + ',请返回重试.'); if (callback_error_func) { callback_error_func({ msg: msg }); } break; } }) } function wxJsapiPay(data, callback_succ_func, callback_error_func) { if (!isWeChat()) { return; } if (typeof WeixinJSBridge == "undefined") { if (document.addEventListener) { document.addEventListener('WeixinJSBridgeReady', jsApiCall, false); } else if (document.attachEvent) { document.attachEvent('WeixinJSBridgeReady', jsApiCall); document.attachEvent('onWeixinJSBridgeReady', jsApiCall); } } else { jsApiCall(data, callback_succ_func, callback_error_func); } } export { request, formatTime, checkAuth, isWeChat, wxJsapiPay }