微信公众号(静默授权和分享)

微信网页授权

‘https://open.weixin.qq.com/connect/oauth2/authorize?appid=‘+ appId +‘&redirect_uri=‘ + redirectUri + ‘&response_type=code&scope=snsapi_base#wechat_redirect‘

以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页

授权回调域名:在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的配置选项中,修改授权回调域名。用户在网页授权页同意授权给公众号后,微信会将授权数据传给一个回调页面,回调页面需在此域名下,以确保安全可靠。沙盒号回调地址支持域名和ip,正式公众号回调地址只支持域名。

第一步:用户同意授权,获取code
1)静默授权
https://open.weixin.qq.com/connect/oauth2/authorize?appid=xxx&redirect_uri=https://xxx/%23%2FtimelineIndex?posterId=1&response_type=code&scope=snsapi_base#wechat_redirect
2)授权后重定向的回调链接地址
https://xxx/?code=0719FpQV14xO2W0FHAPV12AqQV19FpQj&state=#/timelineIndex?posterId=1
code说明:code作为换取access_token的票据,每次用户授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期。

第二步:通过code换取网页授权access_token
  公众号可通过接口来获取网页授权access_token。如果网页授权的作用域为snsapi_base,则本步骤中获取到网页授权access_token的同时,也获取到了openid,snsapi_base式的网页授权流程即到此为止。
  尤其注意:由于公众号的secret和获取到的access_token安全级别都非常高,必须只保存在服务器,不允许传给客户端。后续刷新access_token、通过access_token获取用户信息等步骤,也必须从服务器发起。

微信JS-SDK使用步骤
步骤一:绑定域名
步骤二:引入JS文件
步骤三:通过config接口注入权限验证配置
签名生成规则如下:参与签名的字段包括noncestr(随机字符串), 有效的jsapi_ticket, timestamp(时间戳), url(当前网页的URL,不包含#及其后面部分)

const currentUrl=location.href.split(‘#‘)[0]
sdkSign({ Url:currentUrl }).then(response => {
  wx.config({
    debug: false, // 关闭调试模式,调用的所有api的返回值不会在客户端alert出来
    appId: appId, // 必填,公众号的唯一标识
    timestamp: response.Timestamp, // 必填,生成签名的时间戳
    nonceStr: response.Noncestr, // 必填,生成签名的随机串
    signature: response.Signature,// 必填,签名
    jsApiList: [
      ‘showMenuItems‘,
      ‘hideAllNonBaseMenuItem‘,
      ‘onMenuShareTimeline‘,
      ‘onMenuShareAppMessage‘
    ] // 必填,需要使用的JS接口列表
  })
}).catch(error => {

})

步骤四:通过ready接口处理成功验证
wx.ready(function(){
// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
});

微信接口-分享等

// 1、路由跳转处理
router.beforeEach((to, from, next) => {
    wx.ready(function(){
        wx.hideAllNonBaseMenuItem(); //隐藏所有非基础按钮(包含分享),只有部分页面能分享
    });
})
// 2、页面分享
const shareData = {
  title: ‘xxx‘,// 分享标题
  desc: ‘xxx‘,// 分享描述(分享到朋友圈无该配置项)
  link: location.href,// 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
  imgUrl: ‘xxx‘// 分享图标
}
this.$root.setShareInfo(shareData)
// 3、分享公共配置(分享朋友、朋友圈)
setShareInfo(shareData) {
  shareData.success = () => {// 用户确认分享后执行的回调函数
    this.$toast(‘分享成功‘)
  }
  wx.ready(function(){
    wx.showMenuItems({
        menuList: [‘menuItem:share:appMessage‘,‘menuItem:share:timeline‘] // 要显示的菜单项
    });
    wx.onMenuShareAppMessage(shareData);//分享给朋友
    wx.onMenuShareTimeline(shareData);//分享到朋友圈
  })
}

原文地址:https://www.cnblogs.com/colorful-coco/p/8468844.html

时间: 2024-10-07 23:24:34

微信公众号(静默授权和分享)的相关文章

微信公众号的授权及分享

最近忙着做一个登录公众号获取用户信息及用户分享后可以得到积分. 首先用户点击一个链接 window.location.href="https://open.weixin.qq.com/connect/oauth2/authorize?appid=#&redirect_uri=#&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect" appid是你公众号里的 redire

微信公众号网页授权登录获取用户基本信息

发布时间:2018-10-24 技术:spring springboot,微信公众号 概述 微信公众号网页授权登录后微信获取用户基本信息,部署即可运行完整demo 详细 代码下载:http://www.demodashi.com/demo/14290.html 一.前言 (1)适合人群 1,JAVA服务端开发人员 2,初级人员开发人员 3,了解spring springboot + maven 3,了解公众号开发 (2)你需要准备什么? 1,积极主动学习 2,微信公众号开发基本流程 3,java

微信公众号网页授权获取用户基本信息

话不多说,根据官方文档需求说明,首先接口权限设置修改 先根据你的URL配置一下授权回调页域名 微信公众平台OAuth2.0授权的详细步骤如下 1)用户关注微信公众号. 2)微信公众号提供用户请求授权页面URL. 3)用户点击授权页面URL,将向服务器发送请求. 4)服务器询问用户是否同意授权给微信公众号(scope为snsapi_base时无此步骤). 5)用户同意(scope为snsapi_base时无此步骤). 6)服务器将code通过回调传给微信公众号. 7)微信公众号获得code. 8)

长按微信公众号文章内容可分享朋友圈且附带二维码

就在刚刚,有朋友无意间发现长按住微信公众号文章内容的某一句话,将会出现“分享”的选项,一旦分享之后,微信将会自动将选中的内容,形成一段话分享在朋友圈,而且会在分享的文末,附上该篇文章的二维码.ytkah觉得这个非常文艺范,一小句话自动生成图片,很唯美,在朋友圈容易疯转,附带的二维码也利于公众号的宣传,整个有点像前段时间那个很火的宽图小应用 长按住微信公众号文章内容的某一句话,将会出现“分享”的选项 长按微信公众号文章可以分享朋友圈且附带二维码 目前,经过测试,仅有苹果手机可以使用这一功能.有了这

利用微信公众号网页授权做公众号粉丝迁移

有时候,我们运营的公众号,可能因为某些原因而需要更换公众号,比如,公司被收购,公众号转让等. 那原有公众号的粉丝,我们自然也想让其迁移到新的公众号上,一般做法是通过微信自带的粉丝转移功能. 但流程也不少,还要交300元的审核费用.最要命的是,如果你的公众号平台提供了一些系统,那么用户在系统上的资料是无法迁移的, 比如用户等级,余额,与其他用户的关系,订单等.毕竟用户的openId对于每个公众号都不一样. 今天我们来看看,如何通过微信网页授权的模式迁移公众号.这里先说一下思路,后续会提供具体的解决

微信公众号授权登录,提示“redirect_uri 参数错误”

做微信公众号开发授权登录的时候遇到的坑... 后台服务用node,index.js相关代码如下: const oauth = new OAuth(conf.appid, conf.appsecret) router.get('/wxAuthorize', async ctx => { const state = ctx.query.id redirectUrl = ctx.href redirectUrl = redirectUrl.replace('wxAuthorize', 'wxCallb

微信公众号基础02_获取accessToken和用户信息

上一篇分享了搭建微信公众号服务器,本文分享一下如果获取access_Token和用户信息,工具还是新浪云SAE 1.获取access_Token 相见开发文档:https://mp.weixin.qq.com/wiki/14/9f9c82c1af308e3b14ba9b973f99a8ba.html accesstoken是公众号的全局唯一票据,公众号调用各接口时都需使用accesstoken.开发者需要进行妥善保存.accesstoken的存储至少要保留512个字符空间.accesstoken

[.NET] 简单接入微信公众号开发:实现自动回复

简单接入微信公众号开发:实现自动回复 一.前提 先申请微信公众号的授权,找到或配置几个关键的信息(开发者ID.开发者密码.IP白名单.令牌和消息加解密密钥等). 二.基本配置信息解读 开发者ID:固定的: 开发者密码:自己扫一下就可以看到: IP白名单:设置自己配置服务器的地址: 服务器地址(URL):稍后详解: 令牌:随便写,按规则: 消息加解密密钥:随便写,或者随机生成: 三.配置服务器地址(URL) 服务器地址(URL)应该怎么配置呢?图片上的配置的地址是:http://www.nidie

微信小程序与微信公众号之间支付问题解决方案

前言 大家好,我是一名对编程有兴趣的小伙子,IT届称我为xiager,工作中叫我jake 就好了,如果此文对你有帮助希望多多关注哦. 准备 微信公众平台 微信支付平台 微信开放平台 一. 小程序    二 微信公众号 两个微信支付绑定同一个商户号 1.微信支付平台 产品中心 授权目录要添加根目录并准确  要用https 形式 否则小程序内不支持 http形式的. 2.小程序中js授权等域名 填写一致  微信公众号网页授权地址一致 3.在jsapi支付的时候切记一定传openid.  在微信浏览器