前言
覺得網路上對於Android Subscription(訂閱制)+ Server端的實作除了要硬嗑掉官方的文件外,比較少人會特別講述實作細節。
https://developer.android.com/google/play/billing/subscriptions
官方雖然提供的完整範例,但全部都已經做完的範例,我覺得對一開始接觸的人要去一步步去trace code又稍嫌難度很高,所以想說邊用工程版本來一步步建構起來邊解說,才能真正了解~喔~原來你文件是寫了這麼一回事阿!!!
https://github.com/android/play-billing-samples/tree/52f85ddb6acc019b6b405ca68956d698ca96d640
而後端伺服器的範例程式的部分,因為是Node.js 完全不在我的技能樹裡,所以只想要試著能用自己逐漸熟悉的Kotlin語言把伺服器端實作出來。
進入Andriod Subscription正題
這篇算是Part1概觀,接下來才會實際碰到程式碼的部分,這樣也才比較好理解設計的流程。
Android的訂閱至可以分成兩大部分
APP端設計: Android Client端跟Google Play Service串接
- 訂閱UI設計
- Google Play Console訂閱相關設定
- 串接Android InApp Billing Library
- 串接Server端的API
Server端設計: Server跟Google Play Cloud串接
- 給APP的API設計,處理來自APP上傳的訂單
- OAuth 登入
- Google Developer API 驗證訂單
- 處理Google Cloud的訂閱變更-Pub/Sub串接
而這兩大部分又可以分四個角色,分別Android APP端,Google Play Server,Backend Server端以及Google Cloud,訂閱就靠這四個角色互相溝通跟傳送資料來完成訂閱的動作。
其實我是參考官方的介紹的Subscription 101影片https://youtu.be/MlaQdWoSRcQ
自己再重新設計(參考致敬)的架構示意圖就像是這樣:
最後
腦海就先記著這個示意圖,接續著APP端的設計Part2跟Server端的設計Part3(OAuth登入+Google Developer API)及Part4(Google Cloud的訂閱變更-Pub/Sub串接)都會利用到這個架構,最後可能Part5還有寫個最後整合Demo。有興趣的就陸續看下去吧!