import { wxPhoneLogin, getPhoneNumber } from '../login' // 後端介面 // 服務端介面 - 獲取openid function queryOpenIdFn(code) { return new Promise((resolve) => { wxPhoneLogin({ code, }) .then((res: any) => { if (res.code == 0) { console.log('獲取openid失敗1', res.msg) return } uni.setStorageSync('openId', res.data.openid) resolve(res.data) }) .catch((err) => { console.log('獲取openid失敗2', err) }) }) } // 服務端介面 - 獲取手機號 function getPhoneNumberFn(phoneCode, openId) { return new Promise((resolve) => { getPhoneNumber({ code: phoneCode, openId, }) .then((res) => { if (res.code == 0) { console.log('獲取手機號失敗1:', res.msg) return } resolve(res) }) .catch((err) => { console.log('獲取手機號失敗2:', err) }) }) } // 微信api : 微信登入 function loginFn() { return new Promise((resolve, reject) => { uni.login({ success: async (res) => { queryOpenIdFn(res.code).then((res) => { resolve(res) }) }, fail: (err) => { console.log('login fail:', err) }, }) }) } export { loginFn, getPhoneNumberFn }
介面呼叫
loginFn().then((res: any) => { // 微信登入&服務端獲取openid console.log(res, '介面換取的openid') console.log('獲取手機號的動態令牌:', e.detail.code) // 動態令牌 getPhoneNumberFn(e.detail.code, res.openid).then((res2: any) => { // 服務端獲取手機號 console.log(555, res2) if (res2.code == 1) { userStore.setUserInfs(res2.data?.userinfo) uni.setStorageSync('token', res2.data.userinfo.token) gonswi('/pages/index/index') } })
})
新建 login.ts