// utils/wxsdk.js —— 封装微信扫一扫 不用旧的了
import { wechatApi } from '@/api/index.js'

const wx = window.jWeixin

/**
 * 初始化微信 JS-SDK
 */
export async function initWxConfig() {
	const url = window.location.href.split('#')[0]
	console.log(url);
	try {
		const data = await wechatApi.getJssdkConfig(url)
		const { app_id, timestamp, nonce_str, signature } = data

		return new Promise((resolve, reject) => {
			wx.config({
				debug: false,
				appId: app_id,
				timestamp: timestamp,
				nonceStr: nonce_str,
				signature: signature,
				jsApiList: ['scanQRCode']
			})
			wx.ready(() => {
				console.log('微信 SDK 就绪')
				resolve()
			})
			wx.error((err) => {
				console.error('wx.config 失败', err)
				reject(err)
			})
		})
	} catch (e) {
		console.error('获取微信签名失败', e)
		throw e
	}
}

/**
 * 调起微信扫一扫
 * @returns {Promise<string>}  扫码结果字符串
 */
export function wxScan() {
	return new Promise((resolve, reject) => {
		wx.scanQRCode({
			needResult: 1,
			scanType: ['qrCode', 'barCode'],
			success(res) {
				console.log('扫码成功:', res)
				resolve(res.resultStr)
			},
			fail(err) {
				console.error('扫码失败:', err)
				reject(err)
			}
		})
	})
}

/**
 * 检查是否在微信环境中
 */
export function isInWechat() {
	return /micromessenger/i.test(navigator.userAgent)
}