淘宝R2去模糊化+聚石塔+奇门
?
淘寶api訂單直連 R2級數據必須經過聚石塔奇門輸出:大部分是按照網上速賣通方式配置的 下面的截取信息
一 服務器:
?聚石塔
1.1首先是聚石塔的購買,此處需要說明聚石塔就是服務器,只是換了名字
根據需求選擇相應配置購買就可以了
1.2 聚石塔購買成功后會跳轉到下圖所示頁面
點擊實例管理,就會進入如下圖所示頁面? 要選擇張家口的 +專用網絡+外網ip
1.3 接下來就是配置實例信息,第一次使用時,需要重置連接密碼,請注意,這個連接密碼不是登錄服務器的密碼,請不要搞錯了,遠程登錄密碼只在第一次登錄時會用到,登錄服務器的用戶名密碼是需要自己設置的,此處還有一點需要注意,因為我選擇的系統是linux的,所以用戶名是root,這個是官方規定的,直接用就可以了,點擊重置實例密碼,就可以修改密碼了,還有一點需要注意,密碼修改成功之后會提示重啟,是重啟服務器不是重啟自己的電腦,重啟服務器
重啟服務器
1.4 設置好實例的密碼之后,接下來就是在服務器上配置環境部署代碼此處就不啰嗦了
2.奇門
2.1 使用奇門之前,需要先創建場景,奇門提供了官方場景和自定義場景,由于官方場景只有一部分,所以有些場景是需要自定義的,以獲取類目信息為例,由于官方場景中沒有集成類目這塊,所以就需要我們選擇自定義場景
場景名稱和業務類型請根據需求來選擇
2.2 場景創建好了之后,下來就是創建API
此處有個注意的地方就是自定義參數名最好是設置成方法的傳入參數名一致這樣比較方便,如果不一致可以在下面的body中做映射
2.3 奇門和聚石塔接口映射,此處是個重點,奇門官方給出的linux系統下http請求的端口是80,這個是默認的,為了方便起見我自己代碼中設置的端口也是80,下圖所示的地址是請求聚石塔接口的地址,雖然代碼部署到聚石塔就可以訪問了,但是官方規定如果這個服務上線之后就必須通過奇門,所以奇門是必須要的,這個ip地址我用的是聚石塔的公網地址,配置好之后點擊下一步
2.4 上面一步是設置請求參數,下來就是設置響應參數,請注意對象和列表類型的選擇,這一步只需要設置這里就可以了,點擊下一步
2.5 預覽頁面,可以看下配置的是否正確,如果沒問題點進入到自測環境,沒有問題的話就點上一步修改
2.6 API設置好了之后,下來就是測試頁面的測試了,但是在設置之前,點擊左邊的授權配置,在頁面中配置響應的信息
2.7 授權配置好了之后就可以進行測試了,由于這個API還沒有發布,所以是選擇測試環境
appSecret和AppKey就是之前創建應用成功之后系統分配的,如果報錯說ip不在白名單,那么要在插入一個操作將ip添加到ip白名單
這樣就可以了,可以調通接口了
?
使用速賣通AE新版開放平臺,我們先看看需要哪些條件
1,要有一個企業級別的支付寶帳號,注:必須是企業級別。
2,要有軟著,就是軟件著作權證書
這2個都有了,才能去申請。
?
申請類型有2種
1,商用授權,適合專門的軟件公司
2,自研授權,適合電商公司有獨立研發團隊
我們公司申請的是自研類型
?
1,創建應用
這個環節用于獲取AppKey和Secret,后面獲取令牌用的。這里要說下和老版的區別
1、新版本沒有Refresh和Access令牌的區別,只有Access令牌。正式發布后,這個令牌的期限是一年(相比老版本24小時的時限,時間延長了好久,給個贊)
2、我們使用SDK的時候,有的方法中,參數名稱是SessionKey,其實就是這個令牌(官方文檔從來不說,就是不告訴你)
?
2,授權報備
這里是要綁定一個速賣通的店鋪,你會得到一個cn前綴的字符串,記住這個字符串,后面會很有用
?
3,下載SDK。這是淘寶官方提供的,各版本都有。我們使用的是Net版本。
注:這里最后下載源碼加載至項目中,方便調試。因為后面有個坑,你不進入源碼調試,到死都不知道怎么回事?!(官方就是不說)
注1:SDK我們是可以隨時編譯下載的
注2:如果我們使用自定義場景,創建成功若干API的話,重新編譯下載SDK,會發現輸入輸出參數,已經幫我們定義好類了。我們還是像官方場景那樣,直接使用即可
注:這里最后下載源碼加載至項目中,方便調試。因為后面有個坑,你不進入源碼調試,到死都不知道怎么回事?!(官方就是不說)
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即可,簡單方便。
其中
AliApiUrlPrefix是AE開放平臺的調用地址:http://gw.api.taobao.com/router/rest。
AppKey和AppSecret是之前申請應用時得到的
這步一般是都可以調通的。注:此時還沒有塔和奇門
?
2,下面就開始搭塔了,就是聚石塔。
聚石塔可以理解為阿里云,即一個獨立的操作系統,你上面寫好的程序要部署的吧,你必須要部署在聚石塔里才可以(別問我為什么,官方說的)
2.1,部署好以后,直接調用塔里的程序,還是通的。有人會問,即然通了,還要奇門干啥
現在通了,是我們申請的塔外測試的原因。正式發布的程序,還是要通過奇門才能調用塔里的數據
2.2,塔里部署成功后,達到能訪問返回正確數據即可
?
3,下面就要講重頭戲了:奇門
什么是奇門?奇門就是外部程序和聚石塔必須要經過的一道橋梁。沒有奇門,你就沒門進去,根本訪問不了聚石塔里的應用
?
3.1,奇門的位置
云工作臺->業務系統構建&集成
?
3.2,場景選擇
場景包含2種:自定義場景和官方場景。個人建議先選擇官方場景,因為它內置了傳入和傳出的參數格式。
我們肯定會自定義場景(因為官方場景只提供的30%的API)
?
3.3,官方場景API列表
場景由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
這個最開始沒有注意,導致后面開發耽誤了時間。劃重點了
注意驗簽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,響應參數定義即可(還有驗簽的格式)。相當于每個方法都會返回這些屬性值
這個類,同時還參照了奇門的輸出參數定
?
3.5.2,修改Service層的方法。
主要修改輸出參數,改成什么格式呢?就是我之前提到的,驗簽Demo的那個格式。相當于方法必須返回驗簽Demo格式才行。否則,打死都通不過
看到木有?無論能否返回正確的數據,它要的驗簽格式。你必須返回。
而且你發現木有,驗簽的格式不光屬性,屬性值也要求完全一致。
?
3.5.3,Controller層方法(繼續劃重點,又一個大坑)
注1:這里先解釋下什么是驗簽,作者之前也理解錯誤,現在更正下:驗簽就是平臺給塔里程序發個錯誤的請求,平臺要接收到它認為正確的數據,驗簽就通過了,其實就是這么簡單)正確的數據就是上圖的數據,即是驗簽Demo的格式(屬性值也相同)
注2:再看看Net版本的驗簽,你會發現它的一個參數是System.Web.HttpRequest。我找了好久也沒找到在哪里傳進去,百思不得其解。后來才發現它不是在Service層的,是在WebAPI的Controller層
看,這就是驗簽。是不是有種恍然大悟的感覺。而且這是Controller層完整的方法。包括驗簽+調用Service層+返回格式
?
3.5.4,外部程序調用?
驗簽通過以后,就可以發布了。發布成功,意味著外部程序可以直接使用了。注意:不是直接調用塔里的程序,塔的所有數據,都要通過奇門
這里根據奇門SDK寫的方法,外部程序最后調用的是這個方法。不是前面我們寫的那些
?
3.6,自定義場景
昨天也把自定義場景調試通過了。它和官方場景有什么區別呢?如下所示
a,方法名稱自行定義
b,輸入參數自行定義
c,輸出參數自行定義
d,驗簽格式不可定義(必須按照官方的格式)
其他的沒有什么坑,驗簽通過就可以發布(有個審核的操作,基本都通過的)
?
3.7,安全掃描
整個應用發布前,會有一個安全掃描的過程,官方說是3小時(實際要超出這個時間,都問題不大)
?
最后總結下
1,官方的文檔要認真看,每句話都有它的含義(為毛他們不明說呢,非要我們自己猜)
2,所有的環節都是互相關聯的,一步配置不對,就都有影響
3,申請令牌的程序是可以部署在塔外的
4,官方場景或自定義場景中,每個方法的驗簽返回格式不是都相同的。要注意,必須和驗簽格式完成相同才可以
5,多店鋪時,關于SessionKey(即AccessToken)如何使用?每個店鋪都有id(就是cn123456)的字符串,這是可以通過參數傳進去的。這樣可以在塔里部署一個txt文件,定義好id和令牌的關系。這樣就可以根據Id獲取令牌了?
二.rds數據庫
訂單同步服務進rds?
https://open.taobao.com/doc.htm?spm=a219a.7386653.0.0.3995669aIDcY1V&docId=101587&docType=1
rds同步的庫 只讀類型 本身的業務需要新建庫
?
?
總結
以上是生活随笔為你收集整理的淘宝R2去模糊化+聚石塔+奇门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux虚拟机双显卡,Kali Lin
- 下一篇: 阿里聚石塔2.0部署前后端分离项目