Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Play Billing Library 2.0
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
syarihu
August 01, 2019
Technology
14k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Play Billing Library 2.0
Shibuya.apk #36(
https://shibuya-apk.connpass.com/event/139617/
)で発表した資料です。
syarihu
August 01, 2019
More Decks by syarihu
See All by syarihu
[DroidKaigi 2026] Making UI specifications visible: Android UI development in the AI agent era supported by Compose Screenshot Testing and galleries
syarihu
0
860
Recap #io25 What's new in Google Play
syarihu
0
160
[DroidKaigi 2024] Android ViewからJetpack Composeへ 〜Jetpack Compose移行のすゝめ〜 / From Android View to Jetpack Compose: A Guide to Migration
syarihu
4
5.3k
[shibuya.apk #46] Composableの枠を超えてアニメーションする / Animation beyond Composable
syarihu
0
170
[shibuya.apk #41] Jetpack Composeでグリッドに柔軟にスペースを入れたい
syarihu
0
3.7k
[DroidKaigi 2022] 詳解Google Playの新しい定期購入 ~オファーの活用や実装例を添えて~
syarihu
0
4k
5分で分かるGoogle Playの新しいサブスクリプション / Google Play new subscription 2022
syarihu
1
2k
[DroidKaigi 2021] Google Play 定期購入 比例配分モード完全攻略ガイド / Google Play Subscription Proration Mode Complete Guide
syarihu
1
8.2k
[Money Forward Tech Drive] What's new in Google Play [Recap #io21]
syarihu
0
670
Other Decks in Technology
See All in Technology
Rust で関数型ドメインモデリング
takonda
0
100
味覇で作るパスタが美味い - 20261001_yabaubuki.dev
livesense
PRO
0
130
Jetson Orin Nanoとk3sとローカルLLMで音声文字起こしシステム作ってみた
y_sera15
0
120
継続的なAIコスト最適化
bgpat
1
300
会社説明資料
persolserverworks
0
9.7k
アウトプット初心者、半年間のふりかえり
4o1sobblue
0
310
Benchmarking Disaggregated Serving on vLLM + Dynamo with a Real Coding-Agent Workload
nttcom
0
130
JAWSUG TOHOKU 青森支部 「LoGoチャット」のAWS移行で 乗り越えたこと
taketakekaho
0
230
[AWS 秋のクラウドオペレーション祭り 2026]AWS DevOps Agentで変わるリリースと運用対応 ~リリース管理機能と Directed actions のご紹介~
furuton
4
1.2k
使いこなすために知っておきたい Azure SRE Agent アンチパターン
torumakabe
2
500
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
900
ソフトウェア ファクトリー - 再現性のあるソフトウェアの工場づくり / Software factory
iktakahiro
5
3.8k
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Designing for Performance
lara
612
70k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
2
410
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.2k
The browser strikes back
jonoalderson
0
1.8k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
490
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
59k
Exploring anti-patterns in Rails
aemeredith
4
540
Leo the Paperboy
mayatellez
10
2.4k
Evolving SEO for Evolving Search Engines
ryanjones
0
320
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
450
Transcript
Play Billing Library 2.0 shibuya.apk #36 2019/08/01 (Thu) @syarihu
登壇の経緯
https://twitter.com/mhidaka/status/1153942417021648896
https://twitter.com/syarihu/status/1153942881373003778
https://twitter.com/syarihu/status/1153942929745969152
https://twitter.com/syarihu/status/1153943259422478337
わずか3分のできごとでした
自己紹介
Taichi Sato (@syarihu) • Money Forward, Inc. ◦ Android Engineer
• TechBooster
Play Billing Library
Play Billing Libraryとは • Google Playの課金サービスであ るPlay Billingと連携するための AIDLを抽象化したライブラリ
Play Billing Libraryとは • AIDLはライブラリ内部に隠蔽 されたので実装が楽になった • いまGoogle Playの課金を実装す るならこれを使わないとダメ
Play Billing Libraryとは • 2017年の9月に1.0が正式リリー ス ◦ 2019年7月現在の最新は 2.0.2
IO19での発表
What's New with Google Play Billing (Google I/O'19) https://youtu.be/N4004Set4F8
IO19での発表 • Play Billing Libraryが Play Billingと連携するための 正式な方法となった
IO19での発表 • Play Billing Libraryのロードマッ プ • Play Billing Library
2.0
Play Billing Library ロードマップ
ロードマップ • Play Billing LibraryはI/O毎に メジャーバージョンアップ • 各メジャーバージョンは リリース後2年サポート
ロードマップ • AIDL, Play Billing Library 1.xの サポートは2021年のI/Oまで
ロードマップ • サポートが切れたものを利用して いると、アプリの新規公開・アップ デートはできなくなる
None
ロードマップ • 今回の発表はビルドターゲットを最 新にするだけでアプリに簡単にPlay Billingの新しい機能を採用できるこ とを目的としている
ロードマップ • メジャーバージョンアップで 毎回大きい機能がリリース されるかも…?
ロードマップ • Play Billing Libraryの アップデートは計画的に
Play Billing Library 2.0 Overview
Play Billing Library 2.0 • acknowledge • Pending transactions •
APIの追加・変更
Play Billing Library 2.0 • acknowledge • Pending transactions •
APIの追加・変更
Play Billing Library 2.0 • acknowledge • Pending transactions •
APIの追加・変更
Play Billing Library 2.0 • acknowledge • Pending transactions •
APIの追加・変更
acknowledge
acknowledge • Play Billing Libraryを介して行っ た全ての購入に対して acknowledge(承認)を行うこと が必須になった(2.0から)
acknowledge • 購入後、3日以内に承認をしない場 合はユーザーは自動的に払い戻し を受け、Google Playは購入を取り 消す
acknowledge • テスト用のライセンスアカウントでテ スト購入を行った場合は3日以内で はなく5分以内に承認を行わなけれ ば自動で取り消される
通常の支払いフロー
None
None
Google Playでの購入は正常にできているのに サービスは利用できない状態になってしまう
acknowledge対応した 支払いフロー
None
None
購入情報の登録に失敗しても 3日以内に承認されない場合は払い戻されるので安心
アプリ側で承認することも可能
アプリで通信失敗したときなどの考慮は必要
Pending transactions
Pending transactions • 遅延支払いができる新しい 支払い方法 • 支払いは実店舗での現金払いや 銀行振込などを想定
Pending transactions • 管理対象アイテムで利用できる • 定期購入では利用できない ◦ 支払い方法の選択肢には出てこ ない
Pending transactions • 発表では現金払いは日本とメキ シコで今日から利用可能って言っ ていたけれど、今のところまだ使 えない (2019年7月現在)
Pending transactionsの 利用例(コンビニ)
What's New with Google Play Billing (Google I/O'19) より引用 https://youtu.be/N4004Set4F8
What's New with Google Play Billing (Google I/O'19) より引用 https://youtu.be/N4004Set4F8
None
ここはサービス側が良い感じに コミュニケーションをしてあげる必要がありそう
None
保留中の購入は アカウント情報の購入履歴から確認可能
None
None
None
None
None
アプリ「外」課金が可能になった
今回はアプリ起動時に購入履歴をチェックしているが、 他にも支払い後3日以内に確実に承認を成功させる工夫が必要
Real-time Developer Notificationsとか使うと良いかも
ちなみにアプリが起動中の場合は普通に購入イベントが 走るので通常の購入と同じようにレシートを受け取れる
Pending transactions のテスト
Pending transactions • Pending transactionsはテスト用 のライセンスアカウントを使ってテ ストできる
Pending transactions • Play Billing Library 2.0を利用し たアプリで管理対象アイテムのテ スト購入を行うと、スローカードが 選択できる
None
None
None
Pending transactions • Pending transactionsは購入が 完了状態に移行してから acknowledgeの3日間の期間が 開始される
Pending transactions • テスト購入では購入完了通知が きてから5分以内に承認しないと 払い戻されるので注意
APIの変更・追加
enablePendingPurchase • BillingClientの生成時に呼び出す ことが必須になった • 呼び出さないと例外が発生する
enablePendingPurchase • Pending transactionsをサポートし ていることを意味する
enablePendingPurchase
PurchaseState • Pending transactions用に追加さ れた購入状態を表すステータス • Purchaseオブジェクトに purchaseStateが追加されている
PurchaseState • Purchase.PurchaseState.PENDING • Purchase.PurchaseState.PURCHASED
acknowledgePurchase
acknowledgePurchase
acknowledgePurchase
acknowledgePurchase
acknowledgePurchase
responseCode -> ResponseResult
responseCode -> ResponseResult
queryPurchaseHistoryAsync • 購入履歴を取得するメソッド ◦ queryPurchases ◦ queryPurchaseHistoryAsync
queryPurchaseHistoryAsync • どちらもPurchaseのリストを取得で きるが、2つのメソッドが取得できる Purchase内のデータに違いがあっ た
queryPurchaseHistoryAsync • その問題を解消するため、 queryPurchaseHistoryAsyncの 返り値はPurchaseHistoryRecord のリストになった
queryPurchaseHistoryAsync • PurchaseHistoryRecordは次の データを除いてPurchaseと同じ ◦ autoRenewing, orderId, packageName, purchaseState, acknowledged
BillingFlowParams.setSku()の削除 • Play Billing Library 1.2で非推奨 になったsetSkuが2.0で削除され た
BillingFlowParams.setSku()の削除 • setSkuの代わりに、SkuDetailsオ ブジェクトを渡すsetSkuDetailsメ ソッドに置き換える必要がある
BillingFlowParams.setSku()の削除 • Play Billing Library1.2で対応済 の場合は特に対応は必要無い
まとめ
まとめ • Play Billing Library 2.0からは acknowledge対応が必須になっ た
まとめ • Pending transactionsは定期購 入のみの場合は対応不要だが、 管理対象アイテムを提供している 場合は対応が必要
まとめ • レスポンスやメソッドの返り値に 変更があるので、アップデートす る場合はその点に注意
まとめ • もっと実装の話もしたかったけど15 分では圧倒的に時間が足りなくて 無理でした…気になる人は懇親会 で聞いてください!
宣伝
Andoirdプログラミング 短編集 王女とカルテットの宝探 し • Android Qのジェスチャーナ ビゲーション、ストレージ、ダ イレクトシェア •
Kotlin Coroutines Flow、 WorkManagerとAndroidの 歴史 • Apply Changesの解説、V言 語の秘密など https://techbooster.booth.pm/items/1485567
ご清聴ありがとうございました