微信sdk里有没有验证签名的方法(微信两个项目共用jssdk签名)

技术微信JS-SDK签名接口怎么用这篇文章给大家分享的是有关微信JS-SDK签名接口怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。首先我们看一下微信公众号开发关于微信JS-SDK的使用说

这篇文章是关于如何使用微信JS-SDK签名界面的。我觉得边肖很实用,就和大家分享一下作为参考。让我们跟着边肖看一看。

首先来看看微信微信官方账号开发的微信JS-SDK的使用说明,如图:

微信JS-SDK签名接口怎么用

一般来说,第一步是由后端工程师完成安全域名的配置。微信规定微信的JS-SDK只能在配置好的域名下调用。设定在哪里?

微信JS-SDK签名接口怎么用

图:

微信JS-SDK签名接口怎么用

注意:填写域名而不是网址,网址用http://签名,但域名不是必需的。

之后第二步就是把微信的js-sdk引入页面,这个就不用说了。

第三步是通过配置接口注入权限验证配置。

看起来很蠢吗?什么是配置接口,什么是注入权限,什么是验证配置.孟被迫状态.点击链接查看如图所示的信息:

微信JS-SDK签名接口怎么用

通过仔细阅读发现,当微信的js-sdk引入页面时,全世界都会有一个wx对象,而jquery引入类似页面时,也会有一个$对象,原因相同。这里,wx对象有一个名为config的属性,这个属性的值是一个函数,也可以称为接口。

后期注入权限验证的配置是什么?

注入权限验证配置是指将图中所示的具体参数传递给config函数,然后调用该函数,会验证当前页面是否可以使用微信的JS-SDK。

让我们看看具体的参数是什么。图:

微信JS-SDK签名接口怎么用

一共6个:

第一种是打开调试开关,开发环境一般设置为true,改为false上线后;

第二个是appId微信微信官方账号;

生成签名的第三个时间戳是表示时间的数字字符串。这到底是什么签名?不要担心阅读它。

第四个是生成签名的随机字符串。随机字符串就是随机字符串,这里也提到了签名。

第五个签名,问题来了。签名是怎么来的?

需要使用的js的第六个接口列表。这是干什么用的?简单来说,你需要使用微信js-sdk的那些功能,比如调用扫一扫、摄像头等。只需将代表其功能的字符串放入数组中。

上面的主要问题是签名是怎么来的?然后看文件。当我们看第三步时,关于签名信息实际上有一个连接,如图所示:

微信JS-SDK签名接口怎么用

仔细查看附录1,点击如图所示的连接:

微信JS-SDK签名接口怎么用

微信JS-SDK签名接口怎么用

微信JS-SDK签名接口怎么用

这份文件很长,所以你不需要看。让我用最简短的话来描述文件的信息:

首先,如果想要得到签名,需要先得到jsapi_ticket。

第二,如果想得到jsapi_ticket,需要先得到access_token。

以上两个步骤通常由后端工程师完成。完成后,为前端工程师提供一个接口。前端工程师可以通过请求接口获取jsapi_ticket,然后根据文档的签名算法计算签名。

然而,为了方便起见,后端工程师通常会完成计算签名的步骤。前端工程师直接请求签名接口获取签名、时间戳、随机字符串等一系列信息。

这部电影的片名是:微信JS-SDK签名界面的使用与开发。前面我们主要讲一下微信JS-SDK签名界面的使用。如果只是用,前面的文章基本就够了,那么下面的会

要讲的就是微信JS-SDK签名接口的开发了。

我们要设计三个接口:

第一个请求接口返回access_token;

第二个请求接口返回jsapi_ticket

第三个请求接口返回signature也就是签名,当然还有一些列的其他信息,appid、时间戳、随机字符串。

首先我们看关于获取access_token的文档:

微信JS-SDK签名接口怎么用

微信JS-SDK签名接口怎么用

微信JS-SDK签名接口怎么用

写的很详细,但是也很啰嗦,这里我挑重点用大白话给大家解释一下:获取access_token需要用get请求方式请求一个url地址,并且需要传递三个参数:grant_type、appid、secret。grant_type是固定值"client_credential",appid和secret在微信公众号后台可以看到。

然后再看响应参数:

微信JS-SDK签名接口怎么用

access_token和expires_in,前者为获得到的access_token,后者为此次获取的access_token可以缓存的时间。啥意思呢,就是说,在第一次获取access_token后,expires_in时间内不需要重新获取access_token,可以直接使用缓存的access_token这说明咱们可以将access_token存储起来,在需要使用access_token时,先判断时间有没有过期,没过期直接取出存储介质中的access_token,过期的话重新请求access_token,之后更新过期时间,更新存储介质中的access_token,获取access_token的流程图如下:

微信JS-SDK签名接口怎么用

这里代码演示用的是存储到本地json文件中,没有使用数据库,数据量很小,真实项目中,也可以使用本地文件存储。首先实现两个功能函数,读取文件和写入文件:

微信JS-SDK签名接口怎么用

然后是获取access_token的方法,这里将获access_token分离成两个函数,将直接从微信服务器获取access_token抽离成getNewToken函数:

微信JS-SDK签名接口怎么用

到这里access_token就获取完成了,下面就是获取jspai_ticket了,看官方文档:

微信JS-SDK签名接口怎么用

照样很啰嗦,简单来说就是向另一个url发送get请求,带上参数access_token和type,type是固定的值"jsapi",access_token就是上面获取的access_token;拼接完成的url如下:

微信JS-SDK签名接口怎么用

返回来的参数为一个对象有四个属性,如图:

微信JS-SDK签名接口怎么用

主要两项:ticket和expires,ticket就是要获取的jsapi_ticket,expires_in是缓存时间,这个ticket也可以缓存7200秒,所以ticket的获取流程和access_token大体是一样的,只不过,多了一个判断,判断access_token是否过期。因为ticket的获取依赖access_token,所以ticket的获取流程图如下:

微信JS-SDK签名接口怎么用

代码实现如下:

微信JS-SDK签名接口怎么用

微信JS-SDK签名接口怎么用

和access_token的获取方式一样,也是分为了两个函数,只不过在getTicket函数中多了一步请求access_token的异步操作。

到目前为止我们已经获取了ticket,此ticket也可以以接口的形式返回给前端。

最后一步就是计算签名了,看一下签名的文档:

微信JS-SDK签名接口怎么用

微信JS-SDK签名接口怎么用

这里大家先仔细读一下,我就不带着大家读了,直接总结要点:计算签名需要几个参数:

1、noncestr(随机字符串),

2、有效的jsapi_ticket,

3、timestamp(时间戳), 

4、url(当前网页的URL,不包含#及其后面部分)

我们先实现获取timestamp和noncestr的函数:

微信JS-SDK签名接口怎么用

然后需要ticket,ticket上面的代码中已经获取到了,那url呢,这里就需要前端向后端传递数据了,这里是开发中获取signature接口api的代码:

微信JS-SDK签名接口怎么用

首先获取前端传过来的url,而后获取时间戳与随机字符串,然后将以上几项按照键值对的形式连接,注意顺序是固定的的,然后对字符串进行sha1加密,这里加密用的是crypto这个库,也可以直接用npm安装sha1库,直接调用sha1库的方法加密,加密之后,获得的就是签名了,最后将签名、时间戳、随机字符串、appid以json的形式返回给前端。

下面是综合前后端分离模式下,获取ticket的流程图:


微信JS-SDK签名接口怎么用


感谢各位的阅读!关于“微信JS-SDK签名接口怎么用”这篇文章就分享到这里了,希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/157150.html

(0)

相关推荐

  • RHEL5.1创建本地及FTP的yum源是怎样的

    技术RHEL5.1创建本地及FTP的yum源是怎样的本篇文章给大家分享的是有关RHEL5.1创建本地及FTP的yum源是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小

    攻略 2021年11月17日
  • MySql常见问题的解析都有哪些

    技术MySql常见问题的解析都有哪些这期内容当中小编将会给大家带来有关MySql常见问题的解析都有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.MySQL无法重启问题解决War

    攻略 2021年10月25日
  • 如何解析JDK 6中Java Console类功能的概览

    技术如何解析JDK 6中Java Console类功能的概览本篇文章给大家分享的是有关如何解析JDK 6中Java Console类功能的概览,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,

    攻略 2021年11月20日
  • 傅雷家书1954年概括,傅雷家书1954年的主要内容

    技术傅雷家书1954年概括,傅雷家书1954年的主要内容1954年,傅聪出国学习钢琴,孤身远在他乡,孤独枯寂,傅雷夫妇以家书来鼓励儿子潜心学习,报效国家.多年来,傅雷夫妇的家书一直伴随着傅聪的生活,学习,乃至恋爱,结婚生

    生活 2021年10月27日
  • python切片模拟LRU算法怎么实现

    技术python切片模拟LRU算法怎么实现这篇文章主要介绍“python切片模拟LRU算法怎么实现”,在日常操作中,相信很多人在python切片模拟LRU算法怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操

    攻略 2021年12月1日
  • Ubuntu 16.04如何安装Kinetic

    技术Ubuntu 16.04如何安装Kinetic这篇文章将为大家详细讲解有关Ubuntu 16.04如何安装Kinetic,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、配置软件源

    攻略 2021年11月15日