微信分享链接出现config:invalid signature错误的解决方法

开发微信时需要做特定的页面做分享时,根据官方提供的jssdk.php文件创建的签名数据包调试时,大家碰到的最多的错误而且解决最麻烦的大概就是signature错误了,如下图:

微信分享链接出现config:invalid signature错误的解决方法

分享时提示错误“{“errMsg”:“config:invalid signature”}”

一般出现这个错误多半是签名获取失败,而造成签名获取失败的原因各种各种,余斗在开发的时候也遇到过这种情况,搜索了不少网上教程,解决了自己的问题。接下来,余斗将这些解决方法统一整理列出来,希望可以帮到大家:

1、APPID和APPSECRET填错

这个错误可以到官方的调试页面获取access_token看看是否是正确,点击获取获取access_token

根据返回的结果可以判断页面内的APPID和APPSECRET有没有出错,没有出错的话可以点击获取jsapi_ticket

利用前面拿到的access_token 采用http GET方式请求获得jsapi_ticket,如果出错的话会返回对应的说明。

点击进行确认签名算法校验

点击查看全局返回码说明

2、超过了每日的access_token获取上限

官方限定每日2000次请求,所以如果没有缓存access_token的话,还是比较容易过限的。

3、查看微信公共号状态是否不正常

比如验证过期了,被封禁了等。

4、确认config中nonceStr

js中驼峰标准大写S, timestamp与用以签名中的对应noncestr, timestamp一致。

5、确认url是页面完整的url

请在当前页面alert(location.href.split(’#’)[0])确认,包括’http(s)?/‘部分,以及’?‘后面的GET参数部分,但不包括’#'hash后面的部分,这里在文章《静态页面实现微信分享带缩略图、标题和描述》最后已做说明,大家可以自行修改好。

6、配置curl是否使用ssl的带证书(https协议)访问开关

找到官方提供的jssdk.php,找到代码:

curl_setopt( c u r l , C U R L O P T S S L V E R I F Y P E E R , t r u e ) ; c u r l s e t o p t ( curl, CURLOPT_SSL_VERIFYPEER, true); curl_setopt( curl,CURLOPTS​SLV​ERIFYPEER,true);curls​etopt(curl, CURLOPT_SSL_VERIFYHOST, true);

将true改为false,因为一般我们是没有安装证书的(https协议),所以将true改为false就好,反之,如果网站安装了证书,则将false改为true。

7、将网站所在服务器IP地址加入白名单

微信分享链接出现config:invalid signature错误的解决方法

8、反向代理问题

如果以上查验绝没有解决问题,则查看下自己的服务器是否反向代理没有设置好,nginx配置反向代理代码:

proxy_set_header Host $http_host;

转载:https://www.yudouyudou.com/jiaochengheji/wangzhanjianshe/1237.html

IOS分享的时候图片的链接地址 和 link 都需要在 JS安全域名下并且带http头。


@{ViewBag.Title = "xx梦想加油站";Layout = null;
}
<!DOCTYPE html>
<html lang="zh-cn">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>xx梦想加油站</title>
</head>
<body>    <script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script><script type="text/javascript">wx.config({debug: false,appId: '@ViewBag.AppId',timestamp: @ViewBag.ts,nonceStr: '@ViewBag.noncestr',signature: '@ViewBag.signature',jsApiList: ['onMenuShareTimeline','onMenuShareAppMessage',           ]});wx.ready(function() {//config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后var sharetitle='@ViewBag.Name 正在参加浦软梦想加油站活动。';var sharedescript='请你为我点亮梦想,快来一起参加吧! ';var sharelink='http://xxx.com/h5.html';var shareimgurl='http://m.xxx.com/Content/skin/images/cover.png';var shareData = {title: sharetitle,desc: sharedescript,link:sharelink,imgUrl:shareimgurl};//分享给朋友wx.onMenuShareAppMessage({title: sharetitle,desc: sharedescript,link: sharelink,imgUrl:shareimgurl,trigger: function (res) {// 不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回alert('用户点击发送给朋友');},success: function (res) {alert('已分享');},cancel: function (res) {alert('已取消');},fail: function (res) {alert(JSON.stringify(res));}});    //分享给朋友圈wx.onMenuShareTimeline({title: sharetitle,link: sharelink,   desc: sharedescript,imgUrl:shareimgurl,trigger: function (res) {// 不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回// alert('用户点击分享到朋友圈');},success: function (res) {// alert('已分享');},cancel: function (res) {// alert('已取消');},fail: function (res) {// alert(JSON.stringify(res));}});wx.onMenuShareAppMessage(shareData);wx.onMenuShareTimeline(shareData);});wx.error(function(res){// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。alert(JSON.stringify(res));});</script>
</body>

二、IOS微信分享朋友圈成功后,不进入回调SUCCESS

   安卓机器微信分享成功之后,是可以进入回调,但是,部分IOS的机器却不进入回调

直接引入最新的微信jweixin.js 我引入的是

https://res.wx.qq.com/open/js/jweixin-1.3.2.js

问题就这样解决了

三、IOS环境下,微信分享失效问题

最近在做一个公众号,涉及到分享的功能,但是在安卓机上,自定义的分享配置参数能够被触发,而在ios苹果手机上却失效了,苦苦寻觅在百度上搜索解决办法,但都没有效果,,配置参数如下:

 var content = {title: '您的好友邀请你办信用卡啦', // 分享标题desc: '邀请好友办信用卡得奖金', // 分享描述link: 'http://ppl.hzqzinfo.com/cc-wechat/share.html?openId='+sessionStorage.openId+"&username="+sessionStorage.user_name+"&picid="+sessionStorage.picid, // 分享链接imgUrl: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1524029663610&di=3ace946ecf6b963b1fa1c47a7c94c25c&imgtype=0&src=http%3A%2F%2Fwww.68ecshop.com%2Fecshop_topic%2FDistribution%2Fimages%2Ficon_home.png', // 分享图标success: function () {},cancel: function () {}};
  1. ios分享图标不能超过32K
  2. link参数带中文或者特殊字符,带中文的url在安卓中应该也是会出问题的,但是安卓会自动encodeURIComponent(),而ios不会

我马上想到我的url参数中带了中文字符,于是乎将其encodeURIComponent()编码,再提交代码,ios上完美运行!!
以下是修改后的配置:

var content = {title: '您的好友邀请你办信用卡啦', // 分享标题desc: '邀请好友办信用卡得奖金', // 分享描述link: 'http://ppl.hzqzinfo.com/cc-wechat/share.html?openId='+sessionStorage.openId+"&username="+encodeURIComponent(sessionStorage.user_name)+"&picid="+sessionStorage.picid, // 分享链接imgUrl: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1524029663610&di=3ace946ecf6b963b1fa1c47a7c94c25c&imgtype=0&src=http%3A%2F%2Fwww.68ecshop.com%2Fecshop_topic%2FDistribution%2Fimages%2Ficon_home.png', // 分享图标success: function () {},cancel: function () {}};

链接 https://blog.csdn.net/zhuxiandan/article/details/80095996

微信公众号分享出现的报错和解决方法整合相关推荐

  1. ecshop 小京东 微信公众号链接打开,报错appid不能为空,错误码10012

    微信公众号链接了商城的地址,在打开时以微信的浏览器打开,其中最麻烦的就是在测试时只能用手机的微信打开(暂时未找到可以直接输入地址的微信浏览器),在测试时会有很多不便,特别是在网站仍在运行的时候. 这里 ...

  2. 微信公众号网页授权登录多域名的解决方法

    最近在项目中,由于我们只有一个公众号,但有多个业务系统,就想可以都让同一个公众号授权登录,方便用户的管理.但问题来了,我们都知道微信公众号授权域名只能填写两个,如果我们有多个呢,该如何解决呢. 在网上 ...

  3. 微信公众号获取access_token,报错invalid ip xxx.xxx.xxx.xxx

    一.原因: 在IP白名单内的IP来源,获取access_token接口才可调用成功.未设置,就会报错. 二.解决方案: 登录公众平台,开发->基本配置->IP白名单->查看-> ...

  4. 微信公众号发送模板信息报错——invalid credential, access_token is invalid or not latest hints:

    这个大部分原因是access_token不正确导致的.这个access_token是微信开放文档---公众号---开始开发---获取Access Token下的获取access_token获取的.而不 ...

  5. java程序单引号报错_JavaScript中的单引号和双引号报错的解决方法

    在使用JavaScript显示消息或者传递字符数据的时候,经常会碰到数据中夹杂单引号(')或者双引号("),这种语句往往会造成JavaScript报错.对此一般采用/'或者/"的解 ...

  6. 微信公众号调用接口显示的错误码含义

    微信公众号调用接口显示的错误码含义 返回码    说明 -1    系统繁忙,此时请开发者稍候再试 0    请求成功 40001    获取 access_token 时 AppSecret 错误, ...

  7. 微信公众号分享链接自定义hash值的处理

    微信公众号默认的分享样式是直接分享一条链接的,样式丑陋.但是微信jsdk暴露了分享的API可以自定义分享样式. 一.分享鉴权及分享接口冲定义 这一块的文档很全面,不做细述.关键代码如下: functi ...

  8. 微信公众号分享配置无效。。分享出来的只是纯链接了,如何自定义微信公众号的分享

    微信公众号分享配置无效..分享出来的只是纯链接了 挺久没接微信公众号的项目开发了,最近突然接了一个,结果微信自定义分享给我整懵了.原本配置的好好的,屡试不爽的代码,居然死活不生效,开启debug,开发 ...

  9. 微信分享次数统计、微信公众号分享关注统计

    作为系列文章的第五篇,本文重点探讨数据采集层中的微信分享追踪系统.微信分享,早已成为移动互联网运营的主要方向之一,以Web H5页面(下面称之为微信海报)为载体,利用微信庞大的好友关系进行传播,实现宣 ...

最新文章

  1. AttributeError: cannot assign module before Module.__init__() call
  2. CISCO CME:配置基于硬件的电话会议
  3. 成功企业的核心思维逻辑
  4. 有“声”以来,语音如何识别?
  5. 关于通过Sql注入直接拖数据的讨论
  6. 洛谷P4841 城市规划(多项式求逆)
  7. 【2016年第2期】专题导读:大数据与社会治理
  8. 信息学奥赛一本通 提高篇 第一部分 基础算法 第2章 二分与三分
  9. MySQL check table/optimize table/analyze table/REPAIR TABLE
  10. 工信部:支持符合条件的工业互联网企业上市
  11. 腾讯视频已上线超前点播选集解锁
  12. maven settings.xml 包含多个镜像库
  13. 【Java后台】从零开始的Java后台开发(一)
  14. 三菱plc pwm指令_三菱plc功能指令集大全和自学基础
  15. 放弃有道词典和有道云笔记
  16. 我用新拟物化设计风格,做了一个App改版案例
  17. 已安装各个模块,程序仍报错:ModuleNotFoundError: No module named 'numpy'
  18. ViewData与ViewBag比较
  19. 游戏开发43课 移动游戏性能优化1
  20. Confluence 6 管理协同编辑 - 代理和 SSL 的考虑

热门文章

  1. 制作 ——Chocolate
  2. 基于VCamera,仿微信录制短视频
  3. 局域网内不同网段的设备互相连接设置
  4. Redis持久化机制 RDB、AOF
  5. propertyGrid
  6. 金品网站项目第一步:网站策划
  7. Android DrawableTint使用
  8. 在vSphere Client中出现内部错误处理方法
  9. layerui ios不适应问题
  10. 剪刀手:Android平台上的图片裁剪库