当前位置:   article > 正文

微信公众号开发_com.github.binarywang

com.github.binarywang

微信公众号开发

说明:本文旨在整理本人在微信公众号开发过程中的一些问题,如有问题请指出
微信公众号官方文档链接:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432


一. 引入了第三方jar包

楼主这里引入的是com.github.binarywang的依赖包,该包的JsapiTicket和AccessToken(基础token)都是自行管理的,用户只需要调用

   <dependency>
    	<groupId>com.github.binarywang</groupId>
   	<artifactId>(不同模块参考下文)</artifactId>
    	<version>3.4.0</version>
   </dependency>
  • 1
  • 2
  • 3
  • 4
  • 5

链接地址如下:

各模块的artifactId,如下查看

  • 微信小程序:weixin-java-miniapp
  • 微信支付:weixin-java-pay
  • 微信开放平台:weixin-java-open
  • 公众号(包括订阅号和服务号):weixin-java-mp
  • 企业号/企业微信:weixin-java-cp

二. 下载Demo自行解析使用

楼主这里直接使用的Demo进行开发,Demo地址如下:
https://gitee.com/binary/weixin-java-tools/blob/master/demo.md
我这里项目用的是SpringBoot,所以我直接拷贝了一份Sring Boot 的Demo,这个Demo里面自行封装了很多事件以及鉴权的操作,比如关注/取消关注事件等,各自根据自己的实际情况来使用各个事件和接口,如果只拿openId的话可以直接使用OAuth2.0网页授权去拿就可以,就不用启用开发者模式了(你如果把demo拷贝过来了,这时候启用开发者模式的话,微信平台系统会自动对接开发者模式,就不能自定义菜单了)地址如下

三. 使用微信测试账号进行测试

因为现在公众号权限调整,只有授权认证过后的微信公众号才有权限,所以这里采用微信测试账号进行本地测试以及服务器测试,申请地址为:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
扫码申请后,系统为你提供一个测试使用的appId以及appSecret,注意要使用JSSDK的话需要配置安全域名(注意:这里是指的配置安全域名,注意域名的含义,是不带http以及https的),如下图所示

在这里插入图片描述

如果使用OAuth2.0授权也要配置一个授权回调域名,如下图所示

在这里插入图片描述

四. 参照Demo文档配置使用

如下图所示,参考Demo文档按步骤配置,配置完后就是各自的业务逻辑实现了,我是把Demo拷贝到自己的项目中使用的

在这里插入图片描述

五. 下载微信Web开发工具(若有需要调试可下载使用)

楼主在调试JSSDK的时候使用到了该工具,对接微信JSSDK有些信息在本地或者在手机端调试总有些不便之处,所以下载了该工具
该工具的下载地址为:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1455784140

在这里插入图片描述

填坑(列举部分踩坑过程)

上面粗略的说明了下微信开发的步骤,可以依据各自情况斟酌使用,接下来说下项目中的踩坑过程

踩坑一:HTTPS引入HTTP资源问题

本地使用的是http环境,调试没出现问题,但是上了服务器,服务器使用的是https,所以在引用微信的JSSDK开发的http地址:http://res.wx.qq.com/open/js/jweixin-1.4.0.js 会出现问题,最纠结的是本机调试没问题,上了服务器,在手机上访问的时候就出错了,但不知道错误在哪,只知道invalid signature签名错误,所以楼主下载了微信Web开发工具,用工具调试的时候才知道是引用问题

在这里插入图片描述

  • 解决方法:

参考链接:https://segmentfault.com/q/1010000005872734
楼主使用的第一种方法可以解决楼主的问题

  1. 相对协议
    对于同时支持HTTPS和HTTP的资源,引用的时候要把引用资源的URL里的协议头去掉,浏览器会自动根据当前是HTTPS还是HTTP来给资源URL补上协议头的,可以达到无缝切换。
    即引入去除协议头的链接:
    <script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.4.0.js"></script>
    
    • 1
  2. iframe方式
    使用iframe的方式引入HTTP资源,然后将这个页面嵌入到HTTPS页面里就可以了
  3. 升级请求为https
    可以在相应的页面的里加上这句代码,意思是自动将http的不安全请求升级为https
    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
    
    • 1
踩坑二:JSSDK验签地址务必跟访问的地址保持一致

可以参考官方文档拿当前访问页的地址去验签
我验签地址:https://www.xxxxx.cn/mactivity.html
而我的访问地址是:https://www.xxxxx.cn/mactivity.html?openId=xxx
所以一直报错,所以根据自己实际业务保证验签地址跟访问地址保持一致

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/874078
推荐阅读
相关标签
  

闽ICP备14008679号