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
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
1.1k
Recap #io25 What's new in Google Play
syarihu
0
170
[DroidKaigi 2024] Android ViewからJetpack Composeへ 〜Jetpack Compose移行のすゝめ〜 / From Android View to Jetpack Compose: A Guide to Migration
syarihu
4
5.4k
[shibuya.apk #46] Composableの枠を超えてアニメーションする / Animation beyond Composable
syarihu
0
180
[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
2.1k
[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
680
Other Decks in Technology
See All in Technology
現場を動かすAIエージェント#2_製造業現場でのAI活用から見た、ハマる罠と実践知
kintotechdev
2
170
`go get`したらELFが降ってきた件
taiyow
0
170
bpf_arenaとstruct_opsを使うのが難しかった話
masu_mi
1
140
Strands Decider 2BでAWSアップデートの目利きをしてみた
sato4mi
1
120
渡米前の準備を制す!re:Invent 2026徹底準備術 / The Ultimate Preparation Guide for re:Invent 2026
yuj1osm
1
550
AX時代の自治体支援リソース再配分と役割分担の再構成:戦略とロードマップ(概要)
sishi2026
0
200
AI時代の組織作り:チーム開発から「個人×AI」への移行と、持続可能な「開発資本」の築き方
ham0215
1
100
詳解 never 型 - ボトム型の性質を深掘り
nealle
0
150
Sinatra on PicoRuby ローカルでセルフホスト
bash0c7
0
100
Consistency for mere mortals - A gentle guide to consistency
ufried
0
120
[re:Invent2026事前勉強会(有志開催)]続きは、ラスベガスの廊下で / continue-in-the-vegas-hallway
sh_fk2
0
520
Active Directory と Entra ID のむむむな関係
murachiakira
PRO
3
1.5k
Featured
See All Featured
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
580
Intergalactic Javascript Robots from Outer Space
tanoku
273
28k
sira's awesome portfolio website redesign presentation
elsirapls
0
490
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
610
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
610
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
570
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
370
Un-Boring Meetings
codingconduct
0
490
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.8k
Test your architecture with Archunit
thirion
2
2.5k
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
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
ご清聴ありがとうございました