`
543334061
  • 浏览: 11278 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

微信js获得签名signature

    博客分类:
  • wap
阅读更多

服务器端:

1 获取微信js accessToken

备注:access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。
开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。
access_token的有效期目前为2个小时,需定时刷新,
重复获取将导致上次获取的access_token失效。 

目前access_token的有效期通过返回的expire_in来传达,目前是7200秒之内的值。
中控服务器需要根据这个有效时间提前去刷新新access_token。

获取方法: 
1) . 公众号可以使用AppID和AppSecret调用本接口来获取access_token。
AppID和AppSecret可在微信公众平台官网-开发者中心页中获得
(需要已经成为开发者,且帐号没有异常状态)

2) .http请求方式: 
GET : https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

3) .返回说明:正常情况下,微信会返回下述JSON数据包给公众号:
{"access_token":"ACCESS_TOKEN","expires_in":7200}

4) 将获取到的accessToken值放入缓存中,存放时间小于7200秒

2 获取 jsapi_ticket

备注: jsapi_ticket是公众号用于调用微信JS接口的临时票据。
正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取。

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

3)返回说明:成功返回如下JSON:
{
"errcode":0,
"errmsg":"ok",
"ticket":"bxLdikRXVbTPdHSM05e5u5sUoXNKd8-41ZO3MhKoyN5OfkWITDGgnr2fwJ0m9E8NYzWKVZvdVtaUgWvsdshFKA",
"expires_in":7200
}
4)将获取到的jsapi_ticket值放入缓存中,存放时间小于7200秒

3 生成签名

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

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


2). 对string1进行sha1签名,得到signature:f4d90daf4b3bca3078ab155816175ba34c443a7b
用Apache的commons-codec工具包,其中的DigestUtils类有SHA加密方法可以直接调用..

3). 将wx.config接口需要的参数值都放入缓存中(即signature,noncestr,timestamp),时间为小于7200秒。

注意事项:

1) 签名用的noncestr和timestamp必须与wx.config中的nonceStr和timestamp相同。
2) 签名用的url必须是调用JS接口页面的完整URL。
3) 出于安全考虑,开发者必须在服务器端实现签名的逻辑。

分享到:
评论

相关推荐

    微信 js sdk 签名

    微信JS-SDK(JavaScript SDK)是微信开放平台提供的一套API接口,允许开发者在网页上集成微信的功能,如分享、支付、地理位置等。在使用这些功能时,必须进行签名验证,确保请求的安全性。本文将详细讲解微信JS-SDK...

    微信开发签名sha1.js

    微信支付,微信公众号开发,sha1签名,js实现,有demo介绍使用方法

    微信js sdk invalid signature签名错误问题的解决方法分析

    解决"invalid signature"签名错误问题,首先需要理解微信JS-SDK的签名生成机制。签名是由一系列参数生成的,包括有效的jsapi_ticket、随机字符串noncestr、时间戳timestamp和网页的URL。开发者需要根据这些参数,...

    微信分享JSSDK-invalidsignature签名错误的解决方案.docx

    微信分享JSSDK-invalidsignature签名错误的解决方案.docx

    Go-Golang版微信accesstokenjsapiticketsignature签名算法生成示例

    【Golang版】微信access_token、jsapi_ticket、signature签名算法生成示例,开箱即用

    微信分享invalid signature签名错误踩过的坑

    签名算法通常涉及AppID、AppSecret、timestamp(时间戳)、nonceStr(随机字符串)以及当前页面的URL,这些都需要按照特定规则组合并进行加密处理,最终得到的签名应与微信服务器端计算的一致。 其次,检查`config`...

    微信小程序-微信小程序-RSA-签名-验签-加密-解密

    > 一个适用于微信小程序的RSA签名库。 RSA签名的小程序DEMO:https://github.com/zhangzhaopds/WeixinApp_RSA_Signature.git 使用 1、引入文件 var RSA = require('../../utils/wxapp_rsa.js') 2、调用 var private...

    微信网页公众号sha1签名sha1.js

    对string1进行sha1签名,得到signature

    微信签名 sha.js

    微信开发签名sha.js,得到signature,微信公众号开发。

    微信内网页开发工具包(微信JS-SDK).mp4.zip

    微信内网页开发工具包,通常被称为微信JS-SDK(JavaScript Software Development Kit),是微信官方推出的一个强大工具,专为在微信内置浏览器中运行的网页应用提供功能支持。它允许开发者利用微信提供的各种API接口...

    微信 jssdk 签名错误invalid signature的解决方法

    主要介绍了微信 jssdk 签名错误invalid signature的解决方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)

    最近在搞微信公众号开发,进行到网页开发部分被坑了一天,最坑的问题就是invalid signature,而网上大部分解答这个问题的都没有说清楚,都直接丢文档。博主认为这样很不好。本文是博主结合自身遇到的问题所写,整个...

    微信JS-SDK

    微信JS-SDK是微信官方推出的一套JavaScript接口库,它为开发者提供了在微信内置浏览器中进行各种高级功能的调用能力。这套SDK主要用于优化微信内网页的用户体验,增强与微信平台的互动性,例如实现微信登录、分享、...

    uniapp手写电子签名组件

    微信小程序是一种轻量级的应用形式,用户无需下载安装即可使用,因此在微信小程序中集成电子签名组件,可以为用户提供便捷的签名体验,提升应用的交互性和用户体验。 标签中的“微信小程序”和“小程序”都是指同一...

    .NET微信小程序用户数据的签名验证和解密代码

    .NET微信小程序用户数据的签名验证和解密是一个涉及.NET开发、微信小程序和安全性验证的技术过程。在开发涉及微信小程序的应用时,为了确保从客户端接收的数据的安全性,开发者需要对用户数据进行签名验证。同时,在...

    微信小程序开发附源码:浅谈微信JS-SDK 微信分享接口开发(介绍版).doc

    首先,微信JS-SDK是微信官方提供的JavaScript库,它允许开发者调用微信的一系列功能,如分享、支付、扫码等。在微信小程序中,这些功能通常通过JS-SDK进行实现,以确保用户在分享内容时能呈现出预期的效果。 在遇到...

    微信jssdk踩坑之签名错误invalid signature

    最近做公众号网页开发,使用微信 jssdk 页面签名时 IOS 中一直报错,这才刚开始就被这只拦路虎拦住了,报错如下: 然而 Android 和开发者工具中好得很,没有任何问题: 既然提示 签名非法 ,那就是签名有问题咯,...

    weixin-signature:提供微信JSAPI签名

    微信签名微信JSAPI签名生成算法提供微信JSAPI签名例子: var sign = require ( "weixin-signature" ) . sign ;var config = { noncestr : "Wm3WZYTPz0wzccnW" , jsapi_ticket : "sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0...

Global site tag (gtag.js) - Google Analytics