热度 4
2022-9-15 16:12
704 次阅读|
0 个评论
前言:之前做一个京东联盟的自动化脚本,好多人不理解为什么,这次做淘宝的自动化签名,并讲解一下实现细节,带你了解前置脚本,后置脚本的用法。 自动化原理 个人观点 自动化就像流水线一样,通过解析固定的规则,来达到自动化。 前置和后置脚本的区别(它们的功能就如同名字一样) 前置脚本:在请求发送之前,你可以通过脚本来做某些事情,值得注意的是 变量 是在前置脚本后面才执行的,所有有些问题可能不是你问题。 前置脚本:在请求响应之前,你可以通过脚本来做某些事情。 淘宝联盟接入文档 调用入口 调用API的服务URL地址,开放平台目前提供了2个环境给ISV使用:正式环境,海外环境。 调用环境 服务地址 正式环境 https://gw.api.taobao.com/router/rest 海外环境 https://api.taobao.com/router/rest 公共参数 调用任何一个API都必须传入的参数,目前支持的公共参数有: 参数名称 参数类型 是否必须 参数描述 method String 是 具体API接口名称,例:taobao.item.seller.get app_key String 是 TOP分配给应用的AppKey。例:12345678 session String 可选 用户授权成功后,平台颁发给应用的授权session,详细介绍请点击这里。当此API文档的标签上注明:“需要授权”,则此参数必传;“不需要授权”,则此参数不需要传。 timestamp String 是 时间戳,格式为yyyy-MM-dd HH:mm:ss,时区为GMT+8,例如:2016-01-01 12:00:00。淘宝API服务端允许客户端请求最大时间误差为10分钟。 v String 是 API协议版本,可选值:2.0 sign_method String 是 签名的摘要算法,可选值为:hmac,md5,hmac-sha256。 sign String 是 API输入参数签名结果,签名算法参照下面的介绍。 format String 否 返回内容响应格式。不传默认为xml格式,可选值:xml,json。 simplify Boolean 否 是否采用精简JSON返回格式,仅当format=json时有效,可选值:false,true,不传为false。 签名算法 为了防止API调用过程中被黑客恶意篡改,调用任何一个API都需要携带签名,TOP服务端会根据请求参数,对签名进行验证,签名不合法的请求将会被拒绝。TOP目 前支持的签名算法有三种:MD5(sign_method=md5),HMAC_MD5(sign_method=hmac),HMAC_SHA256(sign_method=hmac-sha256),签名大体过程如下: 对所有API请求参数(包括公共参数和业务参数,但除去sign参数和byte 类型参数)发起请求,如: http://gw.api.taobao.com/router/rest?method=taobao.item.seller.get&app_key=12345678&session=test×tamp=2016-01-01+12%3A00%3A00&format=json&v=2.0&sign_method=md5&fields=num_iid%2Ctitle%2Cnick%2Cprice%2Cnum&num_iid=11223344&sign=66987CB115214E59E6EC978214934FB8 配置环境参数设置全局变量 AppKey和AppSecret 编辑 设置相关环境下的服务器地址 编辑 开始分析参数指定规则 通过调用示例我们可以知道所有的参数都在url中,也就是说参数存在于Query参数中。 公共参数必选有:method ,app_key ,timestamp ,v ,sign_method ,sign 。 app_key:可以使用全局变量 。 v:可以固定为 2.0 sign_method:可以固定:hmac,md5,hmac-sha256 其中一个 此时需要处理的公共参数有:method,timestamp ,sign 。 method:使用正常Query参数 timestamp :通过脚本处理 sign :通过脚本处理 业务参数使用body参数中来处理。 添加接口 这里以:淘宝客-公用-淘口令生成,来作为示例。 业务请求和响应参数 编辑 添加Query参数 编辑 添加Body参数和响应参数 编辑 使用前置脚本处理 { pm.request.body.urlencoded.add({ key: key, value: value }) }) //添加签名参数 pm.request.body.urlencoded.add({ key: "sign", value: signature(params) }) 可以去官网下载操作一下: apifox.cn