速卖通AE平台+聚石塔+奇门 完整教程V2

声明:若是下面的图片打不开,直接看下面的地址便可css

https://mp.weixin.qq.com/s/UMJZJ1j5N1NSQ_ULXVK5ZAhtml

---------------------------------------------------------------------------------------------------------------程序员

相关阅读express

http://www.cnblogs.com/xiyang1011/p/8830283.htmlapi

--------------------------------------------------------------------------------------------------------------- 安全

公司是跨境电商,在阿里马马的速卖通平台上开有店铺,而且基于速卖通开放平台,自主研发了ERP系统,居今已有3年多的时间了,一直很稳定。服务器

 

今年初,速卖通AE开放平台改版,并入淘宝开放平台中,咱们的麻烦就开始了。。。从最初始的申请资格开始,一步一步的研究、自测。到最近才小有成就。下面就把一路走来填的坑分享下,但愿给新人指点吧测试

 

使用速卖通AE新版开放平台,咱们先看看须要哪些条件ui

1,要有一个企业级别的支付宝账号,注:必须是企业级别。阿里云

2,要有软著,就是软件著做权证书

这2个都有了,才能去申请。

 

申请类型有2种

1,商用受权,适合专门的软件公司

2,自研受权,适合电商公司有独立研发团队

咱们公司申请的是自研类型

 

1,建立应用

这个环节用于获取AppKey和Secret,后面获取令牌用的。这里要说下和老版的区别

一、新版本没有Refresh和Access令牌的区别,只有Access令牌。正式发布后,这个令牌的期限是一年(相比老版本24小时的时限,时间延长了很久,给个赞)

二、咱们使用SDK的时候,有的方法中,参数名称是SessionKey,其实就是这个令牌(官方文档历来不说,就是不告诉你)

 

2,受权报备

这里是要绑定一个速卖通的店铺,你会获得一个cn前缀的字符串,记住这个字符串,后面会颇有用

 

3,下载SDK。这是淘宝官方提供的,各版本都有。咱们使用的是Net版本。

注:这里最后下载源码加载至项目中,方便调试。由于后面有个坑,你不进入源码调试,到死都不知道怎么回事?!(官方就是不说)

注1:SDK咱们是能够随时编译下载的

注2:若是咱们使用自定义场景,建立成功若干API的话,从新编译下载SDK,会发现输入输出参数,已经帮咱们定义好类了。咱们仍是像官方场景那样,直接使用便可

注:这里最后下载源码加载至项目中,方便调试。由于后面有个坑,你不进入源码调试,到死都不知道怎么回事?!(官方就是不说)

 

4,托管服务器

这里可能也不须要,我是直接托管的

 

5,设置白名单

通常设置3个IP地址就能够了

106.11.,没错,就是*.*,这个IP是奇门要求的

106.14.,这个是聚石塔里的

注:聚石塔里的数据,输入输出都要通过奇门,全部只要你想用AE平台,先申请聚石塔吧

115.233,这个是咱们本身的服务器IP。若是你尚未买聚石塔的服务器,平台能够给你3天的塔外测试。就是这个IP地址

 

6,绑定测试账号

这个账号就是以前申请的速卖通店铺账号,直接用这个账号测试就能够。只有3天时间,但过时了能够延长的

 

7,设置回调地址

必需要设置的环节。用于获取AccessToken令牌

 

 

好了,经过上面的几步,准备工做算是完成了。下面,咱们正式写代码,仍是一步一步来

注:以aliexpress.logistics.listlogisticsservice,获取物流服务列表的API为例

 

1,调用AE平台的API。这是咱们的关键业务,建议直接使用官方提供的SDK便可,简单方便。

qoEry5oMTUGJtzb0U8xymQ==.png

其中

AliApiUrlPrefix是AE开放平台的调用地址:http://gw.api.taobao.com/router/rest。

AppKey和AppSecret是以前申请应用时获得的

这步通常是均可以调通的。注:此时尚未塔和奇门

 

2,下面就开始搭塔了,就是聚石塔。

聚石塔能够理解为阿里云,即一个独立的操做系统,你上面写好的程序要部署的吧,你必需要部署在聚石塔里才能够(别问我为何,官方说的)

2.1,部署好之后,直接调用塔里的程序,仍是通的。有人会问,即然通了,还要奇门干啥

如今通了,是咱们申请的塔外测试的缘由。正式发布的程序,仍是要经过奇门才能调用塔里的数据

2.2,塔里部署成功后,达到能访问返回正确数据便可

 

3,下面就要讲重头戏了:奇门

什么是奇门?奇门就是外部程序和聚石塔必需要通过的一道桥梁。没有奇门,你就没门进去,根本访问不了聚石塔里的应用

 

3.1,奇门的位置

云工做台->业务系统构建&集成

BFLOjrHsMUG97R_j-rNyFg==.png

 

3.2,场景选择

yUxI3byYYUOzI8CLXmSF7g==.png

场景包含2种:自定义场景和官方场景。我的建议先选择官方场景,由于它内置了传入和传出的参数格式。

咱们确定会自定义场景(由于官方场景只提供的30%的API)

 

3.3,官方场景API列表

nwtlCvdNXUaGENrMc-bTRg==.png

场景由API组成,每一个方法都须要配置和发布(发布前要自测经过+验签)

 

 

3.4,官方场景API配置(划重点了,这里有个大坑)

3.4.1,配置请求映射

这个坑,研究了2小时,得出结论

这个地址是聚石塔里,你程序的部署地址

注1:是到方法名称级别

注2:Net版本,能够部署成WebAPI程序(推理得出:WebService也能够,Handler也能够)

 

 

3.4.2,请求参数

记住这个格式,后面确定会用到

 

3.4.3,请求Demo

这是标准的参数格式,含输入和输出。也要记住,后面会用到

 

3.4.4,响应参数(即输出参数)

记住+1

 

3.4.5,请求和响应demo

Ph5RY6BYckeXIktqimvbXA==.png

这个最开始没有注意,致使后面开发耽误了时间。划重点了

注意验签Demo的返回格式

 

3.4.6,自测API

到这个环节,就能够开始测试了。

注1:返回格式有2种:XML和Json。通常选择Json

注2:Query id,这个参数是cn的那个字符串,但在这里没有影响,传啥均可以

注2.1:这个参数我认为在发布后至关有关系。一个AppKey可能同时关联多个店铺,这是用来区分店铺信息的。知道是哪一个店铺,才能获取对应店铺的令牌(令牌就是AccessToken,就是SDK中的SessionKey)

注3:有的API方法,参数有个param1的参数。这个怎么理解呢?这个能够理解成方法须要的其余参数内容,都放到这里,Json格式传入。特别说明:它是有格式要求的,就是前面的输入参数格式

 

到这时,你会发现各类调试失败。。。但官方给出的错误码并无什么卵用。下面从新讲一遍正确的姿式,小板凳搬好

 

3.5,正确作法

3.5.1,先定义返回Model基类,按照3.4.4,响应参数定义便可(还有验签的格式)。至关于每一个方法都会返回这些属性值

tvV3DIpDU0qURCyqt8m-TQ==.png

这个类,同时还参照了奇门的输出参数定

 

3.5.2,修改Service层的方法。

主要修改输出参数,改为什么格式呢?就是我以前提到的,验签Demo的那个格式。至关于方法必须返回验签Demo格式才行。不然,打死都通不过

Hwoljhwt90ifZBMk1hmLDw==.png

看到木有?不管可否返回正确的数据,它要的验签格式。你必须返回。

并且你发现木有,验签的格式不光属性,属性值也要求彻底一致。

 

3.5.3,Controller层方法(继续划重点,又一个大坑)

注1:这里先解释下什么是验签,做者以前也理解错误,如今更正下:验签就是平台给塔里程序发个错误的请求,平台要接收到它认为正确的数据,验签就经过了,其实就是这么简单)正确的数据就是上图的数据,便是验签Demo的格式(属性值也相同)

注2:再看看Net版本的验签,你会发现它的一个参数是System.Web.HttpRequest。我找了很久也没找到在哪里传进去,百思不得其解。后来才发现它不是在Service层的,是在WebAPI的Controller层

xps7tUXsFUWJuieVKcuI9A==.png

看,这就是验签。是否是有种恍然大悟的感受。并且这是Controller层完整的方法。包括验签+调用Service层+返回格式

 

3.5.4,外部程序调用?

验签经过之后,就能够发布了。发布成功,意味着外部程序能够直接使用了。注意:不是直接调用塔里的程序,塔的全部数据,都要经过奇门

uMQ8Jn8YIEuWLgYoUxYgSw==.png

这里根据奇门SDK写的方法,外部程序最后调用的是这个方法。不是前面咱们写的那些

 

3.6,自定义场景

昨天也把自定义场景调试经过了。它和官方场景有什么区别呢?以下所示

a,方法名称自行定义

b,输入参数自行定义

c,输出参数自行定义

d,验签格式不可定义(必须按照官方的格式)

其余的没有什么坑,验签经过就能够发布(有个审核的操做,基本都经过的)

 

3.7,安全扫描

整个应用发布前,会有一个安全扫描的过程,官方说是3小时(实际要超出这个时间,都问题不大)

 

最后总结下

1,官方的文档要认真看,每句话都有它的含义(为毛他们不明说呢,非要咱们本身猜)

2,全部的环节都是互相关联的,一步配置不对,就都有影响

3,申请令牌的程序是能够部署在塔外的

4,官方场景或自定义场景中,每一个方法的验签返回格式不是都相同的。要注意,必须和验签格式完成相同才能够

5,多店铺时,关于SessionKey(即AccessToken)如何使用?每一个店铺都有id(就是cn123456)的字符串,这是能够经过参数传进去的。这样能够在塔里部署一个txt文件,定义好id和令牌的关系。这样就能够根据Id获取令牌了 

 

附:

做者建立一个QQ群:558905448。用于分享和交流Net开发经验,欢迎加入.进群请标明:程序员

相关文章
相关标签/搜索