Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kibelaの決済の仕組み

Michikawa Masayoshi
August 03, 2018
730

 Kibelaの決済の仕組み

Michikawa Masayoshi

August 03, 2018
Tweet

Transcript

  1. ಓ઒ խՅ @michiomochi Michikawa Masayoshi ܦྺ 2016೥4݄ Ϗοτδϟʔχʔೖࣾ Kibela։ൃதʂˡ ࠓ͜͜

    2014೥4݄ ׽ํσεΫೖࣾ (Cookpadؔ࿈ձࣾ) 2011೥ʙ ͍ΖΜͳITاۀΛసʑͱ 2009೥4݄ ੕໺Ϧκʔτೖࣾ (೔ຊྉཧ΍ͬͯ·ͨ͠) גࣜձࣾϏοτδϟʔχʔ
  2. KibelaͷྉۚઃܭϙϦγʔ • ެฏʹ՝ۚ͢Δ • ΞΫηε͕ͳ͍Ϣʔβʔ෼ͷར༻ྉ͸੥ٻ͠ͳ͍ • খ͞ͳ૊৫ΛԠԉ͢Δ • 5໊ҎԼͷνʔϜ͸ͣͬͱແྉͰ࢖͑Δ •

    ٕज़ίϛϡχςΟ΍ڭҭػؔ౳ͷඇӦརஂମ͸ར༻ਓ਺ ʹؔΘΒͣແྉ • ެฏʹબ୒ͯ͠΋Β͑ΔΑ͏ʹ͢Δ • ଞࣾ੡඼ͱൺֱݕ౼ͯ͠΋Β͏Α͏ʹ͢Δ ͲͷΑ͏ʹߟ͑ྉۚઃܭΛߦ͔ͬͨ
  3. KibelaͷྉܾۚࡁͷྲྀΕ 1. νʔϜͷ࡞੒ 2. Freeϓϥϯ͔ΒStandardϓϥϯ΁ΞοϓάϨʔυ • 2ϲ݄ؒ͸τϥΠΞϧظؒ 3. τϥΠΞϧظ͕ؒऴΘΔͱಉ࣌ʹݱࡏͷϢʔβʔ਺෼ͷྉܾۚ ࡁΛ࣮ߦ

    4. Ϣʔβʔ௥Ճͷ౓ʹ௥Ճ෼Λཌ೔ͷAM 9:00ʹ·ͱΊͯ੥ٻ 5. SubscriptionͷకΊ೔͕͖ͨΒΞΫηεͷͳ͔ͬͨϢʔβʔ਺ ෼ͷྉۚΛKibelaϙΠϯτͰؐݩ 6. 3ʹ໭ΓɺҎԼ܁Γฦ͠
  4. ྉܾۚࡁΛͲͷΑ͏ͳ࢓૊ΈͰ ࣮ݱ͍ͯ͠Δ͔ ҎԼͷ෦෼Λ঺հ͠·͢ 4. Ϣʔβʔ௥Ճͷ౓ʹ௥Ճ෼Λཌ೔ͷAM 9:00ʹ·ͱΊͯ੥ٻ 5. SubscriptionͷకΊ೔͕͖ͨΒΞΫηεͷͳ͔ͬͨϢʔβʔ਺ ෼ͷྉۚΛKibelaϙΠϯτͰؐݩ 1.

    νʔϜͷ࡞੒ 2. Freeϓϥϯ͔ΒStandardϓϥϯ΁ΞοϓάϨʔυ 3. τϥΠΞϧظ͕ؒऴΘΔͱಉ࣌ʹݱࡏͷϢʔβʔ਺෼ͷྉܾۚ ࡁΛ࣮ߦ 6. 3ʹ໭ΓɺҎԼ܁Γฦ͠
  5. Ϣʔβʔ௥Ճͷ౓ʹ௥Ճ෼Λཌ೔ͷAM 9:00ʹ ·ͱΊͯ੥ٻ ͦ΋ͦ΋ͳͥ͜Μͳ͜ͱΛ͍ͯ͠Δͷ͔ • Kibela͸Ϣʔβʔ਺ʹΑΓ੥ٻֹ͕มΘΔ • ͭ·Γैྔ՝ۚͷαʔϏε • Ωϟογϡϑϩʔతʹɺ·ͨऔΓͬͺ͙ΕϦεΫΛճආ͢Δ

    ͨΊʹઌ෷͍ʹ͍ͨ͠ • Ωϟογϡϑϩʔత = ͓͕ۚग़དྷΔ͚ͩૣ͘ೖ͖ͬͯͯ΄ ͍͠ • খ͍͞ձࣾʹͱͬͯݱۚΛૣ͘ड͚औΕΔͷ͸ඇৗʹେࣄ • ैྔ՝ۚαʔϏεͰઌ෷͍ʹ͢Δͷ͸޻෉͕ඞཁ
  6. Ϣʔβʔ௥Ճͷ౓ʹ௥Ճ෼Λཌ೔ͷAM 9:00ʹ ·ͱΊͯ੥ٻ • Ϣʔβʔ࡞੒ͱಉ࣌ʹݱࡏͷPlanͱಉ͡੥ٻֹͷInvoiceItem Λ࡞੒ • InvoiceItem͸࡞੒͚ͨͩ͠Ͱ͸ܾࡁ͞Εͳ͍ • ຖ೔AM

    9:00ʹInvoiceItem͕ͳ͍͔֬ೝ͠ɺ͋Ε͹InvoiceΛ ࡞੒͢ΔόονΛ࣮ߦ͢Δ • όονͷ࣮ߦʹ͸Kuroko2Λ࠾༻ • Invoice͕࡞੒͞ΕΔͱStripeଆͰҰఆ࣌ؒޙʹܾࡁ͕ߦΘΕ Δ ࣮ݱͷ͔ͨ͠
  7. • web-based job scheduler / workflow engine. • ҰݴͰ͍͏ͱ͍͢͝cron •

    δϣϒͷ࣮ߦΛ͏·͍۩߹ʹ΍ͬͯ͘ΕΔ • δϣϒͷ࣮ߦ։࢝ɺ੒ޭɺࣦഊ౳Λϝʔϧ΍SlackͰ௨஌͢ Δػೳ͕͋Δ • Web UI͕͋Δ • Web্Ͱδϣϒͷઃఆɺࣦഊͨ͠δϣϒͷϦτϥΠ͕Ͱ͖Δ • ܾࡁ౳ͷॏཁͳjob͸cronͰ࣮ߦ͢Δͷ͸৺ڐͳ͍ https://github.com/cookpad/kuroko2
  8. ྉܾۚࡁΛͲͷΑ͏ͳ࢓૊ΈͰ ࣮ݱ͍ͯ͠Δ͔ ҎԼͷ෦෼Λ঺հ͠·͢ 5. SubscriptionͷకΊ೔͕͖ͨΒΞΫηεͷͳ͔ͬͨϢʔβʔ਺ ෼ͷྉۚΛKibelaϙΠϯτͰؐݩ 1. νʔϜͷ࡞੒ 2. Freeϓϥϯ͔ΒStandardϓϥϯ΁ΞοϓάϨʔυ

    3. τϥΠΞϧظ͕ؒऴΘΔͱಉ࣌ʹݱࡏͷϢʔβʔ਺෼ͷྉܾۚ ࡁΛ࣮ߦ 4. Ϣʔβʔ௥Ճͷ౓ʹ௥Ճ෼Λཌ೔ͷAM 9:00ʹ·ͱΊͯ੥ٻ 6. 3ʹ໭ΓɺҎԼ܁Γฦ͠
  9. KibelaͷྉۚઃܭϙϦγʔ • খ͞ͳ૊৫ΛԠԉ͢Δ • 5໊ҎԼͷνʔϜ͸ͣͬͱແྉͰ࢖͑Δ • ٕज़ίϛϡχςΟ΍ڭҭػؔ౳ͷඇӦརஂମ͸ར ༻ਓ਺ʹؔΘΒͣແྉ • ެฏʹબ୒ͯ͠΋Β͑ΔΑ͏ʹ͢Δ

    • ଞࣾ੡඼ͱൺֱݕ౼ͯ͠΋Β͏Α͏ʹ͢Δ ͲͷΑ͏ʹߟ͑ྉۚઃܭΛߦ͔ͬͨ • ެฏʹ՝ۚ͢Δ • ΞΫηε͕ͳ͍Ϣʔβʔ෼ͷར༻ྉ͸੥ٻ͠ͳ͍
  10. SubscriptionͷకΊ೔͕͖ͨΒΞΫηεͷͳ͔ͬ ͨϢʔβʔ਺෼ͷྉۚΛKibelaϙΠϯτͰؐݩ • Stripeʹ͸Account Balanceͱ͍͏ػೳ͕͋Δ • ܾࡁ͕ߦΘΕΔࡍʹ༏ઌతʹ࢖ΘΕΔΫϨδοτ • KibelaϙΠϯτ =

    Account Balance • SubscriptionͷకΊ೔͕͖ͯInvoice͕࡞੒͞ΕͨࡍʹStripe͔ ΒInvoice.created Webhook͕ඈΜͰ͘Δ • Invoice͸࡞੒͞Εͯ΋͙ܾ͢ࡁ͕࣮ߦ͞ΕΔΘ͚Ͱ͸ͳ͍ • ܾࡁ͕࣮ߦ͞ΕΔલʹInvoice.createdΛhookͯ͠Account BalanceΛ෇༩͢Δ ࣮ݱͷ͔ͨ͠
  11. ੥ٻॻ෷͍ʹରԠ͠Α͏ͱ͍ͯ͠·͢ ࣮ݱํ๏ • SubscriptionͷbillingઃఆΛAutomatically ʙ͔ΒEmail ʙ΁มߋ͢Δ • ܾࡁํ๏(ΫϨδοτΧʔυ)͕ొ࿥͞Ε͍ͯͳͯ͘΋༗ྉProduct ΁มߋͰ͖ΔΑ͏ʹͳΔ •

    ࣗಈͰܾࡁ͕ߦΘΕͳ͘ͳΔ • SubscriptionͷకΊ೔ʹͳΔͱInvoice͕࡞੒͞ΕΔ • ࡞੒͞ΕͨInvoiceΛݟͯ੥ٻॻΛ࡞੒͓͠٬༷΁ૹ෇ • Stripe͔Β௚઀ϝʔϧͰૹΔ͜ͱ͕Ͱ͖Δ • ͕ɺॻྨͰ͘Εͱ͍͏ͱ͜Ζ΋͋Γͦ͏… • ৼΓࠐ·Ε͔ͨΛۜߦޱ࠲Λݟͯ֬ೝ • खಈʁ • ৼΓࠐ·Ε͍ͯͨΒInvoiceΛMark as paid
  12. ੥ٻॻ෷͍ʹରԠ͠Α͏ͱ͍ͯ͠·͢ ͍͍ͱ͜Ζ • ੥ٻॻ෷͍ʹؔͯ͠΋Stripe্؅ཧ͕ग़དྷΔ • ாථ͕StripeͰҰݩ؅ཧͰ͖Δ • ͜Ε͕ग़དྷͳ͍ͱStripeͱผͰ؅ཧ͢Δඞཁ͕͋ΓͭΒ͍ͱ͜Ζ ͩͬͨ ͳΜͱ͔͍ͨ͠ͱ͜Ζ

    • ݱঢ়ɺۜߦʹৼΓࠐ·Εͨ͜ͱͷ֬ೝ͕खಈ͔͠ͳ͍ʁ • billingઃఆ͕Email ʙͷInvoice͕࡞੒͞Εͨ͜ͱΛͪ͜Β͕ݕ஌͢Δ ํ๏ • Slack௨஌ͱ͔͋Δͱخ͍͚͠Ͳ…