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

Stripeではじめての決済

acomagu
November 08, 2019

 Stripeではじめての決済

- なぜ Stripe を採用したの?
- サポートの充実度
- Stripe + Auth0 でデータベースレスアプリケーション
- 多重決済の防止
etc.

191008 #JP_Stripes in 会津
株式会社デザイニウム
伊藤勇希 @acomagu

acomagu

November 08, 2019
Tweet

More Decks by acomagu

Other Decks in Technology

Transcript

  1. Stripe で はじめての決済 191008 #JP_Stripes in 会津 株式会社デザイニウム 伊藤勇希 @acomagu

    • なぜ Stripe を採用したの? • サポートの充実度 • Stripe + Auth0 でデータベースレスア プリケーション • 多重決済の防止 - Agenda -
  2. 自己紹介 - 伊藤勇希 @acomagu (あこまぐ) - 会津大学 学部4年 - 最近の趣味:

    音ゲー / VTuber - 最近好きな技術: Go / TypeScript / Linux
  3. なぜ Stripe なのか? - 日本の会社だとどうやら GMOPG が多い模様 - とりあえずデファクトに乗っておくのが小規模アプリの基本...? でも:

    Stripe で特に困らなそう - Developer Friendly - 小規模ビジネスにコスト面で優しい じゃあ: なぜ GMOPG が使われてる? - 2018 年まで JCB が使えなかったからでは...?
  4. なぜ Stripe なのか? - 日本の会社だとどうやら GMOPG が多い模様 - とりあえずデファクトに乗っておくのが小規模アプリの基本...? でも:

    Stripe で特に困らなそう - Developer Friendly - 小規模ビジネスにコスト面で優しい じゃあ: なぜ GMOPG が使われてる? - 2018 年まで JCB が使えなかったからでは...? →採用
  5. プロトタイプで何をしたか とりあえず動くものは数時間でできた! あとの6日間なにしてたの...? - iPhone X(iOS 13) のみで Apple Pay

    ができ ないという問題が発覚 - サポートに連絡 - まずチャットで連絡→すぐ返信あり - よくわからないというのでメールで再送 - 「公式のデモページが iPhone X で動か ない」
  6. 結果... 「v2 のリファレンスサイトが動かない場合はこちらで調査できます」とのこと → v2 のライブラリを使うと問題なく動くことが発覚 → (とりあえず) v2 と

    v3 のライブラリを併用することに決定 その他: - メールサポートは英語でも日本語でもいいらしい - IRC の人は「英語のほうが早く帰ってくると思うよ」と言ってたが自分たちの場合は あまり変わりなかった プロトタイプで何をしたか
  7. アプリケーション実装のとき何をしたか - Stripe Elements(v3) と Apple Pay Button(v2) のインターフェースを統一 -

    既存の Vue アプリケーションに組み込み - Wrapper Components という考え方に従う - サーバーの書き換え
  8. サーバーの書き換え - AWS Lambda + API Gateway - Authorizer で

    Auth0 のユーザーを認証(JWT) - AWS CDK でリソース管理 - TypeScript - Stripe SDK の型が定義されていて良い - テストを書く - Stripe 公式の REST Mock は使用せず、独自にモックを用意
  9. データベースを用意しないチケット管理 App チケットを購入: Metadata に Auth0 のユーザーIDを入れて決済(Create Charge)する => 83

    LOC チケットが利用期間内か?: 該当のユーザーの決済履歴(Charges)を取得し、有効期限を逆算して期限内かどうか を返す => 101 LOC
  10. まとめ - Stripe はプロトタイプがまじで速攻でできる - いろいろとスタートアップに優しい - 手数料安い - 開発者に優しい

    - 段階的にいい感じにできる(運用でカバーからシステムでカバーへ) - チャットサポート便利! - データベース使わなくても意外と...? - Payment Intents でべき等な API へ