Unity接入谷歌支付
文章理由
前段時間負責Unity接入Google內購功能,一開始研究別人的技術部落格時發現,他們的文章都有些年頭了,有些細節的地方已經不像n年前那樣了,技術永遠是需要更新的,而這篇就作為2016年末的最後一篇接入谷歌內購文章寫給需要的人
準備工作
1.將自己的谷歌賬號,支付25美元,成為谷歌開發者賬號,開發者資訊隨意填寫(有的部落格寫著必須填寫美國,其實我就填寫的中國) 2.一臺安裝有谷歌四件套的安卓手機以及VPN 3.一個用於測試的Unity小demo,只需要做好支付按鈕就好了
谷歌開發者後臺的設定
1.先建立一個新應用
2.以下是釋出應用前必填的資訊(填寫完整所有帶*號的選項,左上角四處灰色對勾全部變為綠色才能夠釋出),附上需要填寫資訊的全部截圖
3.應用內商品填寫
與其他的部落格不同,到了我寫部落格這個時期,只剩下受“管理的商品”和“訂閱”這兩種(取消了不受管理的商品),“受管理的商品“是谷歌幫你記錄購買狀態,例如一次性花錢購買所有開放關卡,玩家如果重灌遊戲,還能不再次花錢找回原來購買的這些關卡。可是有人會問,如果取消了“不受管理的商品”,那我遊戲中可以無限購買的禮包以及金幣鑽石禮包怎麼辦,別急,後面的程式碼中會提到這個。
建立完畢之後的介面
Unity方面
因為支付的程式碼需要去安卓中寫,所以在這裡將Unity專案打包成為安卓專案,然後進行二次開發。首先是安卓和Unity的通訊,如果不會的話可以去看看雨鬆的部落格。下圖buykey這個引數,是之前建立應用內商品得到的ID--(jb_1)和(lb_1),這個引數需要傳到安卓中做處理。
下圖message這個引數是安卓傳回來的訊息,如有需要,可以在Unity中做後續處理
接下來需要將Unity專案打包為安卓專案,先填寫好相應的包名和簽名以及固定必須修改的部分後開始打包為安卓專案
在Android中加入支付程式碼
我使用的是Eclpise進行的二次開發,你要是使用AndroidStudio也沒有問題,程式碼的思路都是差不多的,配置的方式不同而已。首先在Eclipse中建立一個空專案(請注意圖片上的標註)
之後的一路Next就可以,接下來將剛才Unity匯出的安卓工程裡面的資料夾直接拖動到新建的工程下,並選擇全部覆蓋,我們的工程內容將被替換為Unity內容:
Android工程設定完成。接下來是最關鍵的接入谷歌內購了,首先我們需要在SDK Manager中下載內購sdk。這裡面是他的官方demo,介紹瞭如何在安卓工程中接入內購。將截圖中需要的類放到我們的安卓專案,拖進來可能會報引入路徑錯,注意修改成符合你們自己工程的正常路徑
在AndroidMainfest檔案中新增內購許可權
接著我們在java程式碼中寫入被Unity呼叫以及向Unity回傳訊息的程式碼
內購方面,必須要需要寫入base64 ras公共金鑰。在我們新建立的應用列表中找到“服務和API”,裡面有公共金鑰
接下來的幾個函式是我們內購必須用到的
1.呼叫內購函式之後,執行“購買結果處理函式”,因為我們的商品是受管理商品,只允許購買一次,如果想再次購買,必須先進行消耗,只有消耗成功,谷歌才允許繼續購買。如果您有金幣或禮包等可無限購買商品,可以在每次購買成功之後立刻執行消耗函式即可。
2.此圖為購買成功之後,執行“消耗結果處理函式”,例如判斷使用者消耗成功,則執行相應的事件
3.下圖函式為程式初始化會自動呼叫的函式,可以將您希望執行消耗的商品列表新增到裡面,如果是一次性購買商品,則不要新增到列表中
4.下圖函式必需新增到你的程式碼中(仿照demo)
釋出到谷歌
接下來將此安卓工程打包成apk,不會的自行搜尋Eclipse如何打包為apk檔案。打包好後,上傳到谷歌開發者控制檯,我這裡上傳的是Alpha版本並選擇了封閉式ALPHA 版測試,然後將需要測試的谷歌賬號新增到測試人員列表中,注意並不僅僅要在這裡新增為測試人員,還要在設定中的許可測試選項中新增測試的谷歌賬號,必須兩處都加上
第一次上傳ALPHA版apk成功後,要耐心等待幾個小時,然後使用測試賬號進入下圖的網址,然後點選確定成為測試人員,然後再次等待15分鐘-1小時後即可在谷歌商店中下載我們的測試應用去測試,當然此時您也可以使用之前的apk直接安裝到手機上測試
結語
接入所有的步驟都在這裡了,還有一些坑點,後續會更新上的,如果感覺哪裡說的不夠仔細,請私信我,我會一一加上的,大家一起進步