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.7k
In-Memory Realms を使って API キャッシュした話 / Use In-Memory Realms
caad1229
0
1.7k
Other Decks in Technology
See All in Technology
Share my, our lessons from the road to re:Invent
naospon
0
110
短縮URLをお手軽に導入しよう
nakasho
0
110
転生CISOサバイバル・ガイド / CISO Career Transition Survival Guide
kanny
3
1.1k
PHPで印刷所に入稿できる名札データを作る / Generating Print-Ready Name Tag Data with PHP
tomzoh
0
140
Exadata Database Service on Cloud@Customer セキュリティ、ネットワーク、および管理について
oracle4engineer
PRO
1
1.5k
管理者しか知らないOutlookの裏側のAIを覗く#AzureTravelers
hirotomotaguchi
2
510
LINEギフトにおけるバックエンド開発
lycorptech_jp
PRO
0
110
明日からできる!技術的負債の返済を加速するための実践ガイド~『ホットペッパービューティー』の事例をもとに~
recruitengineers
PRO
3
520
IAMポリシーのAllow/Denyについて、改めて理解する
smt7174
2
160
2/18/25: Java meets AI: Build LLM-Powered Apps with LangChain4j
edeandrea
PRO
0
150
TAMとre:Capセキュリティ編 〜拡張脅威検出デモを添えて〜
fujiihda
2
370
NFV基盤のOpenStack更新 ~9世代バージョンアップへの挑戦~
vtj
0
280
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
21
2.5k
Designing Experiences People Love
moore
140
23k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.6k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
Building Adaptive Systems
keathley
40
2.4k
Side Projects
sachag
452
42k
Six Lessons from altMBA
skipperchong
27
3.6k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
Bash Introduction
62gerente
611
210k
The Language of Interfaces
destraynor
156
24k
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Ұͭͷಋೖࣄྫͱͯ͠ࢀߟʹ͍͚ͯͨͩ͠Ε͍Ͱ͢
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠