$30 off During Our Annual Pro Sale. View Details »

JP_Stripes Connect 2019 登壇資料

Yausufmi Nishiyama
March 21, 2019
1.4k

JP_Stripes Connect 2019 登壇資料

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

Yausufmi Nishiyama

March 21, 2019
Tweet

More Decks by Yausufmi Nishiyama

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

  4. ϋογϡλάɹ+14$
    ๺ւಓࡳຈࢢ͔Βདྷ·ͨ͠

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  22. ϋογϡλάɹ+14$
    4USJQFΛ࢖ͬͯΈΑ͏ͱࢥͬͨཧ༝

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    ʢԁʣ
    ԁ ԁ
    4USJQF ԁ
    ԁ
    ʢʣ
    ԁ
    ఺͋ͨΓͷֹࠩԁʂ

    View Slide

  29. ϋογϡλάɹ+14$
    ࠓ·ͰʹऔΓ͜΅ͯ͠͠·ͬͨ૯ֹ
    ԁҎ্ʂ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  37. ϋογϡλάɹ+14$
    w ೖۚ֬ೝޙʹσʔλΛૹ෇͢Δʁ

    ٳΈͷ೔΋ରԠʁ

    ໷த΋ରԠʁ

    ग़ுத΋ରԠʁ
    w ͦ΋ͦ΋ࣗ෼͕ར༻ऀଆͩͬͨΒʁ
    w ෆਖ਼ར༻ͷՄೳੑͱͷτϨʔυΦϑ

    View Slide

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

    View Slide

  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$

    View Slide

  40. ϋογϡλάɹ+14$
    1BZ1BMͰͷ࠳ં
    1%5ʜ ɹ*1/ʜ ɹͳʹͦΕඒຯ͍͠ͷʁ

    View Slide

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

    View Slide

  42. ϋογϡλάɹ+14$
    ॻ͍ͯΈͨɻ
    w DPOpHQIQΛಡΈࠐΉ
    w ঎඼໊ͱՁ֨Λ)5.-͔Β

    1045Ͱड͚औΔ
    w ϥΠηϯε൪߸Λੜ੒
    w ܾࡁ׬ྃޙɺϝʔϧΛૹ৴
    w μ΢ϯϩʔυը໘ϔࣗಈసૹ

    ʢ50,&/ɺ঎඼*%Λ౉͢ʣ
    w μ΢ϯϩʔυը໘Ͱ঎඼*%Ͱ

    63-Λදࣔʢ50,&/Ͱ෼ذʣ

    View Slide

  43. ϋογϡλάɹ+14$
    Ͱ͖ͨʂ
    IUUQTXXXKVYUBQPTJUJPOKQJNBHFVQMPBEVUJMJUZ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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



    νϟʔδΛ࡞੒
    DIBSHFa4USJQFa$IBSHFDSFBUF BSSBZ
    EFTDSJQUJPOQSPEVDU
    DVTUPNFSDVTUPNFSJE
    BNPVOUQSJDF
    DVSSFODZKQZ



    View Slide

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

    ʢ1045಺༰ʹ͋ΔϝʔϧΞυϨε΋FNBJMʹهೖʣ
    ʮνϟʔδΛ࡞੒ʯͷEFTDSJQUJPOͱBNPVOUʹ΋௚઀هೖ
    ϝʔϧૹ৴ͳͲෆཁͳ෦෼͸࡟আ
    DIBSHFQIQΛDIBSHF@GVHBQIQͳͲͱϦωʔϜͯ͠Ξοϓϩʔυ
    ϒϥ΢β͔ΒDIBSHF@GVHBQIQʹΞΫηε

    ʢࢲ͸͜͜Ͱ׬ྃը໘΁ϦμΠϨΫτ͢ΔΑ͏ʹ͠·ͨ͠ʣ

    View Slide

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

    ʢ1045಺༰ʹ͋ΔϝʔϧΞυϨε΋FNBJMʹهೖʣ
    ʮνϟʔδΛ࡞੒ʯͷEFTDSJQUJPOͱBNPVOUʹ΋௚઀هೖ
    ϝʔϧૹ৴ͳͲෆཁͳ෦෼͸࡟আ
    DIBSHFQIQΛDIBSHF@GVHBQIQͳͲͱϦωʔϜͯ͠Ξοϓϩʔυ
    ϒϥ΢β͔ΒDIBSHF@GVHBQIQʹΞΫηε

    ʢࢲ͸͜͜Ͱ׬ྃը໘΁ϦμΠϨΫτ͢ΔΑ͏ʹ͠·ͨ͠ʣ
    Θ͔Δ·Ͱαϙʔτʹ࿈བྷ
    ϚχϡΞϧΛ܁Γฦ͠ಡΉ
    ͱʹ͔͘ςετ؀ڥͰ֬ೝ

    View Slide

  50. ϋογϡλάɹ+14$
    ࣮ࡍɺͲ͏ͩͬͨͷ͔

    View Slide

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

    View Slide

  52. ϋογϡλάɹ+14$
    4MBDLʹ௨஌͕དྷΔΑ͏ʹͯ͠Έͨ

    View Slide

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

    View Slide

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

    View Slide