使用Ktor實作Android訂閱-Part1

YungHsin
Mar 31, 2021

--

前言

覺得網路上對於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。有興趣的就陸續看下去吧!

Buy Me a Tea!

--

--