以下内容是微信官方开发文档,注意标红文字

附录1-JS-SDK使用权

限签名算法

jsapi_ticket

生成签名之前必须先了解一下jsapi_ticket,jsapi_ticket是公众号用于调用微信JS接口的临时票据。正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取。由于获取jsapi_ticket的api调用次数非常有限,频繁刷新jsapi_ticket会导致api调用受限,影响自身业务,开发者必须在自己的服务全局缓存jsapi_ticket 。

1.参考以下文档获取access_token(有效期7200秒,开发者必须在自己的服务全局缓存access_token):../15/54ce45d8d30b6bf6758f68d2e95bc627.html

2.用第一步拿到的access_token 采用http GET方式请求获得jsapi_ticket(有效期7200秒,开发者必须在自己的服务全局缓存jsapi_ticket):https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi

成功返回如下JSON:

{

"errcode":0,

"errmsg":"ok",

"ticket":"bxLdikRXVbTPdHSM05e5u5sUoXNKd8-41ZO3MhKoyN5OfkWITDGgnr2fwJ0m9E8NYzWKVZvdVtaUgWvsdshFKA",

"expires_in":7200

}

获得jsapi_ticket之后,就可以生成JS-SDK权限验证的签名了。

签名算法

签名生成规则如下:参与签名的字段包括noncestr(随机字符串), 有效的jsapi_ticket, timestamp(时间戳), url(当前网页的URL,不包含#及其后面部分) 。对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1。这里需要注意的是所有参数名均为小写字符。对string1作sha1加密,字段名和字段值都采用原始值,不进行URL 转义。

即signature=sha1(string1)。 示例:

noncestr=Wm3WZYTPz0wzccnW

jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg

timestamp=1414587457

url=http://mp.weixin.qq.com?params=value

步骤1. 对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1:

jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg&noncestr=Wm3WZYTPz0wzccnW&timestamp=1414587457&url=http://mp.weixin.qq.com?params=value

步骤2. 对string1进行sha1签名,得到signature:

0f9de62fce790f9a083d5c99e95740ceb90c27ed

注意事项

1.签名用的noncestr和timestamp必须与wx.config中的nonceStr和timestamp相同。

2.签名用的url必须是调用JS接口页面的完整URL。

3.出于安全考虑,开发者必须在服务器端实现签名的逻辑。

C# sha1加密签名方法

按步骤1拼接成字符串string1传入SHA1方法即可,注意access_token和jsapi_ticket每天调用有限制,都需要做全局缓存。

public static string SHA1(string s)

{

s = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(s, "SHA1").ToString();

return s.ToLower();

}

c# sha1签名 微信_C#微信公众号JS接口签名算法相关推荐

  1. 微信公众号 分享接口 签名通过 分享无效果(JSSDK自定义分享接口的策略调整)...

    为规范自定义分享链接功能在网页上的使用,自2017年4月25日起,JSSDK"分享到朋友圈"及"发送给朋友"接口,自定义的分享链接,其域名或路径必须与当前页面对 ...

  2. 微信商城开发:公众号平台接口配置及调试

    <微信商城开发系列教程第二讲> 公众号平台接口配置及调试 [本系列文章转载自:walkingmanc(作者:陈伟)] 在上一篇中,我们讲解了如何申请微信公众号,公众平台开发的基本原理以及服 ...

  3. vue 微信公众号支付接口_基于vue的h5项目之支付宝支付与微信支付

    本文仅记录基于vue开发h5项目过程中使用支付宝和微信支付过程中的重点与槽点,仅为前端部分,如有疏漏不正之处,请于文末评论探讨.注意:标红部分灰常重要,仔细阅读官方文档非常重要,耐心非常重要,细心非常 ...

  4. php h5微信公众号支付接口,微信公众号H5支付接口调用方法

    本文实例为大家分享了 微信内h5调用支付接口的具体代码,供大家参考,具体内容如下 官方文档 微信公众号h5接口调用 // 判断微信版本是否在5.0以上 // window.navigator.user ...

  5. php微信公众号支付实例教程,php微信支付之公众号支付功能

    这篇文章主要为大家详细介绍了php微信支付之公众号支付功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 网上的很多PHP微信扫码支付接入教程都颇为复杂,且需要配置和引入较多的文件,本人通过整理后 ...

  6. 微信小程序公众号支付宝小程序的登录授权、支付、分享、人脸识别人脸核身

    文章目录 一.微信小程序 1. 获取信息用户信息 2.支付 3.分享 4. 腾讯云小程序人脸核身 二.微信公众号 1.获取信息用户信息 2.支付 3. 分享(普通分享) 4.分享(vue单页面 配置分 ...

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

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

  8. 微信支付 php详解,微信支付之公众号支付详解

    本文主要和大家分享微信支付之公众号支付详解,随着微信支付的流行,大多产品都开发了自己的公众号.小程序等,产品的营销需要支付的支撑,最近做了个微信公号号支付,采坑无数,今天给大家分享一下,希望能帮助到大 ...

  9. 微信开放平台 公众号第三方平台开发 教程一 平台介绍

    教程导航: 微信开放平台 公众号第三方平台开发 教程一 平台介绍 微信开放平台 公众号第三方平台开发 教程二 创建公众号第三方平台 微信开放平台 公众号第三方平台开发 教程三 一键登录授权给第三方平台 ...

最新文章

  1. GitHub开源的10个超棒后台管理面板
  2. 【2021年度训练联盟热身训练赛第二场】Soccer Standings(python)
  3. 「Caffe」python版本caffe编译
  4. sqlplus 中@ ? !号的作用
  5. 大型网站系统的特点和架构设计
  6. 备忘: MIRACL 大数运算库使用手册
  7. MFC 消息映射表和虚函数实现消息映射到底谁的效率高
  8. 如何做电商直播——预告篇
  9. RS232 DB9 计算机接口定义
  10. safari windows版本_iPhone和Windows同步文件,这7个技巧让你的效率成倍增加
  11. Frament与activity切换
  12. 关联规则:一款在策略挖掘中必不可少的算法
  13. python绘制地图的第三方库,geopandas,用python画地图原来这么简单!
  14. UVM之TLM port基础
  15. 6款强烈推荐的软件,让你办公更方便!!
  16. 小米MIX FOLD折叠屏上手体验:MIUI大更新 满血的掌上PC模式“有点狠”
  17. 长沙it培训价格是多少
  18. 解决SSH连接闲置一会就断开需要重新连接
  19. Java程序员月薪达到两万,需要技术水平达到什么程度?
  20. 辰皇怎么过鸿蒙,抢《诛仙2·末日与曙光》百级金身法身

热门文章

  1. ODBC、OLEDB、ADO的区别和联系
  2. iPhone软件开发新突破,真正VoIP通话
  3. 内核级利用通用Hook函数方法检测进程
  4. 到底什么培训适合你?
  5. 程序员最常用的7大编程实战网站,阿里腾讯面试题也用它!
  6. 父组件给子组件传值方法_【Vue】小学生都能看懂的子父组件传值
  7. SWEET HOME!田志喜研究员:给中国大豆“嵌入”高产基因
  8. 高通量数据分析必备|基因组浏览器使用介绍 - 1
  9. 高通量数据中批次效应的鉴定和处理(三)- 如何设计尽量避免批次影响
  10. 一个R包玩转单细胞免疫组库分析,还能与Seurat无缝对接