/** * 支付接口模块 */ import { get, post } from './request' /** * 获取会员等级配置 * @returns {Promise} 会员等级列表 */ export function getMemberTiers() { return get('/pay/memberTiers') } /** * 创建会员订单 * @param {number} memberLevel - 会员等级:1永久会员 2诚意会员 3家庭版会员 * @returns {Promise} 订单信息和支付参数 */ export function createMemberOrder(memberLevel) { return post('/pay/createOrder', { memberLevel }) } /** * 查询订单详情 * @param {string} orderNo - 订单号 * @returns {Promise} 订单详情 */ export function getOrderDetail(orderNo) { return get(`/pay/order/${orderNo}`) } /** * 查询订单支付状态(主动查询微信) * @param {string} orderNo - 订单号 * @returns {Promise} 订单详情 */ export function queryOrderStatus(orderNo) { return get(`/pay/order/${orderNo}/status`) } /** * 取消订单 * @param {string} orderNo - 订单号 * @returns {Promise} 操作结果 */ export function cancelOrder(orderNo) { return post(`/pay/order/${orderNo}/cancel`) } /** * 调起微信支付 * @param {Object} paymentParams - 支付参数 * @returns {Promise} 支付结果 */ export function requestPayment(paymentParams) { return new Promise((resolve, reject) => { wx.requestPayment({ timeStamp: paymentParams.timeStamp, nonceStr: paymentParams.nonceStr, package: paymentParams.package, signType: paymentParams.signType || 'RSA', paySign: paymentParams.paySign, success: (res) => { resolve({ success: true, data: res }) }, fail: (err) => { if (err.errMsg.includes('cancel')) { resolve({ success: false, cancelled: true, message: '用户取消支付' }) } else { reject(err) } } }) }) } /** * 购买会员完整流程 * @param {number} memberLevel - 会员等级 * @returns {Promise} 支付结果 */ export async function purchaseMember(memberLevel) { try { // 1. 创建订单 const orderRes = await createMemberOrder(memberLevel) if (orderRes.code !== 0) { return { success: false, message: orderRes.message || '创建订单失败' } } const { orderNo, paymentParams } = orderRes.data // 2. 调起支付 const payRes = await requestPayment(paymentParams) if (!payRes.success) { return payRes } // 3. 查询支付结果 const statusRes = await queryOrderStatus(orderNo) if (statusRes.code === 0 && statusRes.data.status === 2) { return { success: true, orderNo, message: '支付成功' } } return { success: true, orderNo, message: '支付处理中' } } catch (error) { console.error('购买会员失败:', error) return { success: false, message: error.message || '支付失败' } } } export default { getMemberTiers, createMemberOrder, getOrderDetail, queryOrderStatus, cancelOrder, requestPayment, purchaseMember }