一、兌換碼介紹
兌換碼都很熟悉了,玩遊戲的時候一般會用到,主要兩種使用場景:
1、用於在遊戲內兌換虛擬物品;
2、用於啟用一款遊戲,獲得體驗遊戲的資格,這種也叫啟用碼。
兌換碼分為兩類,一種是一碼一用兌換碼,也就是一串序列只能被兌換一次,還有一種是一碼多用兌換碼,同一串序列可以被不同玩家兌換。
二、反推兌換邏輯
下面從兌換的外在表現反推兌換碼的技術邏輯流程,以及在兌換過程中涉及的不同服務方。
Q1:玩家怎麼得到的兌換碼?
Q2:這些渠道的兌換碼怎麼來的?
A2:運營發放/上傳的一批兌換碼。
Q3:運營手裡的兌換碼從哪裡來?
A3:從某個平臺匯出的。
Q4:平臺的兌換碼哪兒來?
A4:平臺自己生成的。
Q5:那為什麼遊戲可以識別兌換碼的對錯呢?
A5:其實是平臺在識別對錯,遊戲只是把玩家輸入的兌換碼去問平臺對不對,平臺說是就是啥。
Q6:遊戲怎麼問?平臺怎麼告訴遊戲結果?
A6:平臺提供一個介面,遊戲按平臺提供的介面規範來發送玩家的兌換請求,平臺返回對or錯,錯了就返回錯的原因,對的話還要把兌換碼禮包資訊發過去,不然遊戲就不知道要發什麼道具給玩家,會很慌。
為什麼是平臺提供介面可以詳見這篇文章:
https://coffee.pmcaff.com/article/1994621570861184/pmcaff?utm_source=forum&newwindow=1
Q7:平臺返回了兌換碼正確的資訊,遊戲怎麼發道具?
A7:遊戲呼叫自己的郵件服務發到玩家郵箱,至此整個兌換流程就結束了。
三、兌換細節
實際互動中還有一些細節,比如有的兌換碼會限制可兌換的玩家等級、累計金額、區服、渠道、版本等等,對於平臺來說,我設定了這些限制條件,但是我並不知道玩家的這些資訊呀,所以都需要遊戲伺服器在請求兌換的時候一併把玩家資訊都傳過來,平臺就會根據這些資訊篩選:
哎呀這個等級不夠呀,返回個錯誤2
哎呀這個都不是最新版本的,返回錯誤6
這個人完!美!適!配!允!以!通!過!返回status:0
……
返回是否可兌換的結果的時候也要把玩家基礎資訊(比如區服、角色ID)帶上,不然遊戲方也把這哪位忘的一乾二淨,伺服器再去告訴客戶端,具體結果的體現出於使用者體驗考慮,需要在客戶端層面包裝一下,比如status為0時展示“兌換成功”的文字,status為1,message為6的時候展示“兌換失敗,您需要安裝最新版本”等等。
四、結語
一碼一用兌換碼和複用兌換碼的接入方式一模一樣,基本上跑通了其中一個,另一個就自然通了,因為這個是否複用的邏輯,包括可兌換多少次的邏輯都是平臺在限制,在做邏輯判斷,只需要遊戲搬搬磚當個傳輸中介而已。
真的是個對遊戲方而言很省心的功能~
PMCAFF社群主頁:https://s.pmcaff.com/p7dUA