首页 > 其他分享 >postman +腾讯电子签

postman +腾讯电子签

时间:2022-10-28 16:45:30浏览次数:45  
标签:postman Service request 电子 SecretKey 腾讯 CryptoJS Authorization

 

 

postman.setGlobalVariable("Timestamp", Date.parse(new Date()) / 1000);
postman.setGlobalVariable("Nonce", Date.parse(new Date()) / 1000);
//正式环境
//Service = request.url.replace(/https:\/\//, "").replace(/\.tencentcloudapi\.com\//, "")
//测试环境
Service = request.url.replace(/https:\/\//, "").replace(/\.test\.ess\.tencent\.cn\//, "")
if (request.headers["x-tc-service"]) {
    Service = request.headers["x-tc-service"]
}
console.log("Service:"+Service);

if (request.method == "GET") {
    payload = ""
    CanonicalQueryString = ""
}else if(request.method == "POST"){
    payload = request.data
    CanonicalQueryString = ""
}

var reg = /^http(s)?:\/\/(.*?)\//
HashedRequestPayload = CryptoJS.SHA256(payload).toString(CryptoJS.enc.Hex);
CanonicalURI = "/";
HTTPRequestMethod = request.method
CanonicalHeaders = "content-type:application/json\nhost:" + reg.exec(request.url)[2] + "\n"
SignedHeaders = "content-type;host"

CanonicalRequest = "" + 
    HTTPRequestMethod + '\n' +
    CanonicalURI + '\n' +
    CanonicalQueryString + '\n' +
    CanonicalHeaders + '\n' +
    SignedHeaders + '\n' +
    HashedRequestPayload


Algorithm = "TC3-HMAC-SHA256";
RequestTimestamp = postman.getGlobalVariable("Timestamp")
Date1 = new Date().toISOString().split('T')[0]
CredentialScope = Date1 + "/" + Service + "/" + "tc3_request"
HashedCanonicalRequest =  CryptoJS.SHA256(CanonicalRequest).toString(CryptoJS.enc.Hex)

StringToSign =
    Algorithm + "\n" +
    RequestTimestamp + "\n" +
    CredentialScope + "\n" +
    HashedCanonicalRequest
  
// SecretKey = ""
SecretKey = postman.getGlobalVariable("SecretKey")
console.log("SecretKey:"+SecretKey);
SecretDate = CryptoJS.HmacSHA256(Date1, "TC3" + SecretKey)

SecretService = CryptoJS.HmacSHA256(Service, SecretDate)
SecretSigning = CryptoJS.HmacSHA256("tc3_request", SecretService)

Signature = CryptoJS.HmacSHA256(StringToSign, SecretSigning).toString(CryptoJS.enc.Hex)
postman.setGlobalVariable("Signature", Signature);
SecretId = postman.getGlobalVariable("SecretId")
console.log("SecretId:"+SecretId);

Authorization =
    Algorithm + ' ' +
    'Credential=' + SecretId + '/' + CredentialScope + ', ' +
    'SignedHeaders=' + SignedHeaders + ', ' + 
    'Signature=' + Signature
    
postman.setGlobalVariable("Authorization", Authorization);    

console.log("Authorization:"+Authorization); 

 

标签:postman,Service,request,电子,SecretKey,腾讯,CryptoJS,Authorization
From: https://www.cnblogs.com/cy2268540857/p/16836572.html

相关文章

  • 腾讯前端经典react面试题汇总
    概述一下React中的事件处理逻辑。为了解决跨浏览器兼容性问题,React会将浏览器原生事件(BrowserNativeEvent)封装为合成事件(SyntheticEvent)并传入设置的事件处理程序......
  • 三. jenkins+newman+postman持续集成环境搭建
    Newman简介    Newman是一款基于Node.js开发的,可以运用postman工具直接从命令运行和测试postman集合Newman应用环境准备:js/cnpm或npm配置好环境,执行如下命令......
  • #yyds干货盘点# LeetCode 腾讯精选练习 50 题:全排列
    题目:给定一个不含重复数字的数组nums,返回其所有可能的全排列。你可以按任意顺序返回答案。 示例1:输入:nums=[1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2]......
  • #yyds干货盘点# LeetCode 腾讯精选练习 50 题:最大子数组和
    题目:给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。 示例1:输入:nums=[-2,1,-3,4,-1,......
  • Postman循环调用接口
    1.创建Collections 2.创建接口 参数用{{}}包裹~Tests断言代码放下面~ tests["调用接口成功"] = responseCode.code === 200;3.保存导入json文件(json、csv格式......
  • postman 模拟json发送数据
    https://www.onlinedown.net/article/10021411.htm  在地址栏里输入请求:127.0.0.1:8081/getmoney      选择“POST”方式。      在“headers”添加ke......
  • 收集牛客网腾讯面试查漏补缺【threadlocal、explain、引用】
    一、ThreadLocal【解决共享变量】1.ThreadLocal叫做线程变量,意思是ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量......
  • 【开源了】一个电子文件签字+合同系统,爽!
    一、前言今天公司领导提出一个功能,说实现一个文件的签字+盖章功能,然后自己进行了简单的学习,对文档进行数字签名与签署纸质文档的原因大致相同,数字签名通过使用计算机加密来......
  • uniapp调用高德、百度、腾讯地图导航
    toMapAPP(e){leturl="";letname=e.addressletlatitude=e.dimension//纬度letlongitu......
  • 高性能mysql 第四版 电子书 pdf
    作者:SilviaBotros/JeremyTinley出版社:O'ReillyMedia副标题:Optimization,Backups,andReplication 链接:高性能mysql第四版  HowcanyourealizeMy......