PV-6.3 升级
淘宝的api升级到pv6.3 ,老版本的很多api签名都不行了,升级如下:
xposed插件,客户端重新安装插件重启即可
服务端升级
增加路由
routers/home/taobao.ts
router.post('/sign/v2', async (ctx: any) => {
const params = ctx.inputs;
if (undefined === params.data) {
return ctx.json({message: "获取签名失败,请传递签名信息"}, 400)
}
const manager: SocketManager = ctx.io.manager;
const ct = manager.getClient(ClientTypes.taobao, true);
if (!ct) {
return ctx.json({message: "获取签名失败,签名服务不可用"}, 400)
}
const client: ClientManager = ct;
//转化data
if (typeof params.data !== 'string') {
params.data = JSON.stringify(params.data);
}
if (!params.t) params.t = parseInt(Date.now() / 1000 + '') + '';
//params
let maps = TaoBao.Sign.parsePramsMap(params);
//获取客户端的签名信息结果
const res = await client.getTaoSignV2({
...maps,
"appKey": params.appKey,
});
if (!res.ok) {
return ctx.json({message: "获取签名失败,签名失败", data: res}, 400)
}
delete res.data;
res.sign = JSON.parse(res.sign);
res.sign['x-sign'] = res.sign['x-sign'].replace(/\//g, '%2F').replace(/\+/g, '%2B');
res.sign['x-mini-wua'] = res.sign['x-mini-wua'].replace(/\//g, '%2F').replace(/\+/g, '%2B');
return ctx.json(res, 200)
});
增加函数
modules/taobao/taobao.ts
public static parsePramsMap(params: any) {
//"utdid",
//多了4个:"mini-appkey", "req-appkey", "accessToken", "open-biz-data"
const names = [
"uid",
"reqbiz-ext",
"appKey",
"data",
"utdid",
"t",
"api",
"v",
"sid",
"ttid",
"deviceId",
"lat", "lng",
"extdata",
"x-features",
"routerId",
"placeId",
"open-biz",
];
const map2 = ['pageName', 'pageId'];
const hashmap = {};
const extra = {};
names.forEach((key) => {
if (params[key] !== undefined) {
hashmap[key] = params[key] || '';
}
});
map2.forEach((key) => {
if (params[key] !== undefined) {
hashmap[key] = params[key] || '';
}
});
return {params: hashmap, extra: extra}
}
增加函数
socket/events/client.ts
public async getTaoSignV2(params: any): Promise<any> {
return new Promise(resolve => {
this.socket.emit('tb.sign_v2', params, (res) => {
resolve(res);
})
})
}
签名参数如下
POST:/api/taobao/sign/v2
{
"utdid": "",
"appKey": "21646297",
"api": "mtop.taobao.search.highway.upload",
"v": "1.0",
"sid": "",
"x-features": "27",
"lng": "",
"uid": "",
"lat": "",
"ttid": "600000@taobao_android_9.0.0",
"deviceId": "",
"data": {
"version": 1,
}
}
返回数据
{
"extra": {},
"appKey": "21646297",
"x-mini-wua": "",
"sign": {
"x-sign": "",
"wua": "",
"x-mini-wua": "",
"x-sgext": "923",
"x-umt": ""
},
"ok": true
}