学做网站要代码,网页的设计与应用的论文,施工企业成本管理制度,微信小程序api接口目录 前言准备编写签名脚本签名说明捋清思路编码获取签名所需的参数生成签名将签名放到合适的位置完整代码 在apifox中配置脚本新增公共脚本引用公共脚本添加环境变量 参考 前言
略
准备
查看apifox提供的最佳实践文章#xff1a;接口签名如何处理
编写签名脚本
签名说明… 目录 前言准备编写签名脚本签名说明捋清思路编码获取签名所需的参数生成签名将签名放到合适的位置完整代码 在apifox中配置脚本新增公共脚本引用公共脚本添加环境变量 参考 前言
略
准备
查看apifox提供的最佳实践文章接口签名如何处理
编写签名脚本
签名说明
appId1xxxxxxxxxxxxx4。常量appSecretExxxxxxxxxxxxxxxxxm。常量date当前日期日期格式为yyyy-MM-dd。例: 2024-04-21bizId业务单据ID。例1xxxxxxxxxxxxxxx3signStr appIdbizIddatesecretKeysignMD5(signStr)将签名sigh通过form data传递参数名sign
mysql实现示例
select md5(concat(1xxxxxxxxxxxxx4,1xxxxxxxxxxxxxxx3,2024-04-21,Exxxxxxxxxxxxxxxxxm)); 捋清思路
获取签名所需的参数生成签名将签名放到合适的位置
编码
获取签名所需的参数
/* 获取签名所需参数 */
let appId ; /*从环境变量中获取*/
let appSecret ; /*从环境变量中获取*/
let date moment().format(YYYY-MM-DD);/*当前日期自动生成*/
let bizId /*从header中获取*//* 部分签名所需参数在环境变量中从环境变量中获取 */
appId pm.environment.get(appId);
appSecret pm.environment.get(appSecret);/* 部分签名所需参数在header中从header中获取 */
var headers pm.request.headers;
if (headers) {bizId headers.get(bizId);
}生成签名
/* 打印签名所需参数 */
console.log(打印签名所需参数);
console.log(appId is : appId);
console.log(bizId is : bizId);
console.log(date is : date);
console.log(appSecret is : appSecret);console.log(开始签名);
let signParam []
signParam.push(appId)
signParam.push(bizId)
signParam.push(date)
signParam.push(appSecret)let signStr signParam.join()
console.log(signStr is : signStr);let sign CryptoJS.MD5(signStr).toString().toUpperCase()
console.log(sign is : sign);将签名放到合适的位置
将签名添加到formdata中
let formData pm.request.body.formdata;
let newForData [];
formData.each((item) {newForData.push({key: item.key,value: item.value});
});
newForData.push({key: sign,value: sign});
pm.request.body.update({mode: formdata,formdata: newForData
});完整代码
/*导入JS 类库*/
var moment require(moment);/* 获取签名所需参数 */
let appId ; /*从环境变量中获取*/
let appSecret ; /*从环境变量中获取*/
let date moment().format(YYYY-MM-DD);/*当前日期自动生成*/
let bizId /*从header中获取*//* 部分签名所需参数在环境变量中从环境变量中获取 */
appId pm.environment.get(appId);
appSecret pm.environment.get(appSecret);/* 部分签名所需参数在header中从header中获取 */
var headers pm.request.headers;
if (headers) {bizId headers.get(bizId);
}/* 打印签名所需参数 */
console.log(打印签名所需参数);
console.log(appId is : appId);
console.log(bizId is : bizId);
console.log(date is : date);
console.log(appSecret is : appSecret);console.log(开始签名);
let signParam []
signParam.push(appId)
signParam.push(bizId)
signParam.push(date)
signParam.push(appSecret)let signStr signParam.join()
console.log(signStr is : signStr);let sign CryptoJS.MD5(signStr).toString().toUpperCase()
console.log(sign is : sign);/* 将签名添加到formData */
let formData pm.request.body.formdata;
let newForData [];
formData.each((item) {newForData.push({key: item.key,value: item.value});
});
newForData.push({key: sign,value: sign});
pm.request.body.update({mode: formdata,formdata: newForData
});在apifox中配置脚本
新增公共脚本
参考这里。
引用公共脚本
参考这里。
添加环境变量
参考这里。
参考
https://apifox.com/help/best-practices/how-to-handle-api-signature https://apifox.com/help/pre-post-processors-and-scripts/scripts/examples/handling-request https://apifox.com/help/pre-post-processors-and-scripts/scripts/api-references/javascript-library https://apifox.com/help/pre-post-processors-and-scripts/scripts/public-scripts#引用公共脚本 http://momentjs.com/ http://momentjs.cn/