// 公众号基本信息:请修改下列字段使用本示例 请换成自己的
const WX_RESOURCE_APPID = 'wxebbfb0c332a64879' /* 资源方 AppID */
const WX_RESOURCE_ENVID = 'y-xxxx' /* 资源方云开发环境 ID */
const WX_OFFICIAL_ACCOUNT_APPID = 'wxdeb11c5649d3bff6'/* 公众号 AppID */
const WX_AUTH_TYPE = 'snsapi_base' /* 选择需要的授权方式,snsapi_base 或 snsapi_userinfo */
const WX_REDIRECT_URI = 'https://shouyin.yeepay.com/nc-cashier-wap/sccanpay/auth2Callback/wechatLogin' /* 回调 URL */
//
// 示例配置
const isPersistLoginInfo = false // 是否需要保留登录态信息到 window 中,只有 snsapi_userinfo 方式需要
if (window.wx) {
window.cloud = wx.cloud
}
var urlSearch = new URLSearchParams(location.search)
var accessToken = urlSearch.get('access_token')
var refreshToken = urlSearch.get('refresh_token')
/**
* 检查/发起登录
* 1. 函数会检查当前是否已登录(checkLogin)
* 2. 如果未登录,会 10s 后自动发起登录(startLogin)
* 3. 如果已登录,会初始化实例,使用指定的微信云开发资源
*/
window.doLogin = async () => {
try {
const checkLoginOptions = {
provider: 'OfficialAccount',
appid: WX_OFFICIAL_ACCOUNT_APPID,
}
if (accessToken) {
checkLoginOptions.accessToken = accessToken
}
if (refreshToken) {
checkLoginOptions.refreshToken = refreshToken
}
console.log(`checkLogin options: `, checkLoginOptions)
const result = await cloud.checkLogin(checkLoginOptions)
console.log(`checkLogin result: `, result)
if (isPersistLoginInfo) {
window.checkLoginRes = result
}
if (result.errCode === 0 && result.loggedIn) {
console.log(`checkLogin success`)
const instance = window.instance = new cloud.Cloud({
appid: WX_OFFICIAL_ACCOUNT_APPID,
resourceAppid: WX_RESOURCE_APPID,
resourceEnv: WX_RESOURCE_ENVID,
})
const initResult = await instance.init()
console.log(`instance inited`, initResult)
console.log(`can use cloud instance to access resource now !`)
return instance
} else {
console.log(`checkLogin with sdk errCode ${result.errCode} errMsg ${result.errMsg}, will start oauth in 10s`)
setTimeout(() => {
try {
cloud.startLogin({
provider: 'OfficialAccount',
appid: WX_OFFICIAL_ACCOUNT_APPID,
scope: WX_AUTH_TYPE,
redirectUri: WX_REDIRECT_URI+'?redirectUrl='+window.location.href,
})
} catch (e) {
console.error(`startLogin fail: ${e}`)
console.warn(`will start OfficialAccount OAuth login in 10s.`)
}
}, 3000)
}
} catch (e) {
console.error(e)
}
}
async function getJSSDKSignature(url = window.location.href) {
const instance = window.instance
let res = {}
try {
// 在完成云开发登录之后,可以使用云开发 Web SDK 提供的 getJSSDKSignature 方法完成获取网页 wx.config 所需签名
res = await instance.getJSSDKSignature({
url: url // '要签名的网页 URL'
})
} catch (error) {
console.error(error);
}
console.log(res, 'res------<');
return res
}
调用 checkLogin 获取登录, 提示 redirect_uri 参数错误

网页授权域名只配置域名,不用加路径