開放接口需要實(shí)現(xiàn)的功能
如果主辦方使用了API模式進(jìn)行抽獎程序的對接,則我們需要提供一套API供主辦方調(diào)用痛单,來實(shí)現(xiàn)相關(guān)功能。初步整理需要實(shí)現(xiàn)的功能如下:
- 要能使用主辦方平臺的用戶身份參與抽獎活動,抽獎頁面可以同步頭像咖摹、昵稱和登錄的用戶身份。
- 必須能使用主辦方平臺的積分進(jìn)行抽獎甥雕,比如100積分抽獎一次踩身,自動扣除。
- 可以將主辦方平臺的內(nèi)容作為獎品并自動發(fā)放社露,比如用戶積分惰赋、優(yōu)惠券/現(xiàn)金券、游戲道具等呵哨。
- 主辦方平臺可以自由設(shè)定條件給用戶獎勵抽獎機(jī)會赁濒,比如首次下載APP、消費(fèi)滿XX元等孟害。
- 主辦方可以通過API自動設(shè)置抽獎白名單 拒炎,例如將訂單號發(fā)送到白名單,讓用戶憑訂單號抽獎挨务。
接口設(shè)計(jì)
為了實(shí)現(xiàn)以上功能击你,需要設(shè)計(jì)一套接口。接口可以采用 HTTP 的 POST 模式進(jìn)行通訊谎柄。
接口分為兩種丁侄,一種是抽獎程序的接口,比如給某用戶增加抽獎機(jī)會的時(shí)候朝巫,活動方平臺就需要主動調(diào)用抽獎程序這邊的接口給用戶增加機(jī)會鸿摇。另外種是活動方平臺要開的接口,比如用戶抽中了10個(gè)金幣劈猿,抽獎程序就會通過指定接口通知活動主辦方的平臺拙吉,讓其給用戶發(fā)放獎品。初步設(shè)計(jì)揪荣,需要的接口如下:
抽獎程序的開放接口
- 用戶注冊:主辦方平臺將首次參與活動的用戶信息筷黔,通過此API自動注冊到抽獎系統(tǒng)中。
- 獲得登錄標(biāo)識:主辦方在引導(dǎo)用戶進(jìn)入活動頁面之前仗颈,通過此API獲取用戶的登錄標(biāo)識佛舱,然后附加到活動頁面的URL參數(shù)中,引導(dǎo)用戶進(jìn)入活動頁面挨决。抽獎程序通過URL傳入的登錄標(biāo)識來自動獲得用戶身份请祖。
- 獲取用戶剩余抽獎次數(shù):活動方可以通過此API獲得用戶的剩余抽獎機(jī)會,然后進(jìn)行一些抽獎提示的彈出等凰棉。
- 增減用戶剩余抽獎機(jī)會:活動方可以通過此API來給用戶增加抽獎機(jī)會损拢,例如用戶購物滿XX元后,通過此API給用戶增加1次抽獎機(jī)會撒犀。
活動方需要開放的接口
- 接收中獎記錄推送:抽獎程序在用戶中獎后福压,會將用戶的中獎信息推送到此API掏秩。以供主辦方在自己的平臺上展示中獎榜或者給用戶發(fā)送額外的中獎通知等。
- 發(fā)放用戶獎品:對于主辦方自己定義的獎品荆姆,在用戶抽中后蒙幻,抽獎程序會將相關(guān)信息推送到此API,
- 查詢用戶積分:當(dāng)使用積分抽獎模式時(shí)胆筒,抽獎程序通過此API來查詢用戶剩余積分邮破,判斷是否還可以進(jìn)行抽獎。
- 用戶積分扣除:當(dāng)使用積分模式抽獎時(shí)仆救,抽獎程序通過此API來扣除用戶抽獎所消耗的積分抒和。
API通訊導(dǎo)圖
接口的安全性問題
開放API需要保證絕對的安全性,可以考慮的措施如下:
- 通訊簽名:將API所有傳入?yún)?shù)結(jié)合密鑰彤蔽,通過一定的算法生成一個(gè)簽名摧莽,每個(gè)接口每一次請求都要進(jìn)行簽名校驗(yàn)。校驗(yàn)簽名不一致的直接拒絕顿痪。
- 請求有效期:每個(gè)接口參數(shù)都必須包含 time 參數(shù)镊辕,傳入發(fā)起時(shí)的時(shí)間戳,API驗(yàn)證有效性的時(shí)候做個(gè)判斷蚁袭,例如超過 10 秒的請求就當(dāng)做過期請求征懈,拒絕處理。
- IP白名單機(jī)制:抽獎平臺和活動方平臺都將對方的服務(wù)器IP寫入到配置里面揩悄,非對方服務(wù)器IP的API訪問將直接拒絕卖哎。