微信公众号网页开发步骤

微信公众号网页开发步骤在index.html中引入微信公众JDK的js文件在vue.config.js中插入configureWebpack:{externals:{wx:’wx’},即可以全局importwxfrom’wx’授权有两种方式。一种直接获取,一种弹框授权。第一步:用户同意授权,获取code第二步:通过code换取网页授权access_token第三步:刷新access_token(如果需要)第四步:拉取用户信息(需scope为snsapi_userinfo)附:检验授权..

大家好,又见面了,我是你们的朋友全栈君。

  1. 在index.html中引入微信公众JDK的js文件

  2. 在vue.config.js中插入configureWebpack: { externals: { wx: 'wx' },即可以全局import wx from 'wx'

  3. 授权有两种方式。一种直接获取,一种弹框授权。
    第一步:用户同意授权,获取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']
  1. 通过config接口注入权限验证配置
wx.config({ 
   
  debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  appId: '', // 必填,公众号的唯一标识
  timestamp: , // 必填,生成签名的时间戳
  nonceStr: '', // 必填,生成签名的随机串
  signature: '',// 必填,签名
  jsApiList: [] // 必填,需要使用的JS接口列表
});
  1. 通过ready接口处理成功验证
wx.ready(function(){ 
   
  // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
});
  1. 通过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.net/134960.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 建议收藏!推荐2020 年必备的几个 DevOps 工具

    作者:徐九  来源:https://segmentfault.com/a/1190000022908614 提到 DevOps 这个词,我相信很多人一定不会陌生。作为一个…

    2021年6月22日
  • 被面试官问懵B了,十亿级数据ES搜索怎么优化?

    面试题 es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊? 面试官心理分析 这个问题是肯定要问的,说白了,就是看你有没有实际干过 es,因为啥?其实 es 性能并没有你想…

    2021年6月22日
  • 有关于微信公众号网页开发的流程(自己的看法)

    有关于微信公众号网页开发的流程(自己的看法)微信官方文档(真的很详细)第一步:网页授权回调域名网页服务内容这个网页回调域名是非常关键的,后面会讲解这个回调的域名的使用,回调字面意思就是会跳转的。第二步:使用微信官方的api进行code获取这个就是获取code进行页面跳转,给跳转的页面传递code参数,你可以在自己的页面进行获取,将code传给后端参考链接(请在微信客户端中打开此链接体验):scope为sns…

    2022年6月6日
  • 开发微信公众号步骤_微信公众平台开发

    开发微信公众号步骤_微信公众平台开发磨刀不误砍柴工微信公众号大家肯定都用过。目前微信公众号主要分为订阅号和服务号,每种账号又分为未认证和已认证,它们的差别主要在于具有不同的接口权限,下图(引用自微信开发实战系列)是一些例子:不同类型公众号的权限总体来说,服务号权限>订阅号权限,认证账号权限>未认证账号权限。申请订阅号比较简单,服务号相对复杂点,另外要认证的话还要额外提交一些材料。我们可以根据不同的业务需求去申请不同类型的账号,基本上常用的权限列表已经可以满足大部分的场景。开发微信公众号本质上和通常.

    2022年9月28日
  • 关于Java你不知道的那些事之Java注解和反射

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:轻狂书生FS https://blog.csdn.net/LookForDream_/ 前言 我们在实际的工作…

    2021年6月27日
  • 点赞投票群二维码_朋友圈集赞活动链接怎么做

    点赞投票群二维码_朋友圈集赞活动链接怎么做一、了解点赞起源历史点赞自2010年诞生以来,大拇指点“赞”按钮迅速被人们接受,而后成为facebook的另一种标志.后面到百度,qq空间,新浪微博,腾讯微博都添加了点赞按钮,商家们想借此提升人气,策划了各种“点赞有礼”的活动.为了获得更多的奖品的人们结队成群,所以诞生了“点赞族”.道行高者更称为“点赞狂魔”.微信因为有针对商家的公众平台,以及qq用户的支持.所以成为点赞活动参与者的首选.二、微信…

    2022年9月6日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号