import { login, getMyIndexInfo } from "../config/user" // 微信登录方法 export const wxLogin = () => { return new Promise((resolve, reject) => { // 1. 获取微信登录凭证 uni.login({ provider: 'weixin', success: async (loginRes) => { try { if (loginRes.code) { // 2. 发送 code 到后端换取 token const result = await login({ code: loginRes.code, appid: "wx2165f0be356ae7a9" }) if (result.code === 200) { // 3. 保存token和用户信息 uni.setStorageSync('token', result.data.LoginWxVo.access_token) uni.setStorageSync('client_id', result.data.LoginWxVo.client_id) resolve(result.data) } else { throw new Error(result.message || '登录失败') } } else { throw new Error('获取微信登录凭证失败') } } catch (error) { uni.showToast({ title: error.message || '登录失败', icon: 'none' }) reject(error) } }, fail: (error) => { uni.showToast({ title: '微信登录失败', icon: 'none' }) reject(error) } }) }) } // 检查登录状态 // export const checkLogin = () => { // const token = uni.getStorageSync('token') // return !!token // } // 获取用户信息 export const getUserInfo = () => { return new Promise(async (res, rej) => { const result = await getMyIndexInfo({ isHide: false, }) res(result) }) } // 调用微信支付分接口 export const initiateWeChatScorePayment = (paymentData) => { return new Promise((resolve, reject) => { // 确保paymentData包含所需数据 if (!paymentData || !paymentData.data || !paymentData.data.package) { reject(new Error('支付参数不完整')); return; } // 使用wx.openBusinessView打开微信支付分小程序 wx.openBusinessView({ businessType: 'wxpayScoreUse', extraData: { mch_id: paymentData.data.mch_id, package: paymentData.data.package }, success: (businessRes) => { console.log('微信支付分小程序调用成功', businessRes); // 根据返回结果判断是否完成支付 if (businessRes.errMsg === 'openBusinessView:ok') { resolve(businessRes); } else { reject(new Error('支付流程未完成')); } }, fail: (error) => { console.error('微信支付分小程序调用失败', error); uni.showToast({ title: error.errMsg || '支付分接口调用失败', icon: 'none' }); reject(error); } }); }); } export const getQueryString = function (url, name) { var reg = new RegExp('(^|&|/?)' + name + '=([^&|/?]*)(&|/?|$)', 'i') var r = url.substr(1).match(reg) if (r != null) { return r[2] } return null; }