業務背景:我們公司(汽修汽配行業)有兩個天貓店鋪和一個后台管理系統(網點分配,服務跟蹤等),現在要實現的是讓每個店鋪的訂單信息自動同步到后台管理系統的數據庫中,實現自動化。於是就用到了淘寶開放平台的知識,以及阿里雲MNS的簡單使用。
淘寶開放平台和其他開放平台的最大區別在於,要想用他的api開發的產品上線,必須購買他們提供的服務器,因為TOP(Taobao Open Platform)的api調用是限制ip的,只有用他們的機器的ip才能調TOP的api,這些機器叫做"聚石塔"。不過,淘寶為了方便開發人員測試,提供了”沙箱“環境,模擬真實場景,讓開發者知道每個api的參數返回值之類的,關於沙箱環境的介紹請戳:http://www.tbsandbox.com/doc/index.html#taobao_acount
接入TOP之后創建一個應用,便有了appKey,appSecret,有些api是需要收費的,自己申請下就好了。一個應用可以授權報備多個店鋪,於是我授權報備了兩個店鋪,用來同步兩個店鋪的訂單信息,然后就開始調試api了。
api文檔的底部都有api測試工具的鏈接,點擊就進入了如圖的頁面:
這里要注意的一點是,數據環境這里還不能選擇正式的,得購買”聚石塔“后才能有正式環境的權限。AppKey,AppSecret選擇自定義,會多出一項SessionKey,這個會在調某些需要店鋪授權的api時必須傳入,例如上圖中的查詢賣家已賣出的交易數據。這個SessionKey可以在上面給的”沙箱“環境使用說明里面找到,有兩種方法可以獲取到該SessionKey。下圖為沙箱環境使用說明中SessionKey的說明
方法一:點擊上圖鏈接便進入授權登錄頁面,跟QQ登錄那種第三方登錄界面差不多,然后你可能遇到登錄授權不上的問題,然后你選擇注冊,發現怎么也注冊不上,這個應該是TOP的一個坑了,這里用淘寶給的測試賬號密碼授權就可以了,賬號是:sandbox_c_1 密碼是:taobao1234。這個也是在沙箱環境使用說明里面,仔細閱讀應該很容易找到,授權成功之后,進入他跳轉的頁面,輸入AppKey就可以拿到SessionKey了,要注意的是這里的AppKey是你沙箱環境的AppKey,一般是在你的正式AppKey前面加10。如圖:
方法二,根據api文檔的授權登錄流程,一步步發請求,先拿到code,再拿到accessToken,也就是SessionKey,這里就不過多介紹。
獲取到SessionKey之后,調api就好說了,按照參數要求填進去,發請求就可以看到結果了。
最后需要注意的是SessionKey的有效期,這個等應用正式上線后,差不多有一年,所以不用過多考慮上線之后的SessionKey過期問題,測試期間過期了,自己再重新授權一下,就是麻煩一點,不多還是能照樣用。其實,這個SessionKey就是用來區分店鋪的,我的一個應用里面的兩個店鋪就是用這個來區分的,傳入不同的SessionKey獲取不同店鋪的訂單信息。
聯系上業務場景,就是使用crontab定時任務,定時獲取增量訂單或者全量訂單,然后放進阿里雲MNS隊列;另外一邊,同樣是定時任務獲取隊列里的訂單數據,並保存到mysql數據庫中,這樣就完成了訂單自動同步的效果。
最后給大家展示下交易api中taobao.trades.sold.get和fullinfo接口返回的數據的例子,真實的喲,嘿嘿:
array(17) { 'buyer_nick' =>
string(11) "****"
'created' =>
string(19) "2017-03-09 11:14:28"
'end_time' =>
string(19) "2017-03-09 11:15:35"
'modified' =>
string(19) "2017-03-09 11:15:35"
'num' =>
string(1) "1"
'orders' =>
array(1) { 'order' =>
array(11) { 'cid' =>
string(8) "5001456390"
'num' =>
string(1) "1"
'num_iid' =>
string(12) "54441518075707"
'oid' =>
string(16) "261367867377036633"
'payment' =>
string(6) "380.00"
'pic_path' =>
string(83) "https://img.alicdn.com/bao/uploaded/i1/TB1VTA4NFXXXXadXXXXXXXXXXXX.jpg"
'price' =>
string(6) "410.00"
'refund_status' =>
string(9) "NO_REFUND"
'seller_type' =>
string(1) "B"
'status' =>
string(22) "TRADE_FINISHED"
'title' =>
string(84) "瓦爾塔藍標L2-400科魯茲福克斯凱越速騰朗逸帕薩特天籟汽車電瓶" } } 'payment' =>
string(6) "380.00"
'price' =>
string(6) "410.00"
'receiver_address' =>
string(25) "****"
'receiver_city' =>
string(9) "唐山市"
'receiver_district' =>
string(9) "路北區"
'receiver_mobile' =>
string(11) "15083405878"
'receiver_name' =>
string(9) "****"
'receiver_state' =>
string(9) "河北省"
'status' =>
string(22) "TRADE_FINISHED"
'tid' =>
string(16) "26136784377036633"
'type' =>
string(5) "fixed" }
為了保護買家隱私,部分打了****,上述其他信息均為瞎寫,請勿信以為真!如果手機號跟你的一樣,純屬巧合!留言獎勵紅包一個哈哈。
好了,本次分享到這就結束了,感謝大家。歡迎留言交流哦~