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
ecnight-webpay
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Kengo Hamasaki
November 17, 2014
Technology
1.6k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ecnight-webpay
ECにおける決済のフローで知っておきたいこと at EC Night #1
http://ec-night.doorkeeper.jp/events/16355
Kengo Hamasaki
November 17, 2014
More Decks by Kengo Hamasaki
See All by Kengo Hamasaki
Running JavaScript within Ruby
hmsk
5
3.9k
jest-matcher-vue-test-utils
hmsk
1
1.3k
Other Decks in Technology
See All in Technology
"AWSはちょっと苦手"でも大丈夫。AWS Blocks で手軽に作る Flutter のバックエンド #FlutterKaigi
tacck
PRO
0
110
契約で守るコンパウンドプロダクトのデザインシステム
yug1224
1
1.6k
ポケモン対戦を自動で記録して振り返ろう
fufufukakaka
0
420
AI駆動開発におけるハーネスエンジニアリングの勘所
tsukuboshi
1
890
攻撃 3 時間 vs 復旧 10 時間。アクセスキー流出の非対称性を体感するために CTF を作った話
kazzpapa3
1
100
AIエージェント時代、Kaggleにどう取り組むか
takanao
2
430
渡米前の準備を制す!re:Invent 2026徹底準備術 / The Ultimate Preparation Guide for re:Invent 2026
yuj1osm
1
440
ひとりで始めた AI駆動開発、チームに広げて何が変わったのか
kenichiodo
1
160
Jev の中身は50行で再現できる。でも本物との差はどこにあるのか
hisuzuya
0
220
Technical Project Manager の役割とやりがい、少しだけ AI
yoshiiryo1
0
430
なぜ東京にいる私が、新潟の技術コミュニティを運営するのか by 八雲慎之助
yakumo
0
170
あなたのDartコードは丸見えかもしれない ~reFlutterで暴くFlutterアプリの中身と多層防御~
zozotech
PRO
0
710
Featured
See All Featured
Optimizing for Happiness
mojombo
378
71k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
2
420
The Mindset for Success: Future Career Progression
greggifford
PRO
0
550
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1.1k
Statistics for Hackers
jakevdp
799
230k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
820
Mobile First: as difficult as doing things right
swwweet
225
10k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.3k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
590
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
660
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
650
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
Transcript
&$ʹ͓͚ΔܾࡁͷϑϩʔͰ ͓͖͍ͬͯͨ͜ͱ EC Night #1 http://ec-night.doorkeeper.jp/events/16355 @hmsk from WebPay
Me @hmsk / Kengo Hamasaki VP Product Development at WebPay
Living in CA, USA
WebPay require 'webpay' webpay = WebPay.new('test_secret_eHn4TTgsGguBcW764a2KA8Yd') webpay.charge.create( currency: ‘jpy’, amount:
400, card: {number: ‘4242-4242-4242-4242’, exp_month: 11, exp_year: 2014, cvc: ‘123’, name: ‘KENGO HAMASAKI’} ) https://webpay.jp
=> #<WebPay::ChargeResponse id: "ch_70U72DaDGbzE492" object: "charge" livemode: false amount: 400
card: #<WebPay::CardResponse> created: 1416216426 currency: "jpy" paid: true captured: true refunded: false amount_refunded: 0 customer: nil recursion: nil shop: nil description: nil failure_message: nil expire_time: nil fees: [#<WebPay::ChargeFeeResponse>]
Talking about… wಛఆऔҾ๏ͱ$UP$ w&$ʹ͓͚Δܾࡁ w8FC1BZͱ&$ w&$αʔϏεʹ͓͚Δ"QQMF1BZར༻
Talking about… wಛఆऔҾ๏ͱ$UP$ w&$ʹ͓͚Δܾࡁ w8FC1BZͱ&$ w&$αʔϏεʹ͓͚Δ"QQMF1BZར༻
Talking about… w&$ʹ͓͚ΔܾࡁͷϑϩʔͰ͓͖ͬͯ ͍ͨ͜ͱ
&$ʹ͓͚Δ ܾࡁͷϑϩʔ
ܾࡁใΛ ೖྗ͢Δ ! ֬ఆͯ͠ ϨδʹਐΉ " ߪೖ༰Λ ֬ೝ͢Δ # ྃ͠
ܾࡁ͢Δ $
֬ఆͯ͠ ϨδʹਐΉ ܾࡁใΛ ೖྗ͢Δ ߪೖ༰Λ ֬ೝ͢Δ ߪೖΛ ྃ͢Δ ! "
# $ http://www.amazon.co.jp/gp/cart/view.html
֬ఆͯ͠ ϨδʹਐΉ ܾࡁใΛ ೖྗ͢Δ ߪೖ༰Λ ֬ೝ͢Δ ߪೖΛ ྃ͢Δ ! "
# $ https://www.amazon.co.jp/gp/buy/spc/handlers/display.html
֬ఆͯ͠ ϨδʹਐΉ ܾࡁใΛ ೖྗ͢Δ ߪೖ༰Λ ֬ೝ͢Δ ߪೖΛ ྃ͢Δ ! "
# $ https://www.amazon.co.jp/gp/buy/spc/handlers/display.html
֬ఆͯ͠ ϨδʹਐΉ ܾࡁใΛ ೖྗ͢Δ ߪೖ༰Λ ֬ೝ͢Δ ߪೖΛ ྃ͢Δ ! "
# $ %
ܾࡁใΛ ೖྗ͢Δ ! ֬ఆͯ͠ ϨδʹਐΉ " ߪೖ༰Λ ֬ೝ͢Δ # ߪೖΛ
ྃ͢Δ $
ܾࡁใΛ ೖྗ͢Δ ! ֬ఆͯ͠ ϨδʹਐΉ " ߪೖ༰Λ ֬ೝ͢Δ # ߪೖΛ
ྃ͢Δ $
ܾࡁใΛ ೖྗ͢Δ ! ߪೖ༰Λ ֬ೝ͢Δ # ߪೖΛ ྃ͢Δ $
ϑϩʔΛݟ͢ ηΩϡϦςΟΛݟ͢ ઌΛݟਾ͑Δ
ϑϩʔΛݟ͢
ܾࡁใΛ ೖྗ͢Δ ! ߪೖ༰Λ ֬ೝ͢Δ # ߪೖΛ ྃ͢Δ $ ༗ޮͳΧʔυ͕
ೖྗ͞Εͨʁ
ܾࡁใΛ ೖྗ͢Δ ! ߪೖ༰Λ ֬ೝ͢Δ # ߪೖΛ ྃ͢Δ $ Χʔυͷใʹ
w ଧͪؒҧ͍ʁ w ଞͷΧʔυʁ ༗ޮͳΧʔυ͕ ೖྗ͞Εͨʁ & '
ܾࡁใΛ ೖྗ͢Δ ! ߪೖ༰Λ ֬ೝ͢Δ # ߪೖΛ ྃ͢Δ $ Χʔυͷใʹ
w ଧͪؒҧ͍ʁ w ଞͷΧʔυʁ ༗ޮͳΧʔυ͕ ೖྗ͞Εͨʁ ࢦఆֹۚͰ ܾࡁͰ͖ͨʁ & '
ܾࡁใΛ ೖྗ͢Δ ! ߪೖ༰Λ ֬ೝ͢Δ # ߪೖΛ ྃ͢Δ $ Χʔυͷใʹ
w ଧͪؒҧ͍ʁ w ଞͷΧʔυʁ ༗ޮͳΧʔυ͕ ೖྗ͞Εͨʁ ࢦఆֹۚͰ ܾࡁͰ͖ͨʁ Χʔυͷঢ়ଶʹ % & & '
ܾࡁใΛ ೖྗ͢Δ ! ߪೖ༰Λ ֬ೝ͢Δ # ߪೖΛ ྃ͢Δ $ Χʔυͷใʹ
w ଧͪؒҧ͍ʁ w ଞͷΧʔυʁ ༗ޮͳΧʔυ͕ ೖྗ͞Εͨʁ ࢦఆֹۚͰ ܾࡁͰ͖ͨʁ Χʔυͷঢ়ଶʹ % & & ' w ϑΥʔϜͷೖྗ͕ਏ͍ʜ w Χʔυखݩʹͳͯ͘ਏ͍ʜ (
ܾࡁใΛ ೖྗ͢Δ ! ߪೖ༰Λ ֬ೝ͢Δ # ߪೖΛ ྃ͢Δ $ Χʔυͷใʹ
w ଧͪؒҧ͍ʁ w ଞͷΧʔυʁ ༗ޮͳΧʔυ͕ ೖྗ͞Εͨʁ ࢦఆֹۚͰ ܾࡁͰ͖ͨʁ Χʔυͷঢ়ଶʹ % & & ' w ϑΥʔϜͷೖྗ͕ਏ͍ʜ w Χʔυखݩʹͳͯ͘ਏ͍ʜ w ϖʔδભҠଟͯ͘ਏ͍ʜ w Χʔυձࣾʹిਏ͍ʜ w ଞͷΧʔυͳͯ͘ਏ͍ʜ ( (
ܾࡁͷΈΛ͏
Ծച্ wΧʔυͷ༩৴ΛࢦఆֹۚͰ֬อ͢Δ wʮ͜ͷֹۚͰܾࡁͰ͖·͔͢ʁʯ w͋ͱͰຊܾࡁʢ࣮ച্ʣ w͋ͱͰഁغ
ܾࡁใΛ ೖྗ͢Δ ! ߪೖ༰Λ ֬ೝ͢Δ # ߪೖΛ ྃ͢Δ $ Χʔυͷใʹ
w ଧͪؒҧ͍ʁ w ଞͷΧʔυʁ ༗ޮͳΧʔυ͕ ೖྗ͞Εͨʁ ࢦఆֹۚͰ ܾࡁͰ͖ͨʁ Χʔυͷঢ়ଶʹ % & & ' w ϑΥʔϜͷೖྗ͕ਏ͍ʜ w Χʔυखݩʹͳͯ͘ਏ͍ʜ w ϖʔδભҠଟͯ͘ਏ͍ʜ w Χʔυձࣾʹిਏ͍ʜ w ଞͷΧʔυͳͯ͘ਏ͍ʜ ( (
ܾࡁใΛ ೖྗ͢Δ ! ߪೖ༰Λ ֬ೝ͢Δ # ߪೖΛ ྃ͢Δ $ Χʔυͷใ
͘͠ঢ়ଶʹ w ଧͪؒҧ͍ʁ w ଞͷΧʔυʁ ͜ͷΧʔυͰ 999ԁԾച্ ࣮ച্Խ͢Δ Χʔυͷঢ়ଶʹ % & & ' w ϑΥʔϜͷೖྗ͕ਏ͍ʜ w Χʔυखݩʹͳͯ͘ਏ͍ʜ w ϖʔδભҠଟͯ͘ਏ͍ʜ w Χʔυձࣾʹిਏ͍ʜ w ଞͷΧʔυͳͯ͘ਏ͍ʜ ( (
ܾࡁใΛ ೖྗ͢Δ ! ߪೖ༰Λ ֬ೝ͢Δ # ߪೖΛ ྃ͢Δ $ Χʔυͷใ
͘͠ঢ়ଶʹ w ଧͪؒҧ͍ʁ w ଞͷΧʔυʁ ͜ͷΧʔυͰ 999ԁԾച্ & ' w ϑΥʔϜͷೖྗ͕ਏ͍ʜ w Χʔυखݩʹͳͯ͘ਏ͍ʜ ( ࣮ച্Խ͢Δ
Ծച্ wΧʔυใֹۚ֬ఆͰઌʹܾࡁՄೳੑ Λ֬ೝ͢Δ wߪೖ͕֬ఆͱͳͬͨΒ࣮ച্Խ͢Δ wͨ͠Β͋ͱͰഁغ͢Δ
WebPay require 'webpay' webpay = WebPay.new('test_secret_eHn4TTgsGguBcW764a2KA8Yd') webpay.charge.create( currency: ‘jpy’, amount:
400, + capture: false, card: {number: ‘4242-4242-4242-4242’, exp_month: 11, exp_year: 2014, cvc: ‘123’, name: ‘KENGO HAMASAKI’} )
ܾࡁใΛ ೖྗ͢Δ ! ߪೖ༰Λ ֬ೝ͢Δ # ߪೖΛ ྃ͢Δ $ Χʔυͷใ
͘͠ঢ়ଶʹ w ଧͪؒҧ͍ʁ w ଞͷΧʔυʁ ͜ͷΧʔυͰ 999ԁԾച্ & ' w ϑΥʔϜͷೖྗ͕ਏ͍ʜ w Χʔυखݩʹͳͯ͘ਏ͍ʜ ( ࣮ച্Խ͢Δ
ܾࡁใΛ ೖྗ͢Δ ! ߪೖ༰Λ ֬ೝ͢Δ # ߪೖΛ ྃ͢Δ $ Χʔυͷใ
͘͠ঢ়ଶʹ w ଧͪؒҧ͍ʁ w ଞͷΧʔυʁ ͜ͷΧʔυͰ 999ԁԾച্ & ' w ϑΥʔϜͷೖྗ͕ਏ͍ʜ w Χʔυखݩʹͳͯ͘ਏ͍ʜ ( ࣮ച্Խ͢Δ
ΔՄೳੑΛݮΒ͢
ܾࡁใͷೖྗ w&$͞Μͷͷݟͤॴ wྫ͑ʜ wաڈͷߪೖ࣌ʹอଘͯ͋͠Δ wଞͷը໘Ͱطʹొ͓ͤͯ͘͞ wDBSEJPͳͲೖྗΞγετ
https://www.card.io/
ܾࡁใΛ ೖྗ͢Δ ! ߪೖ༰Λ ֬ೝ͢Δ # ߪೖΛ ྃ͢Δ $ Χʔυͷใ
͘͠ঢ়ଶʹ w ଧͪؒҧ͍ʁ w ଞͷΧʔυʁ ͜ͷΧʔυͰ 999ԁԾച্ & ' w ϑΥʔϜͷೖྗ͕ਏ͍ w Χʔυखݩʹͳͯ͘ਏ͍ ( ࣮ച্Խ͢Δ
ηΩϡϦςΟΛݟ͢
ܾࡁใΛ ೖྗ͢Δ ! ߪೖ༰Λ ֬ೝ͢Δ # ߪೖΛ ྃ͢Δ $
ܾࡁใΛ ೖྗ͢Δ ! ߪೖ༰Λ ֬ೝ͢Δ # ߪೖΛ ྃ͢Δ $ )
ܾࡁձࣾ * όοΫΤϯυ ! !
ܾࡁใΛ ೖྗ͢Δ ! ߪೖ༰Λ ֬ೝ͢Δ # ߪೖΛ ྃ͢Δ $ )
ܾࡁձࣾ * όοΫΤϯυ ! ! * όοΫΤϯυ !
ܾࡁใΛ ೖྗ͢Δ ! ߪೖ༰Λ ֬ೝ͢Δ # ߪೖΛ ྃ͢Δ $ )
ܾࡁձࣾ * όοΫΤϯυ ! ! * όοΫΤϯυ !
ସτʔΫϯ wΧʔυใΛସ͢Δจࣈྻ wΫϥΠΞϯταΠυͱܾࡁձࣾͰ௨৴ w࠶ར༻ՄೳʹͳΔͷ͋Δ
ܾࡁใΛ ೖྗ͢Δ ! ߪೖ༰Λ ֬ೝ͢Δ # ߪೖΛ ྃ͢Δ $ )
ܾࡁձࣾ * όοΫΤϯυ ! ! * όοΫΤϯυ !
ܾࡁใΛ ೖྗ͢Δ ! ߪೖ༰Λ ֬ೝ͢Δ # ߪೖΛ ྃ͢Δ $ )
ܾࡁձࣾ * όοΫΤϯυ ! * όοΫΤϯυ + + + +
ସτʔΫϯ wόοΫΤϯυͰͷอଘɺॲཧɺૹΛ ճආͰ͖Δ wܾࡁձࣾηΩϡϦςΟج४ͷ४ڌͰ ୲อ
WebPay <script type="text/javascript" src="https://js.webpay.jp/v1/"></script> WebPay.setPublishableKey("test_public_gVvaHW5nseyIfjtaO6bN36vr"); WebPay.createToken( convert_card_parameters($(card_form)), , webpayResponseHandler);
WebPay require 'webpay' webpay = WebPay.new('test_secret_eHn4TTgsGguBcW764a2KA8Yd') webpay.charge.create( currency: ‘jpy’, amount:
400, card: + tok_u7fWx6xObdff - {number: ‘4242-4242-4242-4242’, - exp_month: 11, - exp_year: 2014, - cvc: ‘123’, - name: ‘KENGO HAMASAKI’} )
ઌΛݟਾ͑Δ
http://www.apple.com/apple-pay/
"QQMF1BZ w1BTTCPPLʹ݁ͼ͚ͭͨΧʔυΛར༻ wܾࡁ·Ͱ࠷ͷϑϩʔ wସτʔΫϯ4FDVSF &MFNFOU5PVDI *%ʹΑΔηΩϡϦςΟ wਅՁzର໘Ͱͳ͘Σϒͷܾࡁʹ ͑ͯɺطଘͷܾࡁήʔτΣΠͰରԠ Ͱ͖Δz͜ͱ
https://stripe.com/apple-pay
ܾࡁใΛ ೖྗ͢Δ ! ߪೖ༰Λ ֬ೝ͢Δ # ߪೖΛ ྃ͢Δ $ Χʔυͷใʹ
w ଧͪؒҧ͍ʁ w ଞͷΧʔυʁ ༗ޮͳΧʔυ͕ ೖྗ͞Εͨʁ ࢦఆֹۚͰ ܾࡁͰ͖ͨʁ Χʔυͷঢ়ଶʹ % & & ' w ϑΥʔϜͷೖྗ͕ਏ͍ʜ w Χʔυखݩʹͳͯ͘ਏ͍ʜ w ϖʔδભҠଟͯ͘ਏ͍ʜ w Χʔυձࣾʹిਏ͍ʜ w ଞͷΧʔυͳͯ͘ਏ͍ʜ ( (
ߪೖ༰Λ֬ೝͭͭ͠ ΧʔυΛબ͢Δ ߪೖΛ ྃ͢Δ $ Χʔυͷঢ়ଶʹ w ଞͷΧʔυʁ &
ܾࡁใΛ ೖྗ͢Δ ! ߪೖ༰Λ ֬ೝ͢Δ # ߪೖΛ ྃ͢Δ $ )
ܾࡁձࣾ * όοΫΤϯυ ! ! * όοΫΤϯυ !
ߪೖ༰Λ֬ೝͭͭ͠ ΧʔυΛબ͢Δ ߪೖΛ ྃ͢Δ $ ) ܾࡁձࣾ * όοΫΤϯυ -
-
ߪೖ༰Λ֬ೝͭͭ͠ ΧʔυΛબ͢Δ ߪೖΛ ྃ͢Δ $ ) ܾࡁձࣾ * όοΫΤϯυ -
- Χʔυϒϥϯυ Χʔυൃߦऀ - - ! +
Apple Pay on WebPay wઈࢍٕज़ݕূத wಈ࡞͢Δͱ͜Ζ·Ͱ֬ೝ wࠃͰ͑ΔΑ͏ʹ͢Δಈ͖͕ඞཁ w&$αʔϏεӡӦऀͷօ͞Μʹಧ͚ΒΕ ΔΑ͏ؤுΓ·͢
https://rebuild.fm/65
Conclusion wԾച্Λ׆༻ͯ͠ϑϩʔΛ࠷దԽ͠Α͏ wΧʔυใͷܦ࿏Λؾʹ͠Α͏ w"QQMF1BZૣ͍͍ͨ͘
Conclusion w8FC1BZ&$αΠτͷܾࡁपΓͷվળ Λ͓ख͍͠·͢