速賣通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開發經驗,歡迎加入.進羣請標明:程序員

相關文章
相關標籤/搜索