前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【融职培训】Web前端学习 第11章 微信开发3 微信签名规则

【融职培训】Web前端学习 第11章 微信开发3 微信签名规则

作者头像
学习猿地
发布2020-07-13 10:04:12
6040
发布2020-07-13 10:04:12
举报
文章被收录于专栏:学习猿地学习猿地

一,概述

为了让微信接口的调用更加安全,微信服务器要对支付接口和JS-SDK接口进行加密和校验。因此开发调取微信支付和JS-SKD接口,必须了解微信签名的规则。

二,规则

  1. 确定参与签名的分段,例如ncencestr,timestamp等。
  2. 对所有待用签名参数遵循分段名的ASCII码从小到大排序(字典序)后,使用URL键值对的格式(即key1 = value1&key2 = value2 ...)拼成字符串。这里需要注意的是所有参数名册小写字符。
  3. 接下来对拼接好的字符串作sha1加密,分区名和分段值都采用原始值,不进行URL转义。即signature = sha1(string1)。

通过上面的三步,就可以拿到签名的结果签名。

三,node中的签名算法。

在node中,通过下面的算法,可以得到签名结果。

代码语言:javascript
复制
getSign (signParams ) { 
  var  keys  =  Object 。键(signParams ); 
  键 =  键。排序(); 
  var  newArgs  =  { } ; 
  键。forEach (函数 (val ) { 
      if  (signParams [ val ] ) { 
          newArgs [ val ]  =  signParams [ val ] ; 
      } 
  } )
  var  string  =  queryString 。stringify (newArgs ); 
  返回 加密货币。createHash ('sha1' )。更新(的queryString 。UNESCAPE (串), 'utf-8' )。 摘要(“十六进制” );}

上诉算法可以将一个单独的集合按照签名规则计算出签名结果,参数为一个对象,对象中包含了所有分段,示例如下所示:

代码语言:javascript
复制
1 { 
2    jsapi_ticket:jsapi_ticket ,
3    timestamp:timestamp ,
4    noncestr:nonceStr ,
5    url:“ http://www.eduwork.cn/phone” 
6 }

三,总结

本章讲解了微信签名的目标和方法,了解了签名,我们便可以在后续的章节中调用JS-SDK和微信支付接口了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-07-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一,概述
  • 二,规则
  • 三,node中的签名算法。
  • 三,总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档