服务器生成微信sign,签名生成方法
开发者服务端在与微投票服务器交互的过程中,需要对参数进行加签等操作,下边介绍具体规则。
一、服务端
1、请求微投票接口,需要根据参数生成一个签名(sign)并携带在参数中进行请求,最终的请求形式如下:
http://接口地址?sign=签名×tamp=当前秒级时间戳&nonce=随机字符串
并且除sign外的其余参数都需要参与签名计算。
2、签名生成方法:
将请求参数按键进行升序排序->将排序好的数组生成url-query参数->进行加密并拼接为最终签名// php-demo
public function sign($data)
{
$access_key = '后台获取';
$secret_key = '后台获取';
if (is_array($data)) {
ksort($data); // 按照升序排序
$data = http_build_query($data); // 转为url-query参数,如:a=1&b=2&c=3
}
$sign_temp = hash_hmac('sha1', $data, $secret_key); // 加密
return $access_key . '_' . strtoupper($sign_temp); // 拼接最终签名
}
# python-demo
import hmac
from urllib.parse import urlencode
def sign(data):
access_key = '后台获取'
secret_key = '后台获取'
sign_data = sorted(data.items(), key=lambda d: d[0]) # 按照升序排序
sign_data = urlencode(sign_data) # 转为url-query参数,如:a=1&b=2&c=3
sign_temp = hmac_sha1(secret_key, sign_data) # 加密
return access_key + '_' + sign_temp.upper() # 拼接最终签名
3、接口请求域名
接口地址前缀为:
https://server.weitoupiao.com/api/
然后跟上具体接口地址,如:
https://server.weitoupiao.com/api/tpopen/wxxcxLogin二、会话保持
调用wxxcxLogin或guestLogin接口后,系统会返回login_token字段,此字段后续接口请求中需要携带在请求头header中,字段名为Token。三、关于特殊参数的post、get请求
部分接口需要的特殊参数类型,如:array、object等类型
array类型:按val1,val2,val3的形式传值
object类型:按 json 形式传值
服务器生成微信sign,签名生成方法相关推荐
- Sign签名生成与校验
参数说明: from 接口发起方标识,由管理员分配 secret 密钥,由管理员分配 sign 签名 timestamp 时间戳 s (用于校验签名有效期) sign算法; 1.对所有参数(此时不含s ...
- 微信平台 签名生成工具
今天花了点时间搞了下微信签名工具生存微信开放平台注册时候的应用签名. 1.下载签名生成工具------> 2.安装 ------> 3.打包你应用生成签名 ------>4.在 ...
- Java中的微信支付: 微信API-V3签名生成工具类
微信支付API v3简介 微信官方文档地址 为了在 保证支付 安全的前提下,带给商户 简单.一致且易用的开发体验,我们推出了全新的微信支付API v3. 相较于之前的微信支付API,主要区别是: 遵循 ...
- 【java】java反射机制,动态获取对象的属性和对应的参数值,并属性按照字典序排序,Field.setAccessible()方法的说明【可用于微信支付 签名生成】...
方法1:通过get()方法获取属性值 package com.sxd.test.controller;public class FirstCa{private Integer num;private ...
- java微信支付签名生成_微信APP支付(Java后台生成签名具体步骤)
public class PayCommonUtil { //定义签名,微信根据参数字段的ASCII码值进行排序 加密签名,故使用SortMap进行参数排序 public static String ...
- 微信支付-签名生成工具-Java
1.微信接口文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_3 2.具体代码 package com.lyn.v5.poli ...
- Python玩转微信 个性签名生成词云图
本博客代码参照http://www.cnblogs.com/jiaoyu121/p/6944398.html. 运行如下代码之前,将下图的wechat.jpg放入F盘下,需安装itchat.jieba ...
- 微信jssdk签名生成代码示例PHP版本
/*** 获取jssdk签名*/public function signature(Request $request){//随机字符串$str = time() . rand(111111,99999 ...
- 微信应用签名生成工具
http://download.csdn.net/download/chenaini119/8808179
最新文章
- SQL Server DB Link相关
- 独立成分分析ICA系列5:信息极大化的 ICA 算法
- 遗传算法求二元函数极值怎么编码_遗传算法求解一元函数二元函数最值
- [詹兴致矩阵论习题参考解答]习题7.1
- 辽宁交通高等专科学校有计算机专业吗,辽宁省交通高等专科学校可以转专业吗,辽宁省交通高等专科学校新生转专业政策...
- oracle订阅推送,ERP一部推送 | Oracle优化技术分享
- python中bool函数_bool()函数以及Python中的示例
- Windows 10 + anaconda3快速配置tensorflow-gpu开发环境
- 95-910-140-源码-FlinkSQL-FlinkSQL简介
- 12.10 Nginx访问日志;12.11 Nginx日志切割;12.12 静态文件不记录日志和过期
- 在自平衡中角动量守恒的原理分析
- 那些油管上高质量的学习编程的频道 之一
- 小程序neverland test
- html+css实现自定义图片上传按钮
- magicbook屏幕_荣誉Magicbook 15降压笔记本电脑的最佳爆炸现在
- JS中的window对象和document对象是什么?有什么区别?
- 【树形DP+DFS】Gym 100962J - Jimi Hendrix
- 投身开源,需要持之以恒的热爱与贡献 —— Apache Spark Committer 姜逸坤
- QT之 QSQLite
- 土壤微生物多样性分析