京东宙斯对接(一)
最新家里做京东的朋友问我能不能做一个订单管理发货的系统。稍微聊了下,就是能拿到京东系统的订单列表,然后让供货商能打印订单的快递单进行发货。我想想觉得应该也不是很难,毕竟不是很多人用的大系统,而且他也说看着做一下(当然是不给钱的)我也就答应了。要求不高,顺便练练手吧。
因为需要拿到京东订单的信息。所以肯定要找京东要接口拿数据的。本来是准备全部弄好,完整的写一下对接过程的。但是因为遇到京东的订单数据接口必须要在京东云鼎服务器调用,我们合计了一下,现在店里订单少,可以用管易等 OMS 发货。可以等量大了再自己部署系统。所以我可以慢慢研究京东的接口。
不得不吐槽一下京东的接口:
文档极其简单-很多字段没有描述,入参必填字段,比如状态,没有备选项,你让我传什么呀?还有接口分类估计 20+,没有搜索,一个下拉,找一个分类能把眼看花。
没有沙箱环境-直接拿生产数据开发(笑哭),之前看支付宝的接口就给了很好的沙箱环境。差距呀!!!
部分接口必须云鼎调用-这点我真心觉得京东就是圈钱,让你买它的服务器,还说是为了安全。看了下,最低配(1 核+4G+40G+1Mbps)最便宜 160 一个月(这也是我们决定先不用的原因,算下来订单量小,用不起来就不划算了)
所以一时半会儿应该是搞不完。那就慢慢弄,为了怕忘记了,先有一点记一点。
# 一、创建应用
京东接口的 SDK 是不能直接下载的。需要先创建应用,申请接口,才能下载有权限接口的 SDK。
然后尴尬的事情来了,创建应用的时候要求对系统功能进行截图,我没接口,没 SDK,没数据我怎么开发功能?没功能,就没截图,就没办法申请应用。
不知道是不是我想多了,眼看就是死循环了。我找京东的客服,等了 2 天给我回了一个链接。关键我早就看过了,要是能看这个搞定,我问你干嘛?最后我直接问他原型的截图行不行?他说可以。那就好办了。随便截了几张图,把文档填了,创建了一个应用(因为用的商家账号,创建的是商家自研应用)。不到半天就显示审核通过了。这时候不得不再次吐槽一下,这个申请没这么麻烦就是不写清楚。
总的来说,创建应用的步骤,京东的文档还是介绍的很清楚,但是对于具体要求没有明确。所以要是想申请可以抱着试试看的态度,先提交。不过咱再改就是了。
# 申请接口
有了应用,就可以申请接口,我是把能申请的都点了,想着我直接看介绍根本看不出来都是干啥的,我只能通过 api 调试,看下接口能拿回哪些数据,来猜测是什么接口。比如商品 API 和商品通 API,毕竟我们做开发的不是专业营销管理的,看到这 2 个词我根本分不清有啥区别。因为需要商品列表数据,我把这 2 个分类下的都申请了。有部分是直接审核通过的,有些现在都还是审核中。
# 下载生成 SDK
其实这些接口很容易理解,就是一个 http(s)请求,所谓的 SDK 就是把这些请求封装成 java 方法,方便开发。 我在找京东对接教程的时候,就看到有人把 SDK 自己重写了。还有网上对应的教程实在是太少了,要不就是京东之前还是 360buy 的时候的接口。
在应用的接口管理界面,点击下载 SDK,会下载一个 open-api-sdk-2.0.jar 和 open-api-sdk-2.0-sources.jar 文件。我建议 open-api-sdk-2.0-sources.jar 里面的源码改造成一个项目(pom 文件在 open-api-sdk-2.0.jar 里面),这样可以直接安装到本地仓库或者其他私有仓库。当然可以直接把 open-api-sdk-2.0.jar 安装到仓库中,但是这样 pom 文件里面的依赖就读不出来。貌似网上有人吐槽过这个事情。
后面就可以直接进行开发了。提一下京东现在有些接口只能在他们的云鼎中调用。比如订单相关,就是说要买他们的服务器才行。