168 lines
3.4 KiB
JavaScript
168 lines
3.4 KiB
JavaScript
import BasePlatform from './BasePlatform';
|
|
/**
|
|
* 小程序平台
|
|
*/
|
|
class MiniProgramPlatform extends BasePlatform {
|
|
constructor() {
|
|
super();
|
|
this.code = 'MP-WEIXIN';
|
|
this.env = 'miniProgram';
|
|
}
|
|
getPayData(url, data) {
|
|
return data;
|
|
}
|
|
pay({
|
|
data
|
|
}) {
|
|
return new Promise((resolve, reject) => {
|
|
let provider = "weixin";
|
|
uni.requestPayment({
|
|
provider,
|
|
...data,
|
|
success: res => {
|
|
// console.log(res)
|
|
},
|
|
fail: err => {
|
|
// console.log('common.wxMpPay-error', err)
|
|
},
|
|
complete: res => {
|
|
console.log('complete (res)', res)
|
|
if (res.errMsg == 'requestPayment:fail cancel') {
|
|
uni.showToast({
|
|
title: '取消支付',
|
|
icon: 'none',
|
|
duration: 500,
|
|
success: () => {
|
|
/* 取消订单 */
|
|
resolve('cancel')
|
|
}
|
|
})
|
|
|
|
|
|
}
|
|
if (res.errMsg == 'requestPayment:ok') {
|
|
uni.showToast({
|
|
title: '支付成功',
|
|
icon: 'success',
|
|
duration: 500,
|
|
success: () => {
|
|
resolve('success')
|
|
}
|
|
})
|
|
}
|
|
}
|
|
})
|
|
})
|
|
}
|
|
|
|
share({
|
|
title,
|
|
desc,
|
|
image,
|
|
url
|
|
}) {
|
|
wx.showShareMenu({
|
|
withShareTicket: true,
|
|
menus: ['shareAppMessage', 'shareTimeline']
|
|
});
|
|
// 监听用户点击分享按钮
|
|
wx.onShareAppMessage(() => ({
|
|
title,
|
|
imageUrl: image
|
|
}));
|
|
}
|
|
/**
|
|
* 选择地址
|
|
* @returns
|
|
*/
|
|
chooseAddress() {
|
|
return new Promise((resolve, reject) => {
|
|
uni.chooseAddress({
|
|
success: res => {
|
|
res.detailed_address = res.provinceName + res.cityName + res.countyName + res.detailInfo;
|
|
resolve(res)
|
|
},
|
|
fail: err => {
|
|
reject(err)
|
|
}
|
|
});
|
|
});
|
|
}
|
|
downloadFile(url) {
|
|
return new Promise((resolve, reject) => {
|
|
// 下载图片到本地
|
|
wx.downloadFile({
|
|
url: url,
|
|
success: (res) => {
|
|
if (res.statusCode === 200) {
|
|
const tempFilePath = res.tempFilePath; // 获取临时文件路径
|
|
// 保存图片到相册
|
|
wx.saveImageToPhotosAlbum({
|
|
filePath: tempFilePath,
|
|
success: () => {
|
|
uni.showToast({
|
|
title: '保存成功',
|
|
icon: 'success',
|
|
});
|
|
},
|
|
fail: (err) => {
|
|
uni.showToast({
|
|
title: '保存失败',
|
|
icon: 'none',
|
|
});
|
|
console.error('保存失败', err);
|
|
},
|
|
});
|
|
} else {
|
|
uni.showToast({
|
|
title: '图片下载失败',
|
|
icon: 'none',
|
|
});
|
|
console.error('图片下载失败', res);
|
|
}
|
|
},
|
|
fail: (err) => {
|
|
uni.showToast({
|
|
title: '图片下载失败',
|
|
icon: 'none',
|
|
});
|
|
console.error('图片下载失败', err);
|
|
},
|
|
});
|
|
});
|
|
}
|
|
AppLaunch(options) {
|
|
console.log("AppLaunch", options);
|
|
}
|
|
getOrderNo() {
|
|
return new Promise((resolve, reject) => {
|
|
resolve(null);
|
|
});
|
|
}
|
|
delOrderNo(){}
|
|
|
|
/**
|
|
* 重写获取用户中心菜单列表,添加微信小程序特有菜单
|
|
* @returns {Array} 菜单项数组
|
|
*/
|
|
getUserMenuList() {
|
|
// 获取基础菜单列表
|
|
const baseMenuList = super.getUserMenuList();
|
|
|
|
// 添加客服菜单项(仅微信小程序)
|
|
const customServiceMenu = {
|
|
id: 9,
|
|
show: true,
|
|
title: '客服',
|
|
icon: 'my/s9.png',
|
|
path: '',
|
|
isCustomService: true,
|
|
// 客服按钮不需要处理函数,由微信小程序原生组件处理
|
|
handler: () => {}
|
|
};
|
|
|
|
// 将客服菜单插入到第二个位置
|
|
return [...baseMenuList.slice(0, 1), customServiceMenu, ...baseMenuList.slice(1)];
|
|
}
|
|
}
|
|
export default MiniProgramPlatform; |