微信支付封装
/**
* timeStamp {Str} 时间戳
* nonceStr {Str} 随机字符串
* package {Str} 统一下单接口返回的 prepay_id 参数值
* signType {Str} 签名算法
* paySign {Str} 签名
* successFun {Fun} 成功回调
* failFun {Fun} 失败回调
* completeFun {Fun} 结束回调
* */
wx_pay(timeStamp, nonceStr, pack, signType, paySign, successFun = null, failfun = null, completeFun = null){
uni.requestPayment({
provider: 'wxpay',
orderInfo: "orderInfo",
timeStamp: timeStamp,
nonceStr: nonceStr,
package: pack,
signType: signType,
paySign: paySign,
success(res) {
successFun (res)
},
fail(err) {
if (failfun) {
failfun(err)
}
},
complete(result) {
if (completeFun) {
completeFun (result)
}
}
});
}
/**
* get请求
* */
get(url, params, header) {
let token = uni.getStorageSync('token') || '';
return new Promise((resolve, reject) => {
uni.request({
//带token值验证
url: base_url + url,
data: params,
header: header || {
'token': token
},
method: "GET",
success: (res) => {
resolve(res.data);
console.table(res.data.data);
},
fail: (err) => {
reject(err);
}
});
});
},
/**
* post请求
* */
post(url, data, header) {
let token = uni.getStorageSync('token') || '';
return new Promise((resolve, reject) => {
uni.showLoading({
title: '加载中'
});
uni.request({
//带token值验证
url: base_url + url,
data: data,
header: header || {
"Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
'token': token
},
method: "POST",
success: (res) => {
uni.hideLoading();
resolve(res.data);
console.table(res.data.data);
},
fail: (err) => {
uni.hideLoading();
reject(err);
}
})
});
}
/*
* 手机格式验证
*/
checkMobile(mobile){
let reg = /^1[345678]\d{9}$/;
return reg.test(mobile);
}
/*
图片预览
list {Arr} 图片
url {Num} 下标
*/
imgPreview(list, idx) {
if (list && list.length > 0) {
let curr_arr = [];
list.map(item => {
curr_arr.push(item.filepath)
})
uni.previewImage({
current: curr_arr[idx], // 传 Number H5端出现不兼容
urls: curr_arr
});
}
}
/*
* 二次弹窗封装 confirm
* content {Str} 弹窗内容
* title {Fun} 提示内容
*/
confirm(content, title = '提示') {
return new Promise((resolve, reject) => {
uni.showModal({
title,
content,
success: res => {
if (res.confirm) {
console.log('用户点击确定');
resolve(true)
} else if (res.cancel) {
resolve(false)
console.log('用户点击取消');
}
}
});
})
}
/*
* 二次弹窗封装 toast
* title {Str} 弹窗内容
* duration {Num} 间隔多久执行回调
*/
toast(title, duration = 1000) {
return new Promise((resolve, reject) => {
uni.showToast({
title: title,
icon: 'none',
success: () => {
setTimeout(() => {
resolve()
}, duration)
}
});
})
}
uni-app 拿去即可用的封装方法
最新推荐文章于 2024-05-14 17:56:47 发布