Files
medicine_app/config/utils.js
2024-06-19 17:29:22 +08:00

321 lines
8.4 KiB
JavaScript
Raw 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 '@/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 '@/uni_modules/zhouWei-APPshare/js_sdk/appShare';
// APP分享
export const appShare = function(data, callbcak) {
let userInfo = store.state.userInfo;
if (!(userInfo && userInfo.uid)) {
userInfo = uni.getStorageSync("userInfo");
}
let shareData = {
shareTitle: data.shareTitle || base.share.title,
shareUrl: data.shareUrl || base.share.link,
shareContent: data.shareContent || base.share.desc,
shareImg: data.shareImg || base.share.imgUrl,
}
if (userInfo && userInfo.uid) {
if (data.shareUrl) {
if (data.shareUrl.indexOf("?") >= 0) {
shareData.shareUrl = data.shareUrl + "&recommend=" + userInfo.uid
} else {
shareData.shareUrl = data.shareUrl + "?recommend=" + userInfo.uid
}
} else if (base.share && base.share.link) {
if (base.share.link.indexOf("?") >= 0) {
shareData.shareUrl = base.share.link + "&recommend=" + userInfo.uid
} else {
shareData.shareUrl = base.share.link + "?recommend=" + userInfo.uid
}
}
}
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(data = {}) {
let shareInfo = {
title: data.title || base.share.title,
};
if (data.path && typeof(data.path) == "string") {
shareInfo.path = data.path;
} else if (data.path != 1) {
shareInfo.path = "pages/home/home";
}
if (data.imageUrl) {
shareInfo.imageUrl = data.imageUrl;
}
let userInfo = store.state.userInfo;
if (!(userInfo && userInfo.uid)) {
userInfo = uni.getStorageSync("userInfo");
}
if (userInfo && userInfo.uid) {
if (data.query && typeof(data.query) == "object") {
data.query.recommendCode = userInfo.uid;
} else {
data.query = {
recommendCode: userInfo.uid
};
}
}
if (data.query && typeof(data.query) == "object") {
Object.keys(data.query).forEach((key, index) => {
if (index > 0 && shareInfo.query) {
shareInfo.query += "&" + key + "=" + data.query[key];
shareInfo.path += "&" + key + "=" + data.query[key];
} else {
shareInfo.query = key + "=" + data.query[key];
shareInfo.path += "?" + key + "=" + data.query[key];
}
});
}
return shareInfo;
}
// #endif
//支付APP微信支付、APP支付宝支付、微信小程序支付
export const setPay = function(payInfo, callback) {
console.log(payInfo)
payInfo.customerId = store.state.userInfo.id
let httpUrl = "";
if (payInfo.typePay == 'wxpay') {
// APP微信支付
httpUrl = '/v3/pay/placeAnOrder/app'
} else if (payInfo.typePay == 'alipay') {
// APP支付宝支付
httpUrl = 'pay/aliPay/pay'
} else if (payInfo.typePay == 'smallPay') {
// 微信小程序支付
httpUrl = 'api/pay/v1/small_pay_sign_wx'
}else if(payInfo.typePay == 'appleiap'){
// 苹果支付
}
$http.post(httpUrl, payInfo).then(data => {
console.log(data,'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.typePay == '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.typePay == 'wxpay') {
// app微信
payData.provider = 'wxpay';
payData.orderInfo = data;
} else if (payInfo.typePay == 'alipay') {
// app 支付宝
payData.provider = 'alipay';
payData.orderInfo = data.orderInfo;
} else if (payInfo.typePay == 'baidu') {
payData.provider = 'baidu';
payData.orderInfo = data;
}
if (payData.orderInfo != '' && payData.orderInfo != undefined) {
console.log("支付参数", payData);
// let EnvUtils = plus.android.importClass('com.alipay.sdk.app.EnvUtils');
// EnvUtils.setEnv(EnvUtils.EnvEnum.SANDBOX);
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/home/weChatPay?orderNo=' + orderInfo.orderNo + '&price=' + orderInfo.price +
'&title=' + orderInfo.title
});
// #endif
// #ifdef MP-WEIXIN
setPay({
...orderInfo,
type: "smallPay"
}, res => {
if (res.success) {
uni.redirectTo({
url: "/pages/shopCar/paySuccess?orderNo=" + orderInfo.orderNo
});
}
});
// #endif
// #ifdef H5
if (getBrowser() === '微信') {
wxPublicPay({
orderNo: orderInfo.orderNo
}, function() {
uni.redirectTo({
url: "/pages/shopCar/paySuccess?orderNo=" + orderInfo.orderNo
});
});
} else {
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 checkBookRight = function(data,callback) {
console.log('接受的值', data)
$http.request({
url: "/book/user/checkUserBook",
method: "POST", // POST、GET、PUT、DELETE具体说明查看官方文档
data:data,
header: { //默认 无 说明请求头1
'Content-Type': 'application/json'
},
}).then(res => {
// console.log(res,'checkBookRight')
if(res.code === 0){
callback && callback({
success: true,
data: '有权限'
});
}
}).catch(e => {
callback && callback({
success: false,
data: '无权限'
});
})
}
// 单独微信支付
export const setWXPay = function(payInfo, callback) {
console.log('都走这个接口', payInfo)
// payInfo = {
// "orderSn": "20240524123456789101112131415167",
// "buyOrderId": 15,
// "totalAmount": "38"
// }
$http.request({
url: "pay/placeAnOrder/shoppingPay",
method: "POST", // POST、GET、PUT、DELETE具体说明查看官方文档
data: {
...payInfo,
appName: 'medicine'
},
header: { //默认 无 说明请求头1
'Content-Type': 'application/json'
},
}).then(res => {
console.log(res, 'resshoppingPay')
if (res.code === 0) {
console.log('接下来走微信接口啦')
let payData = {
provider: 'wxpay',
orderInfo: {
"appid": res.paramMap.appid, // 微信开放平台 - 应用 - AppId注意和微信小程序、公众号 AppId 可能不一致
"noncestr": res.Map.noncestr, // 随机字符串
"package": res.Map.package, // 固定值
"partnerid": res.paramMap.mchid, // 微信支付商户号
"prepayid": res.Map.prepayid, // 统一下单订单号
"timestamp": res.Map.timestamp, // 时间戳(单位:秒)
"signType": "SHA256-RSA",
"sign": res.Map.sign
},
success(res) {
callback && callback({
success: true,
data: res
});
console.log('success:' + JSON.stringify(res));
},
fail(err) {
callback && callback({
success: false,
data: err
});
console.log('微信错误fail:' + JSON.stringify(err));
}
}
// console.log(payData)
if (payData.orderInfo.prepayid != '' && payData.orderInfo.prepayid != undefined) {
uni.requestPayment(payData);
}
}
})
}