账户鉴权
授权方式
口袋定制API通过使用对称加密的方法来验证请求者的身份,密钥由口袋定制系统颁发给合作方。
密钥
密钥包括 app_id 和 app_secret,其中 app_secret 在签名的过程中需要用到。 得到密钥的用户,可以以密钥拥有者的身份访口袋定制API,所以密钥中的 app_secret 部分需要对外保密。
示例
app_id: s0jrkq4srt47mm1h
app_secret: 6rp0EF2cGbbRdwJ1lIXCZDT21qTko3ay参数签名
口袋定制API通过使用对称加密的方法来验证请求者的身份,调用任何API,需要使用HAMC SHA256 算法进行参数签名。
数据交换格式
JSON。
生成签名字符串
签名字符串需要包含以下参数
参数
类型
是否必填
最大长度
描述
示例值
app_id
String
是
32
我奇开放平台分配给开发者的应用ID
s0jrkq4srt47mm1h
method
string
是
-
接口名称
koudaidingzhi.order.create
timestamp
String
是
19
发送请求的时间,格式"yyyy-MM-dd HH:mm:ss"
2017-07-24 03:07:50
biz_content
String
是
请求参数的集合,格式为JSON字符串最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递
详见各接口中的“请求参数”
由上表可以看出,《公共请求参数》中的参数“sign”(签名串)正是由《公共请求参数》中的其他参数( app_id、timestamp、method和biz_content )共同生成的。具体步骤如下:
对参数排序
首先对参数按参数名做首字母排序,排序后的参数如下:
将参数拼接成字符串
将把上一步排序好的请求参数格式化成“参数名称”=“参数值”的形式,如对app_id参数,其参数名称为"app_id",参数值为"s0jrkq4srt47mm1h",因此格式化后就为app_id=s0jrkq4srt47mm1h。
注意:“参数值”为原始值而非url编码后的值。
然后将格式化后的各个参数用"&"拼接在一起,前后再加上app_secret,最终生成的请求字符串如下:
使用HMAC算法生成签名串
首先使用 HMAC 算法对上一步中获得的字符串进行加密(将app_secret作为参数并使用SHA256),即可获得最终的签名串。具体最终得到的签名串为:
使用其它程序设计语言开发时, 可用上面示例中的原文进行签名验证, 得到的签名串与例子中的一致即可。
业务错误码
code(返回码)
sub_code(明细返回码)
sub_msg(明细返回码描述)
解决方案
40001
missing_signature
缺少签名参数
检查请求参数,缺少sign参数
missing_app_id
缺少appId参数
检查请求参数,缺少app_id参数
missing_timestamp
缺少时间戳参数
检查请求参数,缺少timestamp参数
missing_biz_content
缺少请求参数集合
检查请求参数,缺少biz_content参数
40002
invalid_signature
无效签名
1.检查app_id 和 app_secret 是否配置正确。 2.签名算法是否无误
invalid_app_id
无效的appId参数
检查入参app_id,app_id不存在或者未上线
invalid_timestamp
无效的时间戳参数
时间戳参数timestamp非法,请检查格式需要为"yyyy-MM-dd HH:mm:ss"
invalid_method
无效的接口名称参数
检查接口名称
Last updated