速卖通AE平台+聚石塔+奇门 完整教程V2
聲明:如果下面的圖片打不開,直接看下面的地址即可
https://mp.weixin.qq.com/s/UMJZJ1j5N1NSQ_ULXVK5ZA
---------------------------------------------------------------------------------------------------------------
相關閱讀
http://www.cnblogs.com/xiyang1011/p/8830283.html
---------------------------------------------------------------------------------------------------------------?
公司是跨境電商,在阿里馬馬的速賣通平臺上開有店鋪,并且基于速賣通開放平臺,自主研發(fā)了ERP系統(tǒng),居今已有3年多的時間了,一直很穩(wěn)定。
?
今年初,速賣通AE開放平臺改版,并入淘寶開放平臺中,我們的麻煩就開始了。。。從最初始的申請資格開始,一步一步的研究、自測。到最近才小有成就。下面就把一路走來填的坑分享下,希望給新人指點吧
?
使用速賣通AE新版開放平臺,我們先看看需要哪些條件
1,要有一個企業(yè)級別的支付寶帳號,注:必須是企業(yè)級別。
2,要有軟著,就是軟件著作權證書
這2個都有了,才能去申請。
?
申請類型有2種
1,商用授權,適合專門的軟件公司
2,自研授權,適合電商公司有獨立研發(fā)團隊
我們公司申請的是自研類型
?
1,創(chuàng)建應用
這個環(huán)節(jié)用于獲取AppKey和Secret,后面獲取令牌用的。這里要說下和老版的區(qū)別
1、新版本沒有Refresh和Access令牌的區(qū)別,只有Access令牌。正式發(fā)布后,這個令牌的期限是一年(相比老版本24小時的時限,時間延長了好久,給個贊)
2、我們使用SDK的時候,有的方法中,參數(shù)名稱是SessionKey,其實就是這個令牌(官方文檔從來不說,就是不告訴你)
?
2,授權報備
這里是要綁定一個速賣通的店鋪,你會得到一個cn前綴的字符串,記住這個字符串,后面會很有用
?
3,下載SDK。這是淘寶官方提供的,各版本都有。我們使用的是Net版本。
注:這里最后下載源碼加載至項目中,方便調試。因為后面有個坑,你不進入源碼調試,到死都不知道怎么回事?!(官方就是不說)
注1:SDK我們是可以隨時編譯下載的
注2:如果我們使用自定義場景,創(chuàng)建成功若干API的話,重新編譯下載SDK,會發(fā)現(xiàn)輸入輸出參數(shù),已經幫我們定義好類了。我們還是像官方場景那樣,直接使用即可
注:這里最后下載源碼加載至項目中,方便調試。因為后面有個坑,你不進入源碼調試,到死都不知道怎么回事?!(官方就是不說)
?
4,托管服務器
這里可能也不需要,我是直接托管的
?
5,設置白名單
一般設置3個IP地址就可以了
106.11.,沒錯,就是*.*,這個IP是奇門要求的
106.14.,這個是聚石塔里的
注:聚石塔里的數(shù)據(jù),輸入輸出都要經過奇門,所有只要你想用AE平臺,先申請聚石塔吧
115.233,這個是我們自己的服務器IP。如果你還沒有買聚石塔的服務器,平臺可以給你3天的塔外測試。就是這個IP地址
?
6,綁定測試帳號
這個帳號就是之前申請的速賣通店鋪帳號,直接用這個帳號測試就可以。只有3天時間,但過期了可以延長的
?
7,設置回調地址
必須要設置的環(huán)節(jié)。用于獲取AccessToken令牌
?
?
好了,通過上面的幾步,準備工作算是完成了。下面,我們正式寫代碼,還是一步一步來
注:以aliexpress.logistics.listlogisticsservice,獲取物流服務列表的API為例
?
1,調用AE平臺的API。這是我們的關鍵業(yè)務,建議直接使用官方提供的SDK即可,簡單方便。
其中
AliApiUrlPrefix是AE開放平臺的調用地址:http://gw.api.taobao.com/router/rest。
AppKey和AppSecret是之前申請應用時得到的
這步一般是都可以調通的。注:此時還沒有塔和奇門
?
2,下面就開始搭塔了,就是聚石塔。
聚石塔可以理解為阿里云,即一個獨立的操作系統(tǒng),你上面寫好的程序要部署的吧,你必須要部署在聚石塔里才可以(別問我為什么,官方說的)
2.1,部署好以后,直接調用塔里的程序,還是通的。有人會問,即然通了,還要奇門干啥
現(xiàn)在通了,是我們申請的塔外測試的原因。正式發(fā)布的程序,還是要通過奇門才能調用塔里的數(shù)據(jù)
2.2,塔里部署成功后,達到能訪問返回正確數(shù)據(jù)即可
?
3,下面就要講重頭戲了:奇門
什么是奇門?奇門就是外部程序和聚石塔必須要經過的一道橋梁。沒有奇門,你就沒門進去,根本訪問不了聚石塔里的應用
?
3.1,奇門的位置
云工作臺->業(yè)務系統(tǒng)構建&集成
?
3.2,場景選擇
場景包含2種:自定義場景和官方場景。個人建議先選擇官方場景,因為它內置了傳入和傳出的參數(shù)格式。
我們肯定會自定義場景(因為官方場景只提供的30%的API)
?
3.3,官方場景API列表
場景由API組成,每個方法都需要配置和發(fā)布(發(fā)布前要自測通過+驗簽)
?
?
3.4,官方場景API配置(劃重點了,這里有個大坑)
3.4.1,配置請求映射
這個坑,研究了2小時,得出結論
這個地址是聚石塔里,你程序的部署地址
注1:是到方法名稱級別
注2:Net版本,可以部署成WebAPI程序(推理得出:WebService也可以,Handler也可以)
?
?
3.4.2,請求參數(shù)
記住這個格式,后面肯定會用到
?
3.4.3,請求Demo
這是標準的參數(shù)格式,含輸入和輸出。也要記住,后面會用到
?
3.4.4,響應參數(shù)(即輸出參數(shù))
記住+1
?
3.4.5,請求和響應demo
這個最開始沒有注意,導致后面開發(fā)耽誤了時間。劃重點了
注意驗簽Demo的返回格式
?
3.4.6,自測API
到這個環(huán)節(jié),就可以開始測試了。
注1:返回格式有2種:XML和Json。一般選擇Json
注2:Query id,這個參數(shù)是cn的那個字符串,但在這里沒有影響,傳啥都可以
注2.1:這個參數(shù)我認為在發(fā)布后相當有關系。一個AppKey可能同時關聯(lián)多個店鋪,這是用來區(qū)分店鋪信息的。知道是哪個店鋪,才能獲取對應店鋪的令牌(令牌就是AccessToken,就是SDK中的SessionKey)
注3:有的API方法,參數(shù)有個param1的參數(shù)。這個怎么理解呢?這個可以理解成方法需要的其他參數(shù)內容,都放到這里,Json格式傳入。特別說明:它是有格式要求的,就是前面的輸入?yún)?shù)格式
?
到這時,你會發(fā)現(xiàn)各種調試失敗。。。但官方給出的錯誤碼并沒有什么卵用。下面重新講一遍正確的姿勢,小板凳搬好
?
3.5,正確做法
3.5.1,先定義返回Model基類,按照3.4.4,響應參數(shù)定義即可(還有驗簽的格式)。相當于每個方法都會返回這些屬性值
這個類,同時還參照了奇門的輸出參數(shù)定
?
3.5.2,修改Service層的方法。
主要修改輸出參數(shù),改成什么格式呢?就是我之前提到的,驗簽Demo的那個格式。相當于方法必須返回驗簽Demo格式才行。否則,打死都通不過
看到木有?無論能否返回正確的數(shù)據(jù),它要的驗簽格式。你必須返回。
而且你發(fā)現(xiàn)木有,驗簽的格式不光屬性,屬性值也要求完全一致。
?
3.5.3,Controller層方法(繼續(xù)劃重點,又一個大坑)
注1:這里先解釋下什么是驗簽,作者之前也理解錯誤,現(xiàn)在更正下:驗簽就是平臺給塔里程序發(fā)個錯誤的請求,平臺要接收到它認為正確的數(shù)據(jù),驗簽就通過了,其實就是這么簡單)正確的數(shù)據(jù)就是上圖的數(shù)據(jù),即是驗簽Demo的格式(屬性值也相同)
注2:再看看Net版本的驗簽,你會發(fā)現(xiàn)它的一個參數(shù)是System.Web.HttpRequest。我找了好久也沒找到在哪里傳進去,百思不得其解。后來才發(fā)現(xiàn)它不是在Service層的,是在WebAPI的Controller層
看,這就是驗簽。是不是有種恍然大悟的感覺。而且這是Controller層完整的方法。包括驗簽+調用Service層+返回格式
?
3.5.4,外部程序調用?
驗簽通過以后,就可以發(fā)布了。發(fā)布成功,意味著外部程序可以直接使用了。注意:不是直接調用塔里的程序,塔的所有數(shù)據(jù),都要通過奇門
這里根據(jù)奇門SDK寫的方法,外部程序最后調用的是這個方法。不是前面我們寫的那些
?
3.6,自定義場景
昨天也把自定義場景調試通過了。它和官方場景有什么區(qū)別呢?如下所示
a,方法名稱自行定義
b,輸入?yún)?shù)自行定義
c,輸出參數(shù)自行定義
d,驗簽格式不可定義(必須按照官方的格式)
其他的沒有什么坑,驗簽通過就可以發(fā)布(有個審核的操作,基本都通過的)
?
3.7,安全掃描
整個應用發(fā)布前,會有一個安全掃描的過程,官方說是3小時(實際要超出這個時間,都問題不大)
?
最后總結下
1,官方的文檔要認真看,每句話都有它的含義(為毛他們不明說呢,非要我們自己猜)
2,所有的環(huán)節(jié)都是互相關聯(lián)的,一步配置不對,就都有影響
3,申請令牌的程序是可以部署在塔外的
4,官方場景或自定義場景中,每個方法的驗簽返回格式不是都相同的。要注意,必須和驗簽格式完成相同才可以
5,多店鋪時,關于SessionKey(即AccessToken)如何使用?每個店鋪都有id(就是cn123456)的字符串,這是可以通過參數(shù)傳進去的。這樣可以在塔里部署一個txt文件,定義好id和令牌的關系。這樣就可以根據(jù)Id獲取令牌了?
?
附:
作者創(chuàng)建一個QQ群:558905448。用于分享和交流Net開發(fā)經驗,歡迎加入.進群請標明:程序員
轉載于:https://www.cnblogs.com/xiyang1011/p/8481768.html
總結
以上是生活随笔為你收集整理的速卖通AE平台+聚石塔+奇门 完整教程V2的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 欧拉回路的基本概念
- 下一篇: 广西北部湾经济区升级发展 全面对接粤港澳