美文网首页
微信公众号开发

微信公众号开发

作者: ducks | 来源:发表于2018-06-13 20:29 被阅读45次

集成jssdk

想要在网页里面用拍照、二维码扫描,必须集成jssdk
npm源: https://www.npmjs.com/package/weixin-js-sdk

微信提供了测试账号
https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

登录进去


image.png

记住appid、appsecret


image.png

域名这里可以用本地ip测试(不用端口号)

wx.config 配置需要的参数

image.png
参数说明
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: '', // 必填,公众号的唯一标识
timestamp: , // 必填,生成签名的时间戳
nonceStr: '', // 必填,生成签名的随机串
signature: '',// 必填,签名,见附录1
jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115

timestamp,nonceStr:,signature: 这三个字段的生成放在后台(access_token 需要缓存到后台服务器,access_token 调用的频率有限制)
所以调用config 函数前先调用一下后台的自定义接口。

签名流程(放在服务端实现)
微信公众平台接口调试工具 --获取access_token(返回access_token)
通过access_token 获取 jsapi_ticket(ACCESS_TOKEN 替换上个接口返回的access_token)
通过jsapi_ticket生成签名(url 填写本地的网页路径 window.location.href)

签名生成规则如下:

参与签名的字段包括有效的 jsapi_ticket(获取方式详见微信 JSSDK 文档), noncestr (随机字符串,由开发者随机生成),timestamp (由开发者生成的当前时间戳), url(当前网页的URL,不包含#及其后面部分。注意:对于没有只有域名没有 path 的 URL ,浏览器会自动加上 / 作为 path,如打开 http://qq.com 则获取到的 URL 为 http://qq.com/)。
对所有待签名参数按照字段名的 ASCII 码从小到大排序(字典序)后,使用 URL 键值对的格式(即key1=value1&key2=value2…)拼接成字符串 string1。这里需要注意的是所有参数名均为小写字符。
接下来对 string1 作 sha1 加密,字段名和字段值都采用原始值,不进行 URL 转义。即 signature=sha1(string1)。

各后台语言不一样:百度搜索一下有现成的签名代码的

获取微信网页授权登录

文档 :https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842

: 需要关注测试公众号 才能继续往下走


image.png

打开网页的时候需要用这个拼接好的地址

https://open.weixin.qq.com/connect/oauth2/authorize?
appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=
SCOPE&state=STATE#wechat_redirect 

若提示“该链接无法访问”,请检查参数是否填写错误,是否拥有scope参数对应的授权作用域权限。

参数说明:


image.png

如果用户同意后,会重定向 你上面填写的 redirect_uri 地址 并且会带上code state 等参数


image.png

通过 window.location.href 获取地址且code 参数
在通过 (后台调用)

https://api.weixin.qq.com/sns/oauth2/access_token?appid=***&secret=***&code=***&grant_type=authorization_code)

参数说明:
appid:公众号的唯一标识
secret:公众号的appsecretid
code:上个接口获取的code
grant_type: authorization_code

获取到openid
通过这个 接口 拿到用户的信息(包括是否关注)

https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

文档: https://mp.weixin.qq.com/wiki?action=doc&id=mp1421140839(获取用户基本信息(包括UnionID机制)

参数说明


image.png

备注:access_token 是上面的签名流程中获取的access_token 。

错误信息
https://www.cnblogs.com/remon/p/6420418.html

image.png

唤起微信公众关注页面

https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzAxNzc2MTAxMQ==#wechat_redirect

参数:
__biz:

  1. 进入微信管理平台:


    查看网页源代码
    image.png
    找到 window.wx.uin 后面的id
    拿到id后去base64转码 的字符串就是 __biz 的参数
  2. 通过ios 手机获取
    关注微信公众号-- 右上角复制链接-里面带有 _biz 参数

注意事项:通过代码去跳转关注页面,关注按钮会隐藏
https://bbs.csdn.net/topics/392174953

相关文章

  • 微信开发

    微信开发 公众号开发 微信WEB开发 JSSDK 小程序开发 公众号开发 公众号 订阅号 服务号 企业号 公众号开...

  • 微信公众号开发 (4) 网页授权

    一、前言 微信公众号开发 (1) 微信接入认证成为开发者 微信公众号开发 (2) 消息处理 微信公众号开发 (3)...

  • 微信公众号开发:微信服务号和订阅号的区别!

    微信开发又称微信公众平台开发、或微信公众号开发,分为微信服务号、微信订阅号、以及微信企业号,其中服务号和订阅号是企...

  • PHP微信公众号支付开发总结

    微信公众号开发是很常见的开发,其中微信支付占有很大的比重。微信公众号分为服务号和订阅号,服务号支持微信支付。 前期...

  • 基于JavaEE——微信网页(二)微信开发

    微信开发测试公众号(沙盒号) 微信API帮助文档 微信接口在线调试 首先申请微信开发的测试公众号,登陆后会看到微信...

  • 1 - 简介

    微信公众号开发 又称微信公众号二次开发。可以将公众账号由一个媒体型营销工具转化成提供服务的产品。 微信公众号开发的...

  • 微信公众号开发 (3) 菜单处理

    一、前言 微信公众号开发 (1) 微信接入认证成为开发者 微信公众号开发 (2) 消息处理 本文将实现 根据App...

  • 微信服务器接入

    这几天正在学习微信公众号开发,后台JAVA基于SSM框架对微信公众号进行开发。 微信公众平台“基本配置”。详细请参...

  • 微信公众号开发:获取openId和用户信息

    title: 微信公众号开发:获取openId和用户信息 tags: 微信公众号 categories: 笔记 ...

  • Springboot 之小程序公众号等资料

    公众号 Java微信公众号开发的精彩世界,学习微信公众号开发的相关概念,编辑模式和开发模式应用,以及百度BAE的使...

网友评论

      本文标题:微信公众号开发

      本文链接:https://www.haomeiwen.com/subject/ywmjeftx.html