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
JP_Stripes Connect 2019 登壇資料
Search
Yausufmi Nishiyama
March 21, 2019
1
1.8k
JP_Stripes Connect 2019 登壇資料
昨年夏の「10年間使い続けているPayPalからStripeへ? 〜 あるウェブディレクターの軌跡 〜」には実は続編があった?
Yausufmi Nishiyama
March 21, 2019
Tweet
Share
More Decks by Yausufmi Nishiyama
See All by Yausufmi Nishiyama
ウェブディレクターの傾聴力が引き上げる「企画力」
nishi_yama
0
48
手段と目的を間違えないための「Movable Typeを活用したウェブサイトエコシステム」
nishi_yama
0
250
ECサイト構築にもう1つの選択肢を
nishi_yama
0
2.3k
はじめてのMovable Type 〜ゼロからの始め方・選び方〜
nishi_yama
0
370
Movable Typeで理解する「CMS選びのポイント」
nishi_yama
1
200
Movable Type で育てるウェブサイトエコシステム
nishi_yama
0
56
手軽さや自由度のメリットだけじゃない、SaaS型CMSで作る「クライアントから支持されるウェブサイト」
nishi_yama
0
87
カスタムブロック作成手順のベタープラクティス
nishi_yama
0
4.8k
SaaS型のMovable Typeを選択するウェブサイト制作会社の思考
nishi_yama
0
100
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
60k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Fireside Chat
paigeccino
37
3.5k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
Speed Design
sergeychernyshev
32
1k
The Pragmatic Product Professional
lauravandoore
35
6.7k
Building Applications with DynamoDB
mza
95
6.5k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Documentation Writing (for coders)
carmenintech
72
4.9k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
Transcript
͍ؒଓ͚͍ͯΔ 1BZ1BM͔Β4USJQFʁ ʙ͋ΔΣϒσΟϨΫλʔͷيʙ +1@4USJQFT$POOFDU BUΤϜΦʔςοΫεגࣜձࣾ
ϋογϡλάɹ+14$ ࣗݾհ
ϋογϡλάɹ+14$ ࡾͷ൧ΑΓ৯Δ͜ͱɺҿΉ͜ͱ͕͖ ࢁɹହ࢙ʢʹ͠·ɹ͢;Έʣ גࣜձࣾδϟΫελϙδγϣϯɹදऔకʗσΟϨΫλʔ ݄ۀɺ݄๏ਓԽʢ๏ਓظʣ .PWBCMF5ZQFΛϓϥοτϑΥʔϜʹΣϒαΠτΛߏங ɹ1SP/FUʢγοΫεɾΞύʔτࣾύʔτφʔʣՃໍ ɹ.5՜ҔΛελʔτ ɹ.5%%$.FFUVQ)0,,"*%0։࠵ ɹΣϒσΟϨΫγϣϯݚڀձʢԾশʣΛελʔτ
ɹ.5%%$.FFUVQ)0,,"*%0։࠵
ϋογϡλάɹ+14$ ւಓࡳຈࢢ͔Βདྷ·ͨ͠
ϋογϡλάɹ+14$ ͓ؾʹೖΓͷॴ େऺञԶྲྀ ϏʔϧʢαοϙϩΫϥγοΫʣ ഋԁʢ੫ผʣ ݄ͷൢച ͓Αͦ ഋʢళฮʣ
ϋογϡλάɹ+14$ ͓ؾʹೖΓͷॴ େऺञԶྲྀ ݩβϯΪˍ৽βϯΪ
ϋογϡλάɹ+14$ δϟΫελϙδγϣϯ
ϋογϡλάɹ+14$ σΟϨΫλʔɹ໊ σβΠφʔʢ)5.-$44ΤϯδχΞʣ໊ .5ςϯϓϨʔτΤϯδχΞɹ໊ ओͳۀ ɾΣϒαΠτߏஙʗΣϒίϯαϧςΟϯά ɾࣗࣾ։ൃൢച ɾΣϒγεςϜ։ൃ ɾҹσβΠϯ΄͔ IUUQTXXXMBUODPN
ϋογϡλάɹ+14$ ຊΠϕϯτͷը૾ܥσβΠϯΛ୲
ϋογϡλάɹ+14$ ࣗࣾϓϩμΫτ4,&-&50/$"35ͷ։ൃɾൢച
ϋογϡλάɹ+14$ 4,&-&50/$"35 w ݄ϦϦʔε w )5.-ςϯϓϨʔτࣜͷγϣοϐϯάΧʔτ w ओʹΣϒσβΠφʔ͞ΜΣϒ੍࡞ձ͚ࣾ w ϓϥάΠϯػߏʹΑΔ֦ுੑ
w ൢച૯͓Αͦຊ
ϋογϡλάɹ+14$ %ZOBNJD1SFWJFX *NBHF6QMPBE6UJMJUZ .PWBCMF5ZQF༻ϓϥάΠϯͷ։ൃɾൢച
ϋογϡλάɹ+14$ *NBHF6QMPBE6UJMJUZ w ݄ϦϦʔε w .PWBCMF5ZQFͷը૾ΞοϓϩʔυػೳΛڧԽ w ݸਓແঈ൛ɺ௨ৗ൛ͱ1SP൛Λఏڙ w ൢച૯͓Αͦຊ
ϋογϡλάɹ+14$ %ZOBNJD1SFWJFX w ݄ϦϦʔε w .PWBCMF5ZQFͷϓϨϏϡʔػೳΛڧԽ w ௨ৗ൛ͱ1SP൛Λఏڙ w ൢച૯͓Αͦຊ
ϋογϡλάɹ+14$ ࠓɺօ͞Μʹ͓͢Δ͜ͱ
ϋογϡλάɹ+14$ 4USJQFΛར༻͢Δ͜ͱͰɺ ϊϯϓϩάϥϚʔͳϫλγͰ ࢥ͍ͬͯͨΑΓͣͬͱ؆୯ʹ Γ͔ͨͬͨ͜ͱ͕࣮ݱͰ͖ͨ
ϋογϡλάɹ+14$ ͜Ε·Ͱར༻͖ܾͯͨ͠ࡁαʔϏε
ϋογϡλάɹ+14$
ϋογϡλάɹ+14$ 1BZ1BM w ɺ·ͩݸਓࣄۀओ w &$αΠτߏஙͷґཔ͕૿͖͑ͯͨ w Ͱ͖Δ͚ͩܦඅ͔͚ͨ͘ͳ͍ w ςετڥʢ4BOECPYʣ͕ར༻Ͱ͖ͨ
w "1*Ͱ͍Ζ͍ΖͰ͖ͦ͏
ϋογϡλάɹ+14$
ϋογϡλάɹ+14$ Ϋϩωί8&#ίϨΫτ w ओʹΫϥΠΞϯτͷ&$αΠτͰಋೖ w ֹ݄ҡ࣋අ͕͔͔Βͳ͍ w ૹ·ͰҰ؏Ͱ͖Δ w Ҿ͖ͰΫϨδοτΧʔυܾࡁ͕ར༻Ͱ͖Δ
w Ϋϩωίͱ͍͏҆৺ײ
ϋογϡλάɹ+14$ 4USJQFΛͬͯΈΑ͏ͱࢥͬͨཧ༝
ϋογϡλάɹ+14$ 1BZ1BMޱ࠲ͷ 4USJQFΛͬͯΈΑ͏ͱࢥͬͨཧ༝ᶃ
ϋογϡλάɹ+14$ 1BZ1BMޱ࠲ʹೖۚ һି ๏ਓޱ࠲ৼସ
ϋογϡλάɹ+14$ 1BZ1BMձһొͷ 4USJQFΛͬͯΈΑ͏ͱࢥͬͨཧ༝ᶄ
ϋογϡλάɹ+14$ 1BZ1BMձһొ͕ඞཁ 1BZ1BMձһ͡Όͳ͍ ۜߦৼࠐͰࢧ͍͍ͨ
ϋογϡλάɹ+14$ 1BZ1BMखྉͷ 4USJQFΛͬͯΈΑ͏ͱࢥͬͨཧ༝ᶅ
ϋογϡλάɹ+14$ *NBHF6QMPBE6UJMJUZ1SP͕ചΕͨ߹ ച্ खྉ ʢ݄ؒച্ສԁະຬʣ Ҿग़खྉ ʢສԁະຬʣ ࠩҾऩೖ 1BZ1BM
ԁ ԁ ʢ ԁʣ ԁ ԁ 4USJQF ԁ ԁ ʢʣ ԁ ͋ͨΓͷֹࠩԁʂ
ϋογϡλάɹ+14$ ࠓ·ͰʹऔΓ͜΅ͯ͠͠·ͬͨ૯ֹ ԁҎ্ʂ
ϋογϡλάɹ+14$ େऺञԶྲྀͷ ੜϏʔϧʢΫϥγοΫʣ ഋҎ্
ϋογϡλάɹ+14$ Ϋϩωί8&#ίϨΫτͷॏେͳ 4USJQFΛͬͯΈΑ͏ͱࢥͬͨཧ༝ᶆ
ϋογϡλάɹ+14$ ͋ΔɺΫϥΠΞϯτ͔Βಧ͍ͨϝʔϧ 'BDFCPPL-*/&ʹషΓ͚ͨ ฐࣾ63-͔ΒϦϯΫ͢ΔͱΫϨδοτΧʔυ͍͕ ͓ࢧ͍खଓ͖Τϥʔͱදࣔ͞Ε·͢ɻ Ͳ͏ʹ͔ͳΓ·ͤΜͰ͠ΐ͏͔ʁ
ϋογϡλάɹ+14$
ϋογϡλάɹ+14$
ϋογϡλάɹ+14$ ϠϚτϑΟφϯγϟϧ͍߹Θͤͨ Ұ෦εϚʔτϑΥϯͷ༷ʹΑΓ (PPHMFΞϓϦʗ:BIPPΞϓϦʹͯ৽نΟϯυΛ։͘ߏஙʹ͓ͯ͠Γ·͢ͱ ඞཁใʢύϥϝʔλʣ͕ൈ͚མͪͯ͠·͏ࣄ͕֬ೝ͞Ε͓ͯΓ·͢ɻ ղܾࡦͱக͠·ͯ͠ɺ৽نΟϯυΛ্ཱͪ͛ͳ͍Α͏ͳߏஙʹ มߋ͍͖ͨͩ·͢ͱɺ্هࣄൃੜ͠ͳ͘ͳΔͱͷࢥΘΕ·͢ɻ
ϋογϡλάɹ+14$ ࣗࣾʮμϯϩʔυൢചʯͷઓ 4USJQFΛͬͯΈΑ͏ͱࢥͬͨཧ༝ᶇ
ϋογϡλάɹ+14$ w ೖۚ֬ೝޙʹσʔλΛૹ͢Δʁ ٳΈͷରԠʁ தରԠʁ ग़ுதରԠʁ w ͕ͦͦࣗར༻ऀଆͩͬͨΒʁ w ෆਖ਼ར༻ͷՄೳੑͱͷτϨʔυΦϑ
ϋογϡλάɹ+14$ 1BZ1BMͰઓʂ
// read the post from PayPal system and add 'cmd'
$req = 'cmd=_notify-synch'; $tx_token = $_GET['tx']; $auth_token = "* αΠτͰൃߦ͞ΕΔIDτʔΫϯΛ͜͜ʹషΓ͚Δ *"; $req .= "&tx=$tx_token&at=$auth_token"; // post back to PayPal system to validate $header .= "POST /cgi-bin/webscr HTTP/1.0\r\n"; $header .= "Content-Type: application/x-www-form-urlencoded\r\n $header .= "Content-Length: " . strlen($req) . "\r\n\r\n"; $fp = fsockopen ('www.sandbox.paypal.com', 80, $errno, $errstr, // $fp = fsockopen ('www.paypal.com', 80, $errno, $errstr, 30); // $fp = fsockopen ('ssl://www.paypal.com', 443, $errno, $errst // Ͱ͖Ε HTTPS ʹͨ͠ํ͕ɺηΩϡϦςΟ͕ߴ·Δ. if (!$fp) { // HTTP ERROR echo "ERROR: HTTP error, [" . $errno . "] " . $errstr . "\n exit(1); } fputs ($fp, $header . $req); // read the body data $res = ''; $headerdone = false; while (!feof($fp)) { $line = fgets ($fp, 1024); if (strcmp($line, "\r\n") == 0) { // read the header $headerdone = true; } else if ($headerdone) { // header has been read. now read the contents $res .= $line; ϋογϡλάɹ+14$
ϋογϡλάɹ+14$ 1BZ1BMͰͷ࠳ં 1%5ʜ ɹ*1/ʜ ɹͳʹͦΕඒຯ͍͠ͷʁ
ϋογϡλάɹ+14$ 4USJQFͳΒͰ͖Δʁ ϚχϡΞϧӳޠ͚ͩͲɺʢ(PPHMFઌੜͷ͓͔͛ͰʣΘ͔Γ͍͢ײ৮Λಘͨ
ϋογϡλάɹ+14$ ॻ͍ͯΈͨɻ w DPOpHQIQΛಡΈࠐΉ w ໊ͱՁ֨Λ)5.-͔Β 1045Ͱड͚औΔ w ϥΠηϯε൪߸Λੜ w
ܾࡁྃޙɺϝʔϧΛૹ৴ w μϯϩʔυը໘ϔࣗಈసૹ ʢ50,&/ɺ*%Λ͢ʣ w μϯϩʔυը໘Ͱ*%Ͱ 63-Λදࣔʢ50,&/Ͱذʣ
ϋογϡλάɹ+14$ Ͱ͖ͨʂ IUUQTXXXKVYUBQPTJUJPOKQJNBHFVQMPBEVUJMJUZ
ϋογϡλάɹ+14$ ͱࢥͬͨΒʜ 4USJQFʹνϟʔδͰ͖͍ͯͳ͍͜ͱ͕໌ ʢςετڥͰͳ͘Ͱ͖͍ͯͨʣ
ϋογϡλάɹ+14$ αϙʔτʹ͍߹ΘͤͯΈΔ τʔΫϯ࡞͞Ε͍ͯ·͕͢ɺ νϟʔδ͕࡞͞Ε͍ͯͳ͍ͨΊɺࢧ͍͕͓ྃͯ͠Γ·ͤΜɻ "1*ʹͯऔಘ͞ΕͨτʔΫϯΛར༻͞Ε·͢ͱɺ νϟʔδ͢Δ͜ͱ͕Ͱ͖·͢ɻ νϟʔδΛ࡞͢Δύϥϝʔλʹ͖ͭ·ͯ͠ɺ ͪ͜ΒΛ͝ࢀর͍ͩ͘͞ IUUQTTUSJQFDPNEPDTBQJDSFBUF@DIBSHF
τʔΫϯ࡞͞Ε͍ͯ·͕͢ɺ νϟʔδ͕࡞͞Ε͍ͯͳ͍ͨΊɺࢧ͍͕͓ྃͯ͠Γ·ͤΜɻ "1*ʹͯऔಘ͞ΕͨτʔΫϯΛར༻͞Ε·͢ͱɺ νϟʔδ͢Δ͜ͱ͕Ͱ͖·͢ɻ νϟʔδΛ࡞͢Δύϥϝʔλʹ͖ͭ·ͯ͠ɺ ͪ͜ΒΛ͝ࢀর͍ͩ͘͞ IUUQTTUSJQFDPNEPDTBQJDSFBUF@DIBSHF ϋογϡλάɹ+14$ αϙʔτʹ͍߹ΘͤͯΈΔ ͪΐͬͱͳʹݴͬͯΔ͔Θ͔Μͳ͍
ϋογϡλάɹ+14$ Α͘ݟΔͱ ؊৺ͳ෦͕ ͬͦ͝Γൈ͚͍ͯͨ ʢͲͷλΠϛϯά͔ෆ໌ʣ ސ٬Λ࡞ DVTUPNFSa4USJQFa$VTUPNFSDSFBUF BSSBZ FNBJMFNBJM
TPVSDFUPLFO νϟʔδΛ࡞ DIBSHFa4USJQFa$IBSHFDSFBUF BSSBZ EFTDSJQUJPOQSPEVDU DVTUPNFSDVTUPNFSJE BNPVOUQSJDF DVSSFODZKQZ
ϋογϡλάɹ+14$ ࣮ࡍʹͬͨ͜ͱ μογϡϘʔυͷʮ։ൃऀʯϝχϡʔͷʮϩάʯ͔Β֘ͷUPLFOTΛ։͘ $IFDLPVUKT͔Βͷ1045ʹର͠Ԡͨ͠༰ʹ͋ΔʮJEUPL@IPHFIPHF ʯΛݟ͚ͭɺ UPL@IPHFIPHF෦Λίϐʔ DIBSHFQIQͷʮސ٬Λ࡞ʯʹ͋ΔTPVSDFʹͦΕΛهೖ
ʢ1045༰ʹ͋ΔϝʔϧΞυϨεFNBJMʹهೖʣ ʮνϟʔδΛ࡞ʯͷEFTDSJQUJPOͱBNPVOUʹهೖ ϝʔϧૹ৴ͳͲෆཁͳ෦আ DIBSHFQIQΛDIBSHF@GVHBQIQͳͲͱϦωʔϜͯ͠Ξοϓϩʔυ ϒϥβ͔ΒDIBSHF@GVHBQIQʹΞΫηε ʢࢲ͜͜Ͱྃը໘ϦμΠϨΫτ͢ΔΑ͏ʹ͠·ͨ͠ʣ
ϋογϡλάɹ+14$ ࣮ࡍʹͬͨ͜ͱ μογϡϘʔυͷʮ։ൃऀʯϝχϡʔͷʮϩάʯ͔Β֘ͷUPLFOTΛ։͘ $IFDLPVUKT͔Βͷ1045ʹର͠Ԡͨ͠༰ʹ͋ΔʮJEUPL@IPHFIPHF ʯΛݟ͚ͭɺ UPL@IPHFIPHF෦Λίϐʔ DIBSHFQIQͷʮސ٬Λ࡞ʯʹ͋ΔTPVSDFʹͦΕΛهೖ
ʢ1045༰ʹ͋ΔϝʔϧΞυϨεFNBJMʹهೖʣ ʮνϟʔδΛ࡞ʯͷEFTDSJQUJPOͱBNPVOUʹهೖ ϝʔϧૹ৴ͳͲෆཁͳ෦আ DIBSHFQIQΛDIBSHF@GVHBQIQͳͲͱϦωʔϜͯ͠Ξοϓϩʔυ ϒϥβ͔ΒDIBSHF@GVHBQIQʹΞΫηε ʢࢲ͜͜Ͱྃը໘ϦμΠϨΫτ͢ΔΑ͏ʹ͠·ͨ͠ʣ Θ͔Δ·Ͱαϙʔτʹ࿈བྷ ϚχϡΞϧΛ܁Γฦ͠ಡΉ ͱʹ͔͘ςετڥͰ֬ೝ
ϋογϡλάɹ+14$ ࣮ࡍɺͲ͏ͩͬͨͷ͔
ϋογϡλάɹ+14$ w ࢥ͍ͬͯͨΑΓ؆୯ɺ͔ࣗ͠༝ʹͰ͖ͨ w ͨͩɺ+BWB4DSJQUͰ؆୯ಋೖʂͳهࣄ͕ଟ͗͢ w DIBSHFQIQ͚ͩͰࢥ͍ͷ··ʹΧελϚΠζ w ςετϞʔυ͔ΒͷΓସ͑؆୯ͩͬͨ w
αϙʔτʢਗ਼͞Μʣʹͱ͓ͯੈʹͳͬͨ
ϋογϡλάɹ+14$ 4MBDLʹ௨͕དྷΔΑ͏ʹͯ͠Έͨ
ϋογϡλάɹ+14$ ͱʹָ͔͍͘͠ʂ
ϋογϡλάɹ+14$ ͍ؒଓ͚͍ͯΔ1BZ1BM͔Β4USJQFʁ ʙ͋ΔΣϒσΟϨΫλʔͷيʙ גࣜձࣾδϟΫελϙδγϣϯɹࢁɹହ࢙ Let’s TRY!