c# sha1签名 微信_C#微信公众号JS接口签名算法
以下内容是微信官方开发文档,注意标红文字
附录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×tamp=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接口签名算法相关推荐
- 微信公众号 分享接口 签名通过 分享无效果(JSSDK自定义分享接口的策略调整)...
为规范自定义分享链接功能在网页上的使用,自2017年4月25日起,JSSDK"分享到朋友圈"及"发送给朋友"接口,自定义的分享链接,其域名或路径必须与当前页面对 ...
- 微信商城开发:公众号平台接口配置及调试
<微信商城开发系列教程第二讲> 公众号平台接口配置及调试 [本系列文章转载自:walkingmanc(作者:陈伟)] 在上一篇中,我们讲解了如何申请微信公众号,公众平台开发的基本原理以及服 ...
- vue 微信公众号支付接口_基于vue的h5项目之支付宝支付与微信支付
本文仅记录基于vue开发h5项目过程中使用支付宝和微信支付过程中的重点与槽点,仅为前端部分,如有疏漏不正之处,请于文末评论探讨.注意:标红部分灰常重要,仔细阅读官方文档非常重要,耐心非常重要,细心非常 ...
- php h5微信公众号支付接口,微信公众号H5支付接口调用方法
本文实例为大家分享了 微信内h5调用支付接口的具体代码,供大家参考,具体内容如下 官方文档 微信公众号h5接口调用 // 判断微信版本是否在5.0以上 // window.navigator.user ...
- php微信公众号支付实例教程,php微信支付之公众号支付功能
这篇文章主要为大家详细介绍了php微信支付之公众号支付功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 网上的很多PHP微信扫码支付接入教程都颇为复杂,且需要配置和引入较多的文件,本人通过整理后 ...
- 微信小程序公众号支付宝小程序的登录授权、支付、分享、人脸识别人脸核身
文章目录 一.微信小程序 1. 获取信息用户信息 2.支付 3.分享 4. 腾讯云小程序人脸核身 二.微信公众号 1.获取信息用户信息 2.支付 3. 分享(普通分享) 4.分享(vue单页面 配置分 ...
- 微信公众号调用接口显示的错误码含义
微信公众号调用接口显示的错误码含义 返回码 说明 -1 系统繁忙,此时请开发者稍候再试 0 请求成功 40001 获取 access_token 时 AppSecret 错误, ...
- 微信支付 php详解,微信支付之公众号支付详解
本文主要和大家分享微信支付之公众号支付详解,随着微信支付的流行,大多产品都开发了自己的公众号.小程序等,产品的营销需要支付的支撑,最近做了个微信公号号支付,采坑无数,今天给大家分享一下,希望能帮助到大 ...
- 微信开放平台 公众号第三方平台开发 教程一 平台介绍
教程导航: 微信开放平台 公众号第三方平台开发 教程一 平台介绍 微信开放平台 公众号第三方平台开发 教程二 创建公众号第三方平台 微信开放平台 公众号第三方平台开发 教程三 一键登录授权给第三方平台 ...
最新文章
- GitHub开源的10个超棒后台管理面板
- 【2021年度训练联盟热身训练赛第二场】Soccer Standings(python)
- 「Caffe」python版本caffe编译
- sqlplus 中@ ? !号的作用
- 大型网站系统的特点和架构设计
- 备忘: MIRACL 大数运算库使用手册
- MFC 消息映射表和虚函数实现消息映射到底谁的效率高
- 如何做电商直播——预告篇
- RS232 DB9 计算机接口定义
- safari windows版本_iPhone和Windows同步文件,这7个技巧让你的效率成倍增加
- Frament与activity切换
- 关联规则:一款在策略挖掘中必不可少的算法
- python绘制地图的第三方库,geopandas,用python画地图原来这么简单!
- UVM之TLM port基础
- 6款强烈推荐的软件,让你办公更方便!!
- 小米MIX FOLD折叠屏上手体验:MIUI大更新 满血的掌上PC模式“有点狠”
- 长沙it培训价格是多少
- 解决SSH连接闲置一会就断开需要重新连接
- Java程序员月薪达到两万,需要技术水平达到什么程度?
- 辰皇怎么过鸿蒙,抢《诛仙2·末日与曙光》百级金身法身