2025-06-06 03:08:19 +08:00

178 lines
4.5 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import $http from '@/config/requestConfig'
import store from '@/config/store';
import base from '@/config/baseUrl';
import { getAppWxLatLon } from '@/plugins/utils';
// #ifdef H5
import { getLatLonH5, publicShareFun, wxPublicPay, getBrowser, appMutual } from '@/config/html5Utils';
// 公众号分享
export const publicShare = publicShareFun;
// #endif
// #ifdef APP-PLUS
import appShareFun, {closeShare} from '@/plugins/share';
// APP分享
export const appShare = function(data,callbcak){
return appShareFun({
shareTitle: data.shareTitle || base.share.title,
shareUrl: data.shareUrl || base.share.link,
shareContent: data.shareContent || base.share.desc,
shareImg: data.shareImg || base.share.imgUrl,
},callbcak);
};
export const closeAppShare = closeShare;
// #endif
// #ifdef MP-WEIXIN
// 微信小程序分享
export const wxShare = function (title,path) {
let shareInfo = {
title: title || base.share.title,
};
if(path && typeof(path) == "string"){
shareInfo.path = path;
}else if(path === undefined){
shareInfo.path = base.share.path;
}
if (store.state.userInfo.token) {
if (shareInfo.path.indexOf("?") >= 0) {
shareInfo.path += "&recommendCode=" + store.state.userInfo.uid;
} else {
shareInfo.path += "?recommendCode=" + store.state.userInfo.uid;
}
}
return shareInfo;
}
// #endif
//支付APP微信支付、APP支付宝支付、微信小程序支付
export const setPay = function(payInfo, callback) {
let httpUrl = "";
if (payInfo.type == 'wxpay') {
// APP微信支付
httpUrl = 'api/pay/v1/pay_sign_wx'
} else if (payInfo.type == 'alipay') {
// APP支付宝支付
httpUrl = 'api/pay/v1/pay_sign_ali'
} else if (payInfo.type == 'smallPay') {
// 微信小程序支付
httpUrl = 'api/pay/v1/small_pay_sign_wx'
}
$http.get(httpUrl, {
orderNo: payInfo.orderNo
}).then(data => {
let payData = {
success: function(res) {
callback && callback({
success: true,
data: res
});
console.log('success:' + JSON.stringify(res));
},
fail: function(err) {
callback && callback({
success: false,
data: err
});
console.log('fail:' + JSON.stringify(err));
}
};
if (payInfo.type == 'smallPay') {
// 小程序
payData.provider = 'wxpay';
payData.timeStamp = data.timeStamp;
payData.nonceStr = data.nonceStr;
payData.package = data.package;
// payData.package = "prepay_id=" + data.prepayid;
payData.signType = "MD5";
payData.paySign = data.sign;
} else if (payInfo.type == 'wxpay') {
// app微信
payData.provider = 'wxpay';
payData.orderInfo = data;
} else if (payInfo.type == 'alipay') {
// app 支付宝
payData.provider = 'alipay';
payData.orderInfo = data;
} else if (payInfo.type == 'baidu') {
payData.provider = 'baidu';
payData.orderInfo = data;
}
console.log("支付参数", payData);
uni.requestPayment(payData);
}, err => {
callback && callback({
success: false,
data: err
});
});
}
// 支付统一分配
export const setPayAssign = function(orderInfo, callback) {
orderInfo.price = orderInfo.price || orderInfo.pricePay;
orderInfo.title = orderInfo.title || orderInfo.orderTitle;
//支付
// #ifdef APP-PLUS
uni.navigateTo({
url: '/pages/template/pay?orderNo=' + orderInfo.orderNo + '&price=' + orderInfo.price + '&title=' + orderInfo.title
});
// #endif
// #ifdef MP-WEIXIN
setPay({
...orderInfo,
type: "smallPay"
}, callback);
// #endif
// #ifdef H5
if (getBrowser() === '微信') {
wxPublicPay({
orderNo: orderInfo.orderNo
});
} else {
// H5嵌套在APP里面调用app支付方法
appMutual('setJumpPay', orderInfo);
}
// #endif
}
// 获取地址信息 微信小程序、APP、公众号
export const getLatLon = function(tip){
return new Promise((resolve, reject) => {
const successProcess = function(res){
store.commit("setCurrentAddress", {
latitude: res.latitude,
longitude: res.longitude
});
resolve(res);
};
const errProcess = function(err){
reject(err);
if(tip){
uni.showToast({
title: err,
icon: "none"
});
}
};
// #ifdef H5
getLatLonH5(successProcess,errProcess);
// #endif
// #ifndef H5
getAppWxLatLon(successProcess,errProcess);
// #endif
});
}
export const getUserInfo = function(lang){
return new Promise((resolve,reject)=>{
$http.get('/api/user/profile?lang='+lang).then(res => {
if(res.code == 0){
let userinfo=res.data;
userinfo.token=store.state.userInfo.token;
store.commit('setUserInfo', userinfo);
resolve(userinfo);
}
});
})
}