微信公众号网页开发步骤
2023-06-13 09:12:00 时间
大家好,又见面了,我是你们的朋友全栈君。
- 在index.html中引入微信公众JDK的js文件
- 在vue.config.js中插入
configureWebpack: { externals: { wx: 'wx' },
即可以全局import wx from 'wx'
- 授权有两种方式。一种直接获取,一种弹框授权。 第一步:用户同意授权,获取code 第二步:通过code换取网页授权access_token 第三步:刷新access_token(如果需要) 第四步:拉取用户信息(需scope为 snsapi_userinfo) 附:检验授权凭证(access_token)是否有效
获取用户code方法
getUrlQuery () {
let params = location.search.substr(1).split('&')
let query = {
}
params.map(item => {
let [key, val] = item.split('=')
query[key] = val
})
return query
}
let query = this.getUrlQuery()
query['code']
- 通过config接口注入权限验证配置
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: '', // 必填,公众号的唯一标识
timestamp: , // 必填,生成签名的时间戳
nonceStr: '', // 必填,生成签名的随机串
signature: '',// 必填,签名
jsApiList: [] // 必填,需要使用的JS接口列表
});
- 通过ready接口处理成功验证
wx.ready(function(){
// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
});
- 通过error接口处理失败验证
鉴权代码:
import wx from 'wx'
import request from '@/utils/request'
function getWxSignature(params) {
return request({
url: '',
method: 'get',
params
})
}
if (typeof window.entryUrl === 'undefined' || window.entryUrl === '') {
window.entryUrl = location.href.split('#')[0]
}
const map = new Map()
export default async function (jsApiList, callback) {
jsApiList = jsApiList || ['getLocation', 'openLocation']
const resultApi = []
jsApiList.forEach(key => {
if(!map.get(key)) {
resultApi.push(key)
}
})
if(!resultApi.length) {
callback && callback()
return;
}
/** * ios页面路由跳转时得到的url和jssdk锁定的url不一致,安卓不存在此问题,需要换成ios url */
const hostUrl = /(Android)/i.test(navigator.userAgent) ? location.href.split('#')[0] : window.entryUrl;
var nonceStr = (function() {
return Math.random().toString(36).substr(2, 16);
})();
var timestamp = (function () {
return parseInt(new Date().getTime() / 1000) + '';
})();
let res = await getWxSignature({
timestamp,
nonceStr,
hostUrl
})
if (res) {
wx.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: 'xxx', // 必填,公众号的唯一标识
timestamp, // 必填,生成签名的时间戳
nonceStr, // 必填,生成签名的随机串
signature: res.data, // 必填,签名
jsApiList: resultApi // 必填,需要使用的JS接口列表
})
wx.ready(() => {
// VALID_SUCCESS = true
// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
callback && callback()
})
wx.error(e => {
// VALID_SUCCESS = false
callback && callback(false)
console.log(e)
})
}
}
调用例子
created() {
checkWX(['openLocation']) //映入方法后,填入数组
},
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/134960.html原文链接:https://javaforall.cn
相关文章
- html网页详细代码「建议收藏」
- 微信公众号网页授权登录[通俗易懂]
- 微信授权网页扫码登录php,PHP实现微信开放平台扫码登录源码
- 在线客服系统源码开发实战总结:Golang实现对接微信公众号网页授权接口功能
- ProcessOn网页版思维导图是什么软件?
- 【愚公系列】2022年09月 微信小程序-微信小程序实现网页一键登录功能
- 网页完整的长截图怎么截?3步搞定!
- 网页在线客服代码-侧边悬浮在线客服/QQ/微信/电话代码
- antd pro 网页title取不到问题解决
- 网页中图片去色问题是什么_网页问题
- 微信公众号网页授权
- 02.Python Dash网页开发:网页有哪些元素组成与数据流
- 微信小程序四六级查询或访问外部网页(超简单)
- 开源独立高性能客服系统,支持微信网页,H5端,PC端客服接入
- 微信公众平台开发(四)——微信网页授权:获取用户openid&用户基本信息
- 实现网页中美观呈现MySQL数据(网页显示mysql数据)
- Linux终端下网页访问之路(linux命令行访问网站)
- MySQL 网页管理工具:快速管理网站数据库!(mysql网页管理工具)
- 亚马逊扩展网页AI技术提供,降低AI应用开发门槛
- 极大提升网页命中率使用Redis缓存服务器(缓存服务器redis优点)
- Redis网页缓存时间戳优化游览记录(redis网页缓存时间戳)
- asp.net中获取远程网页的内容之一(downmoon原创)
- Android下保存简单网页到本地(包括简单图片链接转换)实现代码
- ie浏览器使用js导出网页到excel并打印