import Request from '@/common/request.js'; let request = new Request().http const api = { // 支付 zfbPayment: '/app/live/liveOrder/aliPayment', // 支付宝付款 weChatPayment: '/app/live/liveOrder/weChatPayment', // 微信付款 // updateConfirm: (orderId, type) => `/app/live/liveOrder/updateConfirm/${orderId}/${type} `, // 取消/支付订单确认 } // 支付 // 支付宝付款 export function zfbPayment(data) { return request(api.zfbPayment, data, 'POST', 'application/json;charset=UTF-8') } // 微信付款 // export function weChatPayment(data) { // return request(api.weChatPayment, data, 'POST', 'application/json;charset=UTF-8') // } /** * 微信支付(全平台适配简化版) * @param {String} orderId 订单ID * @param {Number} amount 金额(单位:分) * @returns {Promise} */ // export function weChatPayment(orderId, amount) { export function weChatPayment(data) { return new Promise((resolve, reject) => { // 1. 获取支付参数 // totalFee: amount, // platform: getPlatform() // 自动识别平台 request(api.weChatPayment, data, 'POST', 'application/json;charset=UTF-8') .then(res => { // 2. 调用平台支付 invokePayment(res.data) .then(resolve) .catch(err => { handlePaymentError(err); reject(err); }); }) .catch(err => { handlePaymentError(err); reject(err); }); }); } // ==================== 内部方法 ==================== function getPlatform() { // #ifdef MP-WEIXIN return 'miniprogram'; // #endif // #ifdef APP-PLUS return 'app'; // #endif // #ifdef H5 return 'h5'; // #endif } function invokePayment(payData) { return new Promise((resolve, reject) => { // #ifdef MP-WEIXIN uni.requestPayment({ provider: 'wxpay', ...payData, // 直接展开小程序所需参数 success: (res) => { uni.showToast({ title: '支付成功' }); resolve(res); }, fail: (err) => { reject(new Error(formatError(err))); } }); // #endif // #ifdef APP-PLUS uni.requestPayment({ provider: 'wxpay', orderInfo: payData.orderInfo, success: resolve, fail: (err) => { reject(new Error(formatError(err))); } }); // #endif // #ifdef H5 if (typeof WeixinJSBridge === 'undefined') { return reject(new Error('请在微信浏览器中打开')); } WeixinJSBridge.invoke( 'getBrandWCPayRequest', payData, (res) => { if (res.err_msg === 'get_brand_wcpay_request:ok') { resolve(res); } else { reject(new Error(res.err_msg || '支付失败')); } } ); // #endif }); } function formatError(err) { if (err.errMsg) { if (err.errMsg.includes('cancel')) return '支付已取消'; if (err.errMsg.includes('fail')) return '支付失败'; } return err.message || '支付异常'; } function handlePaymentError(err) { console.error('[支付错误]', err); uni.showToast({ title: err.message, icon: 'none', duration: 3000 }); } // 微信 // export function userAddr(userId, data={}) { // return request(api.userAddr(userId), data, 'GET', 'application/json;charset=UTF-8') // }