王民明 章嘯可 陸春燕 夏洋
摘 要:目前,我國電商在零售業中已經占據著主導作用,跨境電子商務已經成為經濟增長新的增長點,打造全新的跨境電商平臺已經成為行業迫切的需求。文章主要介紹了一種跨境電子商務借賣軟件系統,詳細介紹了系統使用的3種主要技術、框架與模塊的設計與實現。
關鍵詞:跨境;電子商務;借賣系統
跨境電子商務,是我國“一帶一路”國家戰略的重要實施途徑,也是供給側結構性改革的有效推動力。在傳統出口貿易增速減緩的情況下,跨境電子商務以30%以上的年增長率迅猛發展,為中國經濟發展作出了重要貢獻。
跨境電子商務產業鏈具有打造國際貿易和跨境消費新業態,具有實現產業整合的功能。這一功能在助推我國由“世界工廠”向“世界商店”的升級過程中,將起到重要的作用。M2B2C跨境電商交易模式可以較好地解決B2C出口模式面臨的困境,是實現電商產業功能的主要載體[1]。
為此,我們開發了跨境電子商務借賣系統。系統基于Java開發,采用了Spring+SpringMVC+Mybatis框架。實現了與ebay系統的對接,可以對ebay上商品的數據進行推送與拉取,從而實現了跨境交易。
1 主要技術簡介
1.1 Redis集群與單點登錄
使用ShardedRedis做登錄緩存。用兩臺redis集群進行存儲。設計MermerHashing算法。Cookie用登錄mall_login做cookie名,用sessionId做value進行唯一標識進行存儲。隨后再用sessionId做redis緩存的key,將用戶信息轉換成string存到value中,讀取性能快,性能好,更安全。
1.2 MermerHash算法
MurmurHash是一種非加密型哈希函數,適用于一般的哈希檢索操作。Redis在實現字典時用到了MurmurHash,包括數據庫、集群、哈希鍵、阻塞操作等功能都用到了這個算法。系統使用MurmurHash3,速度快,實現了32位、128位HashKey,對大塊的數據具有較高的平衡性與低碰撞率。
1.3 Redis分布式
系統使用Redis作緩存服務,剛開始時只用一臺Redis就能夠滿足服務,隨著項目的深入,發現一臺滿足不了現有的項目需求,因為Redis操作都是原子性這樣的特性,造成有時同時讀寫緩存造成查詢效率的下降。為此,采用ShardedJedis來實現分布式緩存。ShardedJedis是通過一致性哈希來實現分布式緩存的,通過一定的策略把不同的key分配到不同的redis server上,達到橫向擴展的目的。
2 系統框架設計
系統中主要設計了3種角色:品牌商、賣家、平臺管理員。品牌商在平臺申請入駐,后臺管理進行認證審核,通過平臺認證并入駐的品牌商,可以在平臺管理維護發布自己的品牌商品;賣家在實際生產環境中入駐平臺的賣家需要在ebay擁有自己的店鋪,賣家可以通過平臺瀏覽選擇品牌商發布的商品,并推送到賣家在ebay的網店進行銷售,同時賣家可以拉取網店銷售訂單到交易平臺,對借賣的商品訂單進行跟蹤和管理;平臺管理員可對用戶權限、平臺商品信息、訂單信息進行監控管理。系統運行關系如圖1所示。
圖1 系統運行關系
系統需要服務于多用戶,因此服務端采用了負載均衡技術。
該系統架構使用Tomcat分布式redis集群架構。用戶在請求系統時,首先接收到的是nginx服務器,做負載均衡分發使用,接著分發到兩個Tomcat上,Tomcat在接收到用戶登錄請求時。將sessionid獲取到,做cookie的value,cookie的name,將cookie寫入用戶的硬盤中。
將sessionid作為唯一標識。做redis緩存服務器的key,value則是用戶信息。登錄成功之后則將用戶json序列化成json字符串形式,存入redis中,這樣每次請求去獲取固定cookie的value。再用value找對應的用戶信息。這里使用的MermerHashing的一致性算法,則可以保證命中率。讀取到用戶登錄信息之后,接著就是用mybatis去進行dao層的操作。系統部署如圖2所示。
圖2 系統部署
3 系統設計
本系統分為移動端與PC端兩個部分,功能模塊有:商品模塊、用戶模塊、訂單模塊、支付模塊、B2C模塊、信用模塊。
商品由品牌商進行發布。發布則可以讓借買方進行各種采購、關注等操作。借買方也有權對商品進行歷史價格查看等操作。競價拍賣必須從已發布的商品中選取。品牌商則是對該商品的狀態、名稱、類別、價格、細節進行及時更新與修改。
用戶模塊主要功能為登錄和注冊、權限管理。登錄之后即可進行訂單模塊的操作。用戶模塊的職責權力分為品牌商、借賣商。只有被審核的用戶才能進行開店操作進入店鋪模塊[2]。
訂單模塊擁有下單之前的操作,可以對購物車進行增刪改查4個操作。特別機制在于該品牌商不能將自己發布的商品進行加車處理,避免了虛假購物的情況。將購物車中的狀態為1的商品全部進行下單操作。下單有母訂單和子訂單操作。母訂單存儲信息有訂單id,總價,下單時間,支付方式,收貨時間,評價時間等各個操作。子訂單是每個商品的詳細信息。假如訂單超過兩小時未付款,訂單巡查將會自動關閉該訂單,并且無法繼續進行支付操作。
支付模塊有錢包支付和支付寶支付兩種模式,支付寶支付對接沙箱,請求發到api,返回地址,下單前端定時器進行輪詢,等到付款成功,輪詢結束。跳到付款成功頁面。如果用戶選擇錢包支付,即可對該訂單進行支付處理。假如錢包余額不足,會提示余額不足,建議用戶進行支付寶充值操作。
B2C模塊實現與ebay的對接,主要完成商品推送與訂單拉取。商品推送時,使用eBay所給的addItem接口和網關,前端列出商品。包括id,將前端傳的id進入后端查詢,將查出的商品用eBay給的api格式進行賦值,再進行調用,eBay則通過指定的網關上傳到了沙箱中。用戶點擊商品右下角箭頭,即可對該商品進行eBay上傳操作,省時方便。訂單拉取時使用eBay給的api網關接口GetOrders進行調用。將參數轉化成自己想要的結果,json序列化傳到前端,可賦值訂單狀態,訂單號進行篩選。用戶假如是品牌商,則可以有校驗,進行后臺訂單拉取。
信用模塊主要用于記錄用戶完成交易情況。買家擁有一定的基礎分,當買家申請分期支付成功時,每次都有最低還款日期。定時任務開始。假如輪詢到超過時間未還款,則郵件提示用戶需還款。redis計時器開始計時。如未能按期付款,將扣除相應的信用分。當買家正常完成交易時,會增加相應的信用分,賣家可以看到買家的信用情況。
4 結語
目前,系統已成功部署到騰訊云上,各模塊運行穩定,系統響應迅速。項目處于內測階段,還在不斷地完善中。