研究下酷家乐的开放平台API,无果

17November

8:12 PM

API

329 次浏览

0 条评论

一直想研究下API是如何实现的,买了本书看的一头雾水,想学习下PHP方面的又找不到适合的教程,想通过酷家乐沙盒模型进行实际的操作演练又无法正常登录。现在满脑子头大。

酷家乐开放平台的文档写的还是比较全的,但没那么细,采用的案例也是使用的JAVA语言,对于我这种看不明白的人是一头雾水。我只知道,要操作就需要先登录验证。

API的验证方式有很多种,酷家乐开放平台的API接口权限应该是这样的:

本体系下的所有接口都使用同一套鉴权规则,通过服务端鉴权校验的接口才会被正常地、合法地执行接口文档中描述的业务逻辑。商家和酷家乐进行商务合作之后,酷家乐将会分配给商家一组appkey和appsecret,这两个参数在接口鉴权中起到了最重要的作用。

规则

参数是否必须含义
appkey商家和酷家乐商务合作之后,酷家乐分配给商家的appkey。这会是一个10位长度的字符串。
timestamp格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数,比如:1485878400000。注意,一些编程语言自带的库获取到的时间戳是精确到秒,这时需要乘以1000。
appuid第三方用户的ID。不是所有接口都需要这个参数,具体的接口文档中会在URL Query Param注明该接口是否需要这个参数。
sign签名值,根据appuid是否存在,有两种不同的计算方式。如果appuid不存在:sign = md5(appsecret + appkey + timestamp)。如果appuid存在:sign = md5(appsecret + appkey + appuid + timestamp)。注意:appsecret我们不可在网络中传播,而只是用于在计算sign值的时候使用。appsecret只应该保存在商家应用的服务端以及酷家乐的服务端,请避免泄露,否则导致安全问题,酷家乐有权封禁商家的接口调用。

例如,我们有一个接口 GET https://openapi.kujiale.com/v2/test,接口文档中描述需要URL Query Param为test_param,那么最后调用的时候应该是类似:

GET https://openapi.kujiale.com/v2/test?appkey=[appKey]&timestamp=[timestamp]&sign=[sign]&test_param=123

其中sign的计算方式为:sign = md5(appsecret + appkey + timestamp)

如果接口文档中URL Query Param还注明需要appuid,类似:

GET https://openapi.kujiale.com/v2/test?appkey=[appKey]&timestamp=[timestamp]&appuid=[appuid]&sign=[sign]&test_param=123

其中sign的计算方式为:sign = md5(appsecret + appkey + appuid + timestamp)。

编者小节

虽然小编感觉自己看明白了,也转换成了PHP,但测试沙盒系统的时候却总是出现100004错误,提示"request time out";有点感觉锁开到一半卡在那边的感觉,这让小编着实受不了。

现在小编正在积极联系酷家乐平台,看是否是沙盒环境出现了问题,还是小编数据上的有误,请各位关注期待吧。

留言评论
称呼
邮箱
网址
  • 小熊博客  : 没用过这样的接口。
  • 刷百度指数  : 是没啥效果吗,还是不能用
展开