C# 微信网页分享链接 前后端代码,config:invalid signature错误的解决方法

本文是微信公众号开发-H5网页分享功能的前、后端整个流程,以及遇到的invalid signature问题的解答,希望对该功能开发不是很清楚的朋友有所帮助。

一、准备工作。

百度下“微信 公众平台 开发 文档”进入官方接口文档(这里有朋友要问了,为什么搜索的时候要在词与词之间加空格,这是个小技巧,这样搜索的结果更加准确):文档1.1至3.7的篇幅清晰的介绍了如何设置JS安全域名、网站如何导入开放的js接口文件、如何签名验证和以及分享的多种类型。大家还是要仔细的阅读下。

C# 微信网页分享链接 前后端代码,config:invalid signature错误的解决方法_第1张图片C# 微信网页分享链接 前后端代码,config:invalid signature错误的解决方法_第2张图片

1、绑定安全域名:因为调用微信H5网页分享功能需要调用微信开放的JS接口,并且网站的域名要绑定到微信公众平台“JS接口安全域名”下,才能正常调用微信开放的JS接口。比如网站是http://my.csdn.com/index.html,那么JS接口安全域名就是my.csdn.com。域名绑定失败或者域名不存在会报错误:invalid url domain。

2、引入微信js文件:在需要调用JS接口的页面引入JS文件,用script标签引入即可,可以直接引用官方提供的JS链接,也可以把JS文件下载到本地引用。

 

3、通过config接口注入权限验证配置:

所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用JS-SDK接口。wx.config调用方法如下:

C# 微信网页分享链接 前后端代码,config:invalid signature错误的解决方法_第3张图片

config接口调用完后就可调用ready接口和error接口,这2个接口是代表config是否验证成功的。分享的功能可以封装到一个方法中,然后在ready接口中进行调用。下面直接放代码。

二、前端代码





三、后台代码

C# 微信网页分享链接 前后端代码,config:invalid signature错误的解决方法_第4张图片

 

四、关于“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、确认config中nonceStr

H5页面中的wx.config方法里nonceStr参数中的S是大写的。

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

请在当前页面alert(location.href.split('#')[0])确认,包括'http(s)://'部分,以及'?'后面的GET参数部分,但不包括'#'hash后面的部分。

 

大部分的人最主要的问题还是在第4点,后台用url做签名时不要自己定义url,最好是前端每次请求接口时把url通过location.href.split('#')[0] 获取后传进来,注意后台接收这个参数数打印以下跟前端的location.href.split('#')[0] 进行对比,看是否一致,不一致可能需要用encodeURIComponent 进行编码后再传给后台。

你可能感兴趣的:(C# 微信网页分享链接 前后端代码,config:invalid signature错误的解决方法)