11/08/2024 16:35:55
问题描述
请求后台接口报错 1008 invalid sig!
问题原因
sig 计算错误
解决方案
按文档要求计算出正确的 sig,拼接到请求串中解决。
一、sig 计算流程
1、确定信息
(1)请求接口,例如 /v2/auth/verify_login
(2)请求 URL 拼接了什么参数(必须按照字典排序),例如 channelid=2&conn=&gameid=12&os=1&seq=&source=1&ts=1642490127
(3)请求 Body 有哪些入参,例如 {"openid":"16862533134614867973","token":"0AFC2484F0B48C9D70D501662B828F4A"}
(4)确定请求 URL 中的 source 值,并在 飞鹰系统 获取对应的 sigkey 值
2、拼接 sig 原始串
以 interface + "?" + params + body + sigkey 形式将确定的信息进行拼接。
例如,根据上面确定的信息可以拼接出 /v2/auth/verify_login?channelid=2&conn=&gameid=12&os=1&seq=&source=1&ts=1642490127{"openid":"16862533134614867973","token":"0AFC2484F0B48C9D70D501662B828F4A"}itopsigkey123456
3、对 sig 原始串进行 MD5 加密(32位小写)
例如,对 /v2/auth/verify_login?channelid=2&conn=&gameid=12&os=1&seq=&source=1&ts=1642490127{"openid":"16862533134614867973","token":"0AFC2484F0B48C9D70D501662B828F4A"}itopsigkey123456 进行 MD5 加密后可以得到 451bb4ebfab7a436c53ab2c614e113ec
注意:为保护 key 值的安全。示例中的 sigkey itopsigkey123456 是假数据,实际计算 MD5 时已替换为飞鹰系统中真实的值。
4、将 sig 拼接到 URL 中请求
(1)请求 URL
https://hktest.itop.qq.com/v2/auth/verify_login?channelid=2&conn=&gameid=12&os=1&seq=&source=1&ts=1642490127&sig=451bb4ebfab7a436c53ab2c614e113ec
(2)请求 Body
{"openid":"16862533134614867973","token":"0AFC2484F0B48C9D70D501662B828F4A"}
(3)返回
{"ret":0,"msg":"user is logged in.","seq":"1642491509-1932026121-030358-0313503990"}
二、注意事项
1、修改 sig 原始串里任意的数据后,一定要重新计算 sig 进行请求。
2、sig 原始串和实际请求 URL 中的参数,一定要保持一致,且按照字典排序。
3、请求 URL 中通常把 必填字段 都带上就好,非必填的 version、seq、conn 字段可以不拼接。
All rights reserved.