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(){} } export default MiniProgramPlatform;