Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
みてねのAndroid課金開発環境 / Android In-App Purchase Env...
Search
satoru.sasaki
May 20, 2019
Technology
0
1.6k
みてねのAndroid課金開発環境 / Android In-App Purchase Environment
satoru.sasaki
May 20, 2019
Tweet
Share
More Decks by satoru.sasaki
See All by satoru.sasaki
Dynamic Links with mitene
caad1229
0
1.8k
In-Memory Realms を使って API キャッシュした話 / Use In-Memory Realms
caad1229
0
1.8k
Other Decks in Technology
See All in Technology
プロダクトエンジニアリング組織への歩み、その現在地 / Our journey to becoming a product engineering organization
hiro_torii
0
130
エンジニア向け技術スタック情報
kauche
1
250
rubygem開発で鍛える設計力
joker1007
2
200
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
26k
LinkX_GitHubを基点にした_AI時代のプロジェクトマネジメント.pdf
iotcomjpadmin
0
170
HiMoR: Monocular Deformable Gaussian Reconstruction with Hierarchical Motion Representation
spatial_ai_network
0
110
A2Aのクライアントを自作する
rynsuke
1
170
“社内”だけで完結していた私が、AWS Community Builder になるまで
nagisa53
1
380
mrubyと micro-ROSが繋ぐロボットの世界
kishima
2
240
AWS アーキテクチャ作図入門/aws-architecture-diagram-101
ma2shita
29
11k
Amazon Bedrockで実現する 新たな学習体験
kzkmaeda
2
540
Liquid Glass革新とSwiftUI/UIKit進化
fumiyasac0921
0
210
Featured
See All Featured
Practical Orchestrator
shlominoach
188
11k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.5k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.6k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Bash Introduction
62gerente
614
210k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.9k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.3k
Navigating Team Friction
lara
187
15k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
Designing for humans not robots
tammielis
253
25k
Transcript
ΈͯͶͷ "OESPJE՝ۚ։ൃڥ ΈͯͶͷ.FFUVQܾࡁΛࢧ͑Δٕज़ גࣜձࣾϛΫγΟΈͯͶࣄۀ෦ ࠤʑڿ!DBBE IUUQTCJUMZ70.'K+
ࣗݾհ ࠤʑڿ !DBBE ݄ೖࣾ ݄4/4NJYJΈͯͶʹҠಈ
ࠓ͢͜ͱ w "OESPJEʹ͓͚Δ՝ۚʹ͍ͭͯ w ΈͯͶͷ"OESPJE։ൃڥʹ͍ͭͯ w ಋೖखॱ w ͓͍ͬͯͨํ͕Α͍͜ͱ w
͓·͚ w ·ͱΊ
"OESPJEʹ͓͚Δ՝ۚʹ͍ͭͯ
wΞϓϦ՝ۚ(PPHMFͱͷΓऔΓ ͢Δ w1MBZ$POTMFͱ࿈ܞ͢ΔͨΊొ͞Εͨ ύοέʔδͰͳ͚Ε՝ۚػೳ͑ͳ ͍ "OESPJEʹ͓͚Δ՝ۚʹ͍ͭͯ
ΈͯͶͷ"OESPJE։ൃڥʹ͍ͭͯ
ΈͯͶͷ։ൃڥ wݸਓڥআ͖ɺେ·͔ʹ̏ͭͷڥ
ΈͯͶͷ։ൃڥ wݸਓڥআ͖ɺେ·͔ʹ̏ͭͷڥ
ΈͯͶͷ։ൃڥ wݸਓڥআ͖ɺେ·͔ʹ̏ͭͷڥ
ΈͯͶͷ։ൃڥ wݸਓڥআ͖ɺେ·͔ʹ̏ͭͷڥ
w ֤ڥ͝ͱʹΞϓϦΛ࡞ w ՝ۚΛ༗ޮʹ͢Δ w ςετ՝ۚͰ͖ΔΑ͏ʹ͢Δ w ࣮͢Δ ಋೖखॱ
w ֤ڥ͝ͱʹΞϓϦΛ࡞ w ՝ۚΛ༗ޮʹ͢Δ w ςετ՝ۚͰ͖ΔΑ͏ʹ͢Δ w ࣮͢Δ ࣮·Ͱͷखॱ
՝ۚ࣌ͷཧ wखݩͷϏϧυɾ%FQMPZ(BUF৴ͨ͠ΞϓϦͰςετ՝͍ۚͨ͠
֤ڥ͝ͱʹΞϓϦΛ࡞
֤ڥ͝ͱʹΞϓϦΛ࡞ wEFWFMPQͱTUBUJOHશମެ։͠ͳ͍લఏ
wϝϦοτ wΒ͔͕͠ڐ͞ΕΔ wࣦഊΛؾʹͤͣ͋Δఔ͖ʹͰ͖Δ wച্Ϩϙʔτ͕ςετڥͱผʹͳΔ wσϝϦοτ w͏͔ͬΓશମެ։ͯ͠͠·͏ڪΕ͋Γ wಉ͡ઃఆΛ֤ڥʹө͢Δඞཁ͕͋Δ ΞϓϦΛ͚Δ͜ͱͷϝϦοτɾσϝϦοτ
w ֤ڥ͝ͱʹΞϓϦΛ࡞ w ՝ۚΛ༗ޮʹ͢Δ w ςετ՝ۚͰ͖ΔΑ͏ʹ͢Δ w ࣮͢Δ ࣮·Ͱͷखॱ
#JMMJOH-JCSBSZΛؚΉBQLΛ1MBZ4UPSFʹެ։͢Δ ՝ۚΛ༗ޮʹ͢ΔͨΊʹ͢Δ͜ͱ
ᶃ#JMMJOH-JCSBSZՃͯ͠Ϗϧυ ᶄ1MBZ$POTPMFʹBQLΞοϓϩʔυ ᶅ1MBZ$POTPMFͰఆظߪೖΞΠςϜ࡞ ᶆΫϩʔζυΞϧϑΝͰެ։ ՝ۚΛ༗ޮʹ͢ΔͨΊʹ͢Δ͜ͱ
ᶃ#JMMJOH-JCSBSZՃͯ͠Ϗϧυ ᶄ1MBZ$POTPMFʹBQLΞοϓϩʔυ ᶅΫϩʔζυΞϧϑΝͰެ։ ᶆ1MBZ$POTPMFͰఆظߪೖΞΠςϜ࡞ ՝ۚΛ༗ޮʹ͢ΔͨΊʹ͢Δ
ᶃ#JMMJOH-JCSBSZՃͯ͠Ϗϧυ ᶄ1MBZ$POTPMFʹBQLΞοϓϩʔυ ᶅΫϩʔζυΞϧϑΝͰެ։ ᶆ1MBZ$POTPMFͰఆظߪೖΞΠςϜ࡞ ՝ۚΛ༗ޮʹ͢ΔͨΊʹ͢Δ
ᶃ#JMMJOH-JCSBSZՃͯ͠Ϗϧυ ᶄ1MBZ$POTPMFʹBQLΞοϓϩʔυ ᶅΫϩʔζυΞϧϑΝͰެ։ ᶆ1MBZ$POTPMFͰఆظߪೖΞΠςϜ࡞ ՝ۚΛ༗ޮʹ͢ΔͨΊʹ͢Δ
ᶃ#JMMJOH-JCSBSZՃͯ͠Ϗϧυ ᶄ1MBZ$POTPMFʹBQLΞοϓϩʔυ ᶅΫϩʔζυΞϧϑΝͰެ։ ᶆ1MBZ$POTPMFͰఆظߪೖΞΠςϜ࡞ ՝ۚΛ༗ޮʹ͢ΔͨΊʹ͢Δ
w ֤ڥ͝ͱʹΞϓϦΛ࡞ w ՝ۚΛ༗ޮʹ͢Δ w ςετ՝ۚͰ͖ΔΑ͏ʹ͢Δ w ࣮͢Δ ࣮·Ͱͷखॱ
wެࣜʹΑΔͱ ςετߪೖ ςετߪೖɺಛఆͷϥΠηϯε ςετ Ϣʔβʔ͕՝ۚΛ ΘͣʹΞϓϦΞΠςϜΛߪೖͰ͖Δํ๏Ͱ͢ɻςετߪ ೖΞϧϑΝ൛ɺϕʔλ൛ϦϦʔεʹରͯ͠ͷΈՄೳͰ͢ɻ
wͭ·Γɺςετߪೖ͢Δʹɺɺ ςετߪೖ
wͭ·Γɺςετߪೖ͢Δʹɺɺ ςετߪೖ ςελʔ ϥΠηϯε ςετ Ϣʔβʔ ʹͳΔඞཁ͕͋Δ
wςελʔ wΞϧϑΝ൛ɾϕʔλ൛ΛHPPHMFQMBZTUPSF͔ΒऔಘͰ͖Δ wϥΠηϯεςετϢʔβ wςετߪೖ͕ڐՄ͞ΕͨϢʔβ ςελʔͱϥΠηϯεςετϢʔβ ΞϓϦϥΠηϯεΛ༻ͨ͠ΞϓϦ՝ۚͷςετ https://support.google.com/googleplay/android-developer/answer/6062777?hl=ja ΞϓϦϥΠηϯε https://developer.android.com/google/play/licensing/overview.html
w1MBZ$POTPMFͷΞϓϦμογϡϘʔυ͔ΒςελʔՃ wΦϓτΠϯ63-ʹΞΫηε ςελʔʹͳΔ https://play.google.com/apps/testing/<package>
w1MBZ$POTPMFઃఆΞΧϯτͷৄࡉϥΠηϯεςετ wΞΧϯτՃ ϥΠηϯεςετϢʔβʔʹͳΔ
wखݩͷϏϧυͰςετߪೖͰ͖ΔΑ͏ʹͳΔ w(PPHMF1MBZ͔ΒΞϧϑΝ൛ΛΠϯετʔϧ͠ͳͯ͘Α͍ ςετߪೖͰ͖·͢
ςετߪೖͱຊߪೖ
ςετߪೖͰগ͠ϋϚΔ͜ͱ
ςετߪೖͰগ͠ϋϚΔ͜ͱ ొ͢ΔΞΧϯτϓϥΠϚϦΞΧϯτͰ͋Δ͜ͱ
ςετߪೖͰগ͠ϋϚΔ͜ͱ wϓϥΠϚϦΞΧϯτ w"OESPJEҰͭͷʹෳΞΧϯτΛొ͢ Δ͜ͱ͕Ͱ͖Δ wΞϓϦ՝ۚʹ͏ΞΧϯτ࠷ॳʹొͨ͠ ΞΧϯτͱͳ͍ͬͯΔ ϓϥΠϚϦΞΧϯτ wͭ·ΓɺΞϧϑΝ൛ςετߪೖ͢Δʹɺϓϥ ΠϚϦΞΧϯτΛొ͠ͳ͍ͱςετ՝ۚͰ͖
ͳ͍
ςετߪೖͰগ͠ϋϚΔ͜ͱ ςετߪೖ͍ͨ͠ΞΧϯτ cc ʹ࠷ॳʹొ͢ΔΞΧϯτ wͭ·Γ
w ֤ڥ͝ͱʹΞϓϦΛ࡞ w ՝ۚΛ༗ޮʹ͢Δ w ςετ՝ۚͰ͖ΔΑ͏ʹ͢Δ w ࣮͢Δ ࣮·Ͱͷखॱ
ௐࠪͱ͔ࢀߟʹͨ͠ͷ wϥΠϒϥϦ w#JMMJOH$MJFOU-JCSBSZW ࠷ۙWϦϦʔε͞Εͨ wࢀߟʹͨ͠ͷ wެࣜυΩϡϝϯτ w(PPHMFͷαϯϓϧɺྫͷΞϨ 5SJWJBM%SJWF@W
w%SPJE,BJHJৄղఆظߪೖ Droidkaigi 2019 ৄղఆظߪೖ (·Μͩʔ @ymnd ͞Μ) https://developer.android.com/google/play/billing/billing_testing?hl=ja#solo TrivalDrive_v2 https://developer.android.com/google/play/billing/billing_library_overview
ઃܭ wΑ͋͘ΔΞϨ w.77. wࠓճɺ#JMMJOH$MJFOUΛѻ͏%BUB4PVSDFʹ ͍ͭͯগ͚ͩ͠
ઃܭ wΑ͋͘ΔΞϨ w.77. wࠓճɺ#JMMJOH$MJFOUΛѻ͏%BUB4PVSDFʹ ͍ͭͯগ͚ͩ͠
ઃܭ wΑ͋͘ΔΞϨ w.77. wࠓճɺ#JMMJOH$MJFOUΛѻ͏%BUB4PVSDFʹ ͍ͭͯগ͚ͩ͠
%BUB4PVSDF w#JMMJOH-JCSBSZΛ3Y+BWBͰϥοϐϯά wҰ෦ϨεϙϯείʔϧόοΫ෦Ͱ໘ͳ "1*͕͋ͬͨ w$BMMCBDLϝΠϯεϨουͰͷ࣮ߦ͕ඞਢ w(JTUࢀরͯ͠Έ͍ͯͩ͘͞ Google ͷ੩తϨεϙϯε͕͋ΔͷͰɺΞΠςϜͳͯ͘୯ମςετͰ͖·͢ https://developer.android.com/google/play/billing/billing_testing?hl=ja#solo Gist
https://gist.github.com/caad1229/a6aea2e863b87074e5cf29e13504fcff
w ֤ڥ͝ͱʹΞϓϦΛ࡞ w ՝ۚΛ༗ޮʹ͢Δ w ςετ՝ۚͰ͖ΔΑ͏ʹ͢Δ w ࣮͢Δ ࣮·Ͱͷखॱ
͓͍ͬͯͨ΄͏͕ྑ͍͜ͱ
4FSWFSͰϨγʔτݕূͯ͠Β͏ wߪೖϋοΫ͢Δ'SFFEPNͱ-VDLZ1BUDIFSͱ͍ͬͨΞϓϦ͕͋Δ wϨγʔτݕূ4FSWFSʹͤΔ͜ͱͰɺෆਖ਼Λ͙͜ͱ͕Ͱ͖Δ wΈͯͶͰ݅ɺෆਖ਼Ϩγʔτ͕͋ͬͨ w($1αʔϏεΞΧϯτ1MBZ$POTPMFͱ࿈ܞ͍ͯ͠Δඞཁ͕͋Δ
4FSWFSͰϨγʔτݕূͯ͠Β͏ wߪೖϋοΫ͢Δ'SFFEPNͱ-VDLZ1BUDIFSͱ͍ͬͨΞϓϦ͕͋Δ wϨγʔτݕূ4FSWFSʹͤΔ͜ͱͰɺෆਖ਼Λ͙͜ͱ͕Ͱ͖Δ wΈͯͶͰ݅ɺෆਖ਼Ϩγʔτ͕͋ͬͨ w($1αʔϏεΞΧϯτ1MBZ$POTPMFͱ࿈ܞ͍ͯ͠Δඞཁ͕͋Δ ͔͔Δ͕ɺ͋ͬͨ΄͏͕ྑ͍
ߪೖ෮ؼॲཧ w(PPHMFɾΈͯͶΞϓϦɾ4FSWFSͰͷ߹ੑ͕औΕͳ͔ͬͨ߹ͷରԠ
͓·͚
։ൃ༻ΞϓϦͷϦδΣΫτ w(PPHMF͔Β։ൃ༻ΞϓϦ͕ϦδΣΫτ͞Εͨ w։ൃΞϓϦ͕ɺͳΓ͢·͠ೝఆ͞Εͨ wύοέʔδ͕ࣅ͍ͯͨ w4UPSFใΛ1SPEVDUͱಉ͡ͷ͍ͬͯͨ wυϝΠϯূ໌ͱ͔ɺ1MBZ$POTPMFͷεΫγϣΛϝʔϧͰૹͬͯ߅ٞ
։ൃ༻ΞϓϦͷϦδΣΫτ w(PPHMF͔Β։ൃ༻ΞϓϦ͕ϦδΣΫτ͞Εͨ w։ൃΞϓϦ͕ɺͳΓ͢·͠ೝఆ͞Εͨ wύοέʔδ͕ࣅ͍ͯͨ w4UPSFใΛ1SPEVDUͱಉ͡ͷ͍ͬͯͨ wυϝΠϯূ໌ͱ͔ɺ1MBZ$POTPMFͷεΫγϣΛϝʔϧͰૹͬͯ߅ٞ
·ͱΊ
·ͱΊ wΈͯͶͰ͜ͷΑ͏ͳྲྀΕͰ՝ۚڥΛߏஙɾ։ൃͨ͠ w։ൃํ๏༷ʑͰ͋ΔͷͰɺͦΕͧΕͷ։ൃڥʹ͋ͬͨํ๏Λ ಋೖͯ͠ྑ͍ͱࢥ͏ wҰͭͷಋೖࣄྫͱͯ͠ࢀߟʹ͍͚ͯͨͩ͠Ε͍Ͱ͢
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠