JP_Stripes Connect 2019 登壇資料

42bb3169f708bebf80653cbce796c311?s=47 Yausufmi Nishiyama
March 21, 2019
910

JP_Stripes Connect 2019 登壇資料

昨年夏の「10年間使い続けているPayPalからStripeへ? 〜 あるウェブディレクターの軌跡 〜」には実は続編があった?

42bb3169f708bebf80653cbce796c311?s=128

Yausufmi Nishiyama

March 21, 2019
Tweet

Transcript

  1. ೥ؒ࢖͍ଓ͚͍ͯΔ 1BZ1BM͔Β4USJQF΁ʁ ʙ͋Δ΢ΣϒσΟϨΫλʔͷي੻ʙ +1@4USJQFT$POOFDU BUΤϜΦʔςοΫεגࣜձࣾ

  2. ϋογϡλάɹ+14$ ࣗݾ঺հ

  3. ϋογϡλάɹ+14$ ࡾ౓ͷ൧ΑΓ৯΂Δ͜ͱɺҿΉ͜ͱ͕޷͖ ੢ࢁɹହ࢙ʢʹ͠΍·ɹ΍͢;Έʣ גࣜձࣾδϟΫελϙδγϣϯɹ୅දऔక໾ʗσΟϨΫλʔ ೥݄૑ۀɺ೥݄๏ਓԽʢ๏ਓظ໨ʣ .PWBCMF5ZQFΛϓϥοτϑΥʔϜʹ΢ΣϒαΠτΛߏங ೥ɹ1SP/FUʢγοΫεɾΞύʔτࣾύʔτφʔʣՃໍ ೥ɹ.5՜ҔΛελʔτ ೥ɹ.5%%$.FFUVQ)0,,"*%0։࠵ ೥ɹ΢ΣϒσΟϨΫγϣϯݚڀձʢԾশʣΛελʔτ

    ೥ɹ.5%%$.FFUVQ)0,,"*%0։࠵
  4. ϋογϡλάɹ+14$ ๺ւಓࡳຈࢢ͔Βདྷ·ͨ͠

  5. ϋογϡλάɹ+14$ ͓ؾʹೖΓͷ৔ॴ େऺञ৔Զྲྀ ϏʔϧʢαοϙϩΫϥγοΫʣ ഋԁʢ੫ผʣ ೥݄ͷൢച਺ ͓Αͦ ഋʢళฮʣ

  6. ϋογϡλάɹ+14$ ͓ؾʹೖΓͷ৔ॴ େऺञ৔Զྲྀ ݩ૆βϯΪˍ৽βϯΪ

  7. ϋογϡλάɹ+14$ δϟΫελϙδγϣϯ

  8. ϋογϡλάɹ+14$ σΟϨΫλʔɹ໊ σβΠφʔʢ)5.-$44ΤϯδχΞʣ໊ .5ςϯϓϨʔτΤϯδχΞɹ໊ ओͳۀ຿ ɾ΢ΣϒαΠτߏஙʗ΢ΣϒίϯαϧςΟϯά ɾࣗࣾ։ൃ঎඼ൢച ɾ΢ΣϒγεςϜ։ൃ ɾҹ࡮෺σβΠϯ΄͔ IUUQTXXXMBUODPN

  9. ϋογϡλάɹ+14$ ຊΠϕϯτͷը૾ܥσβΠϯΛ୲౰

  10. ϋογϡλάɹ+14$ ࣗࣾϓϩμΫτ4,&-&50/$"35ͷ։ൃɾൢച

  11. ϋογϡλάɹ+14$ 4,&-&50/$"35 w ೥݄ϦϦʔε w )5.-ςϯϓϨʔτࣜͷγϣοϐϯάΧʔτ w ओʹ΢ΣϒσβΠφʔ͞Μ΍΢Σϒ੍࡞ձࣾ޲͚ w ϓϥάΠϯػߏʹΑΔ֦ுੑ

    w ൢച૯਺͓Αͦຊ
  12. ϋογϡλάɹ+14$ %ZOBNJD1SFWJFX *NBHF6QMPBE6UJMJUZ .PWBCMF5ZQF༻ϓϥάΠϯͷ։ൃɾൢച

  13. ϋογϡλάɹ+14$ *NBHF6QMPBE6UJMJUZ w ೥݄ϦϦʔε w .PWBCMF5ZQFͷը૾ΞοϓϩʔυػೳΛڧԽ w ݸਓແঈ൛ɺ௨ৗ൛ͱ1SP൛Λఏڙ w ൢച૯਺͓Αͦຊ

  14. ϋογϡλάɹ+14$ %ZOBNJD1SFWJFX w ೥݄ϦϦʔε w .PWBCMF5ZQFͷϓϨϏϡʔػೳΛڧԽ w ௨ৗ൛ͱ1SP൛Λఏڙ w ൢച૯਺͓Αͦຊ

  15. ϋογϡλάɹ+14$ ࠓ೔ɺօ͞Μʹ͓࿩͢Δ͜ͱ

  16. ϋογϡλάɹ+14$ 4USJQFΛར༻͢Δ͜ͱͰɺ ϊϯϓϩάϥϚʔͳϫλγͰ΋ ࢥ͍ͬͯͨΑΓ΋ͣͬͱ؆୯ʹ ΍Γ͔ͨͬͨ͜ͱ͕࣮ݱͰ͖ͨ

  17. ϋογϡλάɹ+14$ ͜Ε·Ͱར༻͖ܾͯͨ͠ࡁαʔϏε

  18. ϋογϡλάɹ+14$

  19. ϋογϡλάɹ+14$ 1BZ1BM w ೥ɺ·ͩݸਓࣄۀओ w &$αΠτߏஙͷґཔ͕૿͖͑ͯͨ w Ͱ͖Δ͚ͩܦඅ͸͔͚ͨ͘ͳ͍ w ςετ؀ڥʢ4BOECPYʣ͕ར༻Ͱ͖ͨ

    w "1*Ͱ͍Ζ͍ΖͰ͖ͦ͏
  20. ϋογϡλάɹ+14$

  21. ϋογϡλάɹ+14$ Ϋϩωί8&#ίϨΫτ w ओʹΫϥΠΞϯτͷ&$αΠτͰಋೖ w ֹ݄ҡ࣋අ͕͔͔Βͳ͍ w ঎඼഑ૹ·ͰҰ؏Ͱ͖Δ w ୅Ҿ͖Ͱ΋ΫϨδοτΧʔυܾࡁ͕ར༻Ͱ͖Δ

    w Ϋϩωίͱ͍͏҆৺ײ
  22. ϋογϡλάɹ+14$ 4USJQFΛ࢖ͬͯΈΑ͏ͱࢥͬͨཧ༝

  23. ϋογϡλάɹ+14$ 1BZ1BMޱ࠲ͷ໰୊ 4USJQFΛ࢖ͬͯΈΑ͏ͱࢥͬͨཧ༝ᶃ

  24. ϋογϡλάɹ+14$ 1BZ1BMޱ࠲ʹೖۚ ໾һି෇ ๏ਓޱ࠲΁ৼସ

  25. ϋογϡλάɹ+14$ 1BZ1BMձһొ࿥ͷ໰୊ 4USJQFΛ࢖ͬͯΈΑ͏ͱࢥͬͨཧ༝ᶄ

  26. ϋογϡλάɹ+14$ 1BZ1BMձһొ࿥͕ඞཁ 1BZ1BMձһ͡Όͳ͍ ۜߦৼࠐͰࢧ෷͍͍ͨ

  27. ϋογϡλάɹ+14$ 1BZ1BMख਺ྉͷ໰୊ 4USJQFΛ࢖ͬͯΈΑ͏ͱࢥͬͨཧ༝ᶅ

  28. ϋογϡλάɹ+14$ *NBHF6QMPBE6UJMJUZ1SP͕ചΕͨ৔߹ ച্ ख਺ྉ ʢ݄ؒച্ສԁະຬʣ Ҿग़ख਺ྉ ʢສԁະຬʣ ࠩҾऩೖ 1BZ1BM 

    ԁ  ԁ
 ʢ ԁʣ ԁ  ԁ 4USJQF  ԁ  ԁ ʢʣ  ԁ ఺͋ͨΓͷֹࠩԁʂ
  29. ϋογϡλάɹ+14$ ࠓ·ͰʹऔΓ͜΅ͯ͠͠·ͬͨ૯ֹ  ԁҎ্ʂ

  30. ϋογϡλάɹ+14$ େऺञ৔Զྲྀͷ ੜϏʔϧʢΫϥγοΫʣ ഋҎ্

  31. ϋογϡλάɹ+14$ Ϋϩωί8&#ίϨΫτͷॏେͳ໰୊ 4USJQFΛ࢖ͬͯΈΑ͏ͱࢥͬͨཧ༝ᶆ

  32. ϋογϡλάɹ+14$ ͋Δ೔ɺΫϥΠΞϯτ͔Βಧ͍ͨϝʔϧ 'BDFCPPL΍-*/&ʹషΓ෇͚ͨ ฐࣾ63-͔ΒϦϯΫ͢ΔͱΫϨδοτΧʔυ෷͍͕ ͓ࢧ෷͍खଓ͖Τϥʔͱදࣔ͞Ε·͢ɻ Ͳ͏ʹ͔ͳΓ·ͤΜͰ͠ΐ͏͔ʁ

  33. ϋογϡλάɹ+14$

  34. ϋογϡλάɹ+14$

  35. ϋογϡλάɹ+14$ ϠϚτϑΟφϯγϟϧ΁໰͍߹Θͤͨ Ұ෦εϚʔτϑΥϯͷ࢓༷ʹΑΓ (PPHMFΞϓϦʗ:BIPPΞϓϦʹͯ৽ن΢Οϯυ΢Λ։͘ߏஙʹ͓ͯ͠Γ·͢ͱ ඞཁ৘ใʢύϥϝʔλʣ͕ൈ͚མͪͯ͠·͏ࣄ৅͕֬ೝ͞Ε͓ͯΓ·͢ɻ ղܾࡦͱக͠·ͯ͠͸ɺ৽ن΢Οϯυ΢Λ্ཱͪ͛ͳ͍Α͏ͳߏஙʹ มߋ͍͖ͨͩ·͢ͱɺ্هࣄ৅͸ൃੜ͠ͳ͘ͳΔ΋ͱͷࢥΘΕ·͢ɻ

  36. ϋογϡλάɹ+14$ ࣗࣾ੡඼ʮμ΢ϯϩʔυൢചʯ΁ͷ௅ઓ 4USJQFΛ࢖ͬͯΈΑ͏ͱࢥͬͨཧ༝ᶇ

  37. ϋογϡλάɹ+14$ w ೖۚ֬ೝޙʹσʔλΛૹ෇͢Δʁ
 ٳΈͷ೔΋ରԠʁ
 ໷த΋ରԠʁ
 ग़ுத΋ରԠʁ w ͦ΋ͦ΋ࣗ෼͕ར༻ऀଆͩͬͨΒʁ w ෆਖ਼ར༻ͷՄೳੑͱͷτϨʔυΦϑ

  38. ϋογϡλάɹ+14$ 1BZ1BMͰ௅ઓʂ

  39. // 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$
  40. ϋογϡλάɹ+14$ 1BZ1BMͰͷ࠳ં 1%5ʜ ɹ*1/ʜ ɹͳʹͦΕඒຯ͍͠ͷʁ

  41. ϋογϡλάɹ+14$ 4USJQFͳΒͰ͖Δʁ ϚχϡΞϧ͸ӳޠ͚ͩͲɺʢ(PPHMFઌੜͷ͓͔͛ͰʣΘ͔Γ΍͍͢ײ৮Λಘͨ

  42. ϋογϡλάɹ+14$ ॻ͍ͯΈͨɻ w DPOpHQIQΛಡΈࠐΉ w ঎඼໊ͱՁ֨Λ)5.-͔Β
 1045Ͱड͚औΔ w ϥΠηϯε൪߸Λੜ੒ w

    ܾࡁ׬ྃޙɺϝʔϧΛૹ৴ w μ΢ϯϩʔυը໘ϔࣗಈసૹ
 ʢ50,&/ɺ঎඼*%Λ౉͢ʣ w μ΢ϯϩʔυը໘Ͱ঎඼*%Ͱ
 63-Λදࣔʢ50,&/Ͱ෼ذʣ
  43. ϋογϡλάɹ+14$ Ͱ͖ͨʂ IUUQTXXXKVYUBQPTJUJPOKQJNBHFVQMPBEVUJMJUZ

  44. ϋογϡλάɹ+14$ ͱࢥͬͨΒʜ 4USJQFʹνϟʔδͰ͖͍ͯͳ͍͜ͱ͕൑໌ ʢςετ؀ڥͰ͸໰୊ͳ͘Ͱ͖͍ͯͨʣ

  45. ϋογϡλάɹ+14$ αϙʔτʹ໰͍߹ΘͤͯΈΔ τʔΫϯ͸࡞੒͞Ε͍ͯ·͕͢ɺ νϟʔδ͕࡞੒͞Ε͍ͯͳ͍ͨΊɺࢧ෷͍͕׬͓ྃͯ͠Γ·ͤΜɻ "1*ʹͯऔಘ͞ΕͨτʔΫϯΛར༻͞Ε·͢ͱɺ νϟʔδ͢Δ͜ͱ͕Ͱ͖·͢ɻ νϟʔδΛ࡞੒͢Δύϥϝʔλʹ͖ͭ·ͯ͠͸ɺ ͪ͜ΒΛ͝ࢀর͍ͩ͘͞ IUUQTTUSJQFDPNEPDTBQJDSFBUF@DIBSHF

  46. τʔΫϯ͸࡞੒͞Ε͍ͯ·͕͢ɺ νϟʔδ͕࡞੒͞Ε͍ͯͳ͍ͨΊɺࢧ෷͍͕׬͓ྃͯ͠Γ·ͤΜɻ "1*ʹͯऔಘ͞ΕͨτʔΫϯΛར༻͞Ε·͢ͱɺ νϟʔδ͢Δ͜ͱ͕Ͱ͖·͢ɻ νϟʔδΛ࡞੒͢Δύϥϝʔλʹ͖ͭ·ͯ͠͸ɺ ͪ͜ΒΛ͝ࢀর͍ͩ͘͞ IUUQTTUSJQFDPNEPDTBQJDSFBUF@DIBSHF ϋογϡλάɹ+14$ αϙʔτʹ໰͍߹ΘͤͯΈΔ ͪΐͬͱͳʹݴͬͯΔ͔Θ͔Μͳ͍

  47. ϋογϡλάɹ+14$ Α͘ݟΔͱ ؊৺ͳ෦෼͕ ͬͦ͝Γൈ͚͍ͯͨ ʢͲͷλΠϛϯά͔ෆ໌ʣ ސ٬Λ࡞੒ DVTUPNFSa4USJQFa$VTUPNFSDSFBUF BSSBZ  FNBJMFNBJM

     TPVSDFUPLFO  νϟʔδΛ࡞੒ DIBSHFa4USJQFa$IBSHFDSFBUF BSSBZ  EFTDSJQUJPOQSPEVDU  DVTUPNFSDVTUPNFSJE  BNPVOUQSJDF  DVSSFODZKQZ 
  48. ϋογϡλάɹ+14$ ࣮ࡍʹ΍ͬͨ͜ͱ  μογϡϘʔυͷʮ։ൃऀʯϝχϡʔͷʮϩάʯ͔Β֘౰ͷUPLFOTΛ։͘  $IFDLPVUKT͔Βͷ1045ʹର͠Ԡ౴ͨ͠಺༰ʹ͋ΔʮJEUPL@IPHFIPHF ʯΛݟ͚ͭɺ UPL@IPHFIPHF෦෼Λίϐʔ  DIBSHFQIQͷʮސ٬Λ࡞੒ʯʹ͋ΔTPVSDFʹͦΕΛ௚઀هೖ


    ʢ1045಺༰ʹ͋ΔϝʔϧΞυϨε΋FNBJMʹهೖʣ  ʮνϟʔδΛ࡞੒ʯͷEFTDSJQUJPOͱBNPVOUʹ΋௚઀هೖ  ϝʔϧૹ৴ͳͲෆཁͳ෦෼͸࡟আ  DIBSHFQIQΛDIBSHF@GVHBQIQͳͲͱϦωʔϜͯ͠Ξοϓϩʔυ  ϒϥ΢β͔ΒDIBSHF@GVHBQIQʹΞΫηε
 ʢࢲ͸͜͜Ͱ׬ྃը໘΁ϦμΠϨΫτ͢ΔΑ͏ʹ͠·ͨ͠ʣ
  49. ϋογϡλάɹ+14$ ࣮ࡍʹ΍ͬͨ͜ͱ  μογϡϘʔυͷʮ։ൃऀʯϝχϡʔͷʮϩάʯ͔Β֘౰ͷUPLFOTΛ։͘  $IFDLPVUKT͔Βͷ1045ʹର͠Ԡ౴ͨ͠಺༰ʹ͋ΔʮJEUPL@IPHFIPHF ʯΛݟ͚ͭɺ UPL@IPHFIPHF෦෼Λίϐʔ  DIBSHFQIQͷʮސ٬Λ࡞੒ʯʹ͋ΔTPVSDFʹͦΕΛ௚઀هೖ


    ʢ1045಺༰ʹ͋ΔϝʔϧΞυϨε΋FNBJMʹهೖʣ  ʮνϟʔδΛ࡞੒ʯͷEFTDSJQUJPOͱBNPVOUʹ΋௚઀هೖ  ϝʔϧૹ৴ͳͲෆཁͳ෦෼͸࡟আ  DIBSHFQIQΛDIBSHF@GVHBQIQͳͲͱϦωʔϜͯ͠Ξοϓϩʔυ  ϒϥ΢β͔ΒDIBSHF@GVHBQIQʹΞΫηε
 ʢࢲ͸͜͜Ͱ׬ྃը໘΁ϦμΠϨΫτ͢ΔΑ͏ʹ͠·ͨ͠ʣ  Θ͔Δ·Ͱαϙʔτʹ࿈བྷ  ϚχϡΞϧΛ܁Γฦ͠ಡΉ  ͱʹ͔͘ςετ؀ڥͰ֬ೝ
  50. ϋογϡλάɹ+14$ ࣮ࡍɺͲ͏ͩͬͨͷ͔

  51. ϋογϡλάɹ+14$ w ࢥ͍ͬͯͨΑΓ΋؆୯ɺ͔͠΋ࣗ༝ʹͰ͖ͨ w ͨͩɺ+BWB4DSJQUͰ؆୯ಋೖʂͳهࣄ͕ଟ͗͢ w DIBSHFQIQ͚ͩͰ΋ࢥ͍ͷ··ʹΧελϚΠζ w ςετϞʔυ͔Βͷ੾Γସ͑΋؆୯ͩͬͨ w

    αϙʔτʢਗ਼຤͞Μʣʹͱͯ΋͓ੈ࿩ʹͳͬͨ
  52. ϋογϡλάɹ+14$ 4MBDLʹ௨஌͕དྷΔΑ͏ʹͯ͠Έͨ

  53. ϋογϡλάɹ+14$ ͱʹָ͔͍͘͠ʂ

  54. ϋογϡλάɹ+14$ ೥ؒ࢖͍ଓ͚͍ͯΔ1BZ1BM͔Β4USJQF΁ʁ ʙ͋Δ΢ΣϒσΟϨΫλʔͷي੻ʙ גࣜձࣾδϟΫελϙδγϣϯɹ੢ࢁɹହ࢙ Let’s TRY!