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
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
840
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
160
[shibuya.apk #41] Jetpack Composeでグリッドに柔軟にスペースを入れたい
syarihu
0
3.6k
[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
二歩目のフロントエンド・ウェブアクセシビリティ
camiha
2
370
OR学会2026年秋期大会_機械学習と数理最適化の融合による、配合レシピ最適化システム開発事例
brainpadpr
0
130
初対面のメンバーがチームを組み、Claude Codeでゼロからサービスをリリース
mkdev10
1
120
3つのアプローチで目指す チームを強くするAI駆動開発
thkt
0
160
Loop Engineering これくらいでいい
mikanichinose
0
220
hackers_champloo_2026_tidb
makocchi
0
110
V8のArray.prototype.flatを最大約20倍速くするまでと、巨大OSSへの大規模コミットの道のり
riyaamemiya
0
230
ハードウェアコンペでもAI駆動開発が進んでいる話
iotengineer22
1
680
OSC2026on_the-world-is-waiting-for-your-voice.pdf
naruoga
0
370
Running Kotlin + Quarkus with Lambda
nealle
1
410
LLM機能を自作して分かるSnowflake Cortex AIの強み
nayuts
0
360
転んだ話が背中を預ける理由になる / A_story_about_falling_down_gives_you_a_reason_to_watch_each_other_s_backs.pdf
pauli
3
350
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
320
Everyday Curiosity
cassininazir
0
350
A designer walks into a library…
pauljervisheath
211
25k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
520
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1.1k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
300
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
280
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
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
ご清聴ありがとうございました