1. 決済SaaS「Stripe」の概要と開発者にとっての価値 [1]

thumbnail

1.1. Stripeの基本的な役割と利用形態 [1]

  1. Stripeの定義:
    1. StripeはSaaS (Software as a Service)であり、アプリ開発時に使用するツールである [1]。
    2. Stripe自体はユーザー(アプリを使う側)が直接使うサービスではなく、アプリ開発者や企業がアプリに組み込むツールとして機能する [2]。
  2. Stripeの機能:
    1. 主にクレジットカード決済などの決済機能をアプリケーションに導入するために使用される [3]。
  3. Stripeの導入事例:
    1. Flutter大学では、クレジットカード入力画面や月額プラン選択、決済ボタンの機能にStripe決済を導入している [4]。
    2. Stripeの入会画面自体を使用する場合もあるが、API連携により完全に裏側に閉じ込めて、Stripeを使っていることをユーザーに意識させないようにすることも可能である [5]。
    3. 筆者の会社が提供するプログラミングスキルのマーケットプレイス「コードボーイ」でもStripeを使用しており、これは完全に裏側にStripeを閉じ込めてAPIと連携させている [6]。
    4. 画面タップは全て自作し、クレジットカード番号や名前を入力してもらい、それをAPIでStripeに送ってOKが出たら決済完了となる [6]。
  4. 決済機能をゼロから自作することの困難さ:
    1. 決済機能をゼロから作ろうとすると、何から始めれば良いか分からず、お金に関する実装をいきなり行うのは困難である [7]。
    2. クレジットカードとどう繋ぐか、入力された情報をどこに、どのように通信すれば良いか、アプリ開発者には分からない [9]。
    3. 特にセキュリティに関する知識も不足している [12]。

1.2. セキュリティリスクの回避とStripeのブラックボックスとしての役割 [13]

  1. クレジットカード情報漏洩リスクの回避:
    1. クレジットカード番号を自作アプリのデータベースに入れると、漏洩した場合に問題となる [13]。
    2. アプリ開発者は、お金に関する情報やカード番号を自社のデータベースに保持したくない [15]。
    3. アプリ開発者は、決済に関する全てを把握してアプリを作っているわけではない [16]。
    4. 全てを自前でやろうとすると、一人では対応しきれない [18]。
  2. Stripeによるブラックボックス化:
    1. StripeのようなSaaSは、決済の面倒でよく分からない部分をブラックボックスとして処理してくれる [19]。
    2. 開発者はStripeに繋ぎさえすれば、カード番号を自社のデータベースに保存する必要がなくなる [20]。
  3. セキュリティと信頼性の確保:
    1. Flutter大学のデータベースが仮に流出しても、そこにはStripe側の参照IDがあるだけであり、Stripeから抜き出さない限りはカード番号は守られる [22]。
    2. Stripeはシリコンバレーの優秀な会社であり、開発者自身の会社よりも漏洩リスクが低い [23]。
    3. Stripeはセキュリティ対策をしっかりと行っており、信頼感があるため、開発者は決済部分をStripeに頼っている [24]。
    4. APIを叩いて通信し、カード情報を保存してもらうという形で利用されている [28]。
  4. Stripeの常識化:
    1. 決済機能をつける際、Stripe以外にもサービスはあるが、Stripeはほぼ全てを担う存在である [29]。
    2. アプリケーションにクレジットカード決済機能をつけるならStripeという発想が、すでに常識(スタンダード)となっている [29]。
    3. Stripeは最近流行したものではなく、5年以上前から主流であり、筆者がアプリ開発を始めた頃からすぐに利用されていた [31]。
  5. ユーザー情報の保護:
    1. Stripeにカード情報が入っているため、筆者はFlutter大学のメンバー一人一人のカード番号を下4桁しか知らない [36]。
    2. 開発者が悪意を持ってメンバーのクレジットカードを使おうとしても、Stripeに情報が飲み込まれており、下4桁しか分からないため、不正利用は不可能である [37]。
    3. これはユーザーにとっても良い点であり、開発者にとっても責任を負わなくて済むというメリットがある [39]。

1.3. Stripeの安定性と機能拡張 [40]

  1. Stripeの評価と安定性:
    1. Stripeはしっかりとした安定性を持っており、アメリカでも高く評価され、日本でも普及している [40]。
  2. 日本市場向けの機能拡張:
    1. 最近、Stripeはクレジットカード決済だけでなく、日本限定で銀行振り込みやコンビニ振り込みなどの機能も追加したらしい [41]。
    2. Flutter大学ではサブスクリプション形式のため導入予定はないが、メルカリのような単発決済や、クレジットカードを持たない若年層のチケット購入などで、銀行振り込み機能が活用される [42]。
    3. 日本はStripeにとっても大きなマーケットであるため、機能が充実している [45]。
  3. 開発者への推奨:
    1. 筆者は5年以上前からStripeを使っており、決済機能をつけたい開発者にはStripeの使用を推奨する [46]。
    2. Flutter大学に入会すると、実装されているStripeのコードをリポジトリで見ることができ、参考になる [47]。

2. 決済代行サービスの利用が必須である理由 [48]

thumbnail
  1. Stripeの決済手数料:
    1. Stripeの決済手数料は3.6%である [48]。
    2. 1,000円の決済があった場合、36円が手数料として引かれる [48]。
  2. Stripe以外の決済代行サービス:
    1. 日本企業でも、GMOイプシロンのような決済代行サービスを提供している会社があり、多くのアプリケーションはこれらのサービス(SaaS)のどれかを使っている [49]。
  3. 自前での決済システム構築の困難さ:
    1. 決済の仕組みをゼロから全て自前でやっている会社は、金融系のアプリケーション会社を除いてほとんどない [50]。
    2. 決済の仕組みをゼロから作ることは非常に大変であり、3ヶ月で作れるものではない [52]。
  4. 開発者目線での選択:
    1. アプリケーション開発者は、決済システムを自前で構築するのではなく、StripeのようなSaaSのどれかを使って、その手数料を支払うことが基本的な選択肢となっている [53]。
    2. 現代において、自前で決済システムから作ることはないというのが大前提である [57]。