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

NIKKEI COMPASSの Stripe決済フローと決済高速化の方法/20231205-c...

NIKKEI COMPASSの Stripe決済フローと決済高速化の方法/20231205-compass

NIKKEI COMPASSのStripe決済フローと決済高速化の方法
というタイトルで日本経済新聞社 宮里さんが発表しました。
2023/12/05 開催 決済フロー全体像から学ぶ 決済サービス活用実践LT
https://offers.connpass.com/event/302376/

More Decks by 日本経済新聞社 エンジニア採用事務局

Other Decks in Technology

Transcript

  1. • スタートアップ (機械学習/フロント/バック) • 機械学習系ベンチャー (フロント/バック) • モビリティテックベンチャー (フロント) 自己紹介

    2019年 中途採用で日本経済新聞社へ入社 宮里 遼司 読み手の意図に反しないコードを書きたい Better insights for a better world ハッシュタグ #Offers_決済サービス活用 3
  2. • 社名: 日本経済新聞社 • 新聞名: 日本経済新聞 • 有名なサービスといえば日経電子版 日本経済新聞社について •

    実はBtoB向けサービスもたくさんあります ◦ 日経テレコン ◦ 日経NEEDS ◦ NIKKEI COMPASS ◦ etc… • 企業や記事の情報を売ることが主 Better insights for a better world ハッシュタグ #Offers_決済サービス活用 4
  3. • 社名: 日本経済新聞社 • 新聞名: 日本経済新聞 • 有名なサービスといえば日経電子版 日本経済新聞社について •

    実はBtoB向けサービスもたくさんあります ◦ 日経テレコン ◦ 日経NEEDS ◦ NIKKEI COMPASS ◦ etc… • 企業や記事の情報を売ることが主 Better insights for a better world ハッシュタグ #Offers_決済サービス活用 5
  4. 決済フロー Better insights for a better world ハッシュタグ #Offers_決済サービス活用 13

    Stripeの支払いを表すオブジェクト サーバー側で作成した PaymentIntentをクライアント側か ら直接Stripeに 送ることで決済が実行できる 決済に関係するオブジェクトは PaymentIntentに紐づく PaymentIntentとは
  5. ユーザーに起きていたこと • 決済完了後にコンテンツ閲覧ページへ 自動遷移するはずが、そうならない • ページ遷移に30秒程度掛かる Better insights for a

    better world ハッシュタグ #Offers_決済サービス活用 21 • 決済完了の表示はStripeからのコールバック ◦ ここは高速なのでコールバックは問題無し • コンテンツ閲覧ページはの購入判定後に結果を返す ◦ サーバー側の購入判定が遅い?
  6. サーバー側の処理 • 画面の決済完了コールバックと PaymentIntent-Chargeの紐づき 完了に約30秒の差があることが判明 • この時間をずっと待ってしまっていた 約30秒 Better insights

    for a better world ハッシュタグ #Offers_決済サービス活用 23 • 画面の決済完了コールバックは返って きているが…… • サーバー側の判定では未決済になる • 決済完了はPaymentIntentに支払 金額を表すChargeが紐づいたとき
  7. 決済完了の判定を速くする • 決済完了のwebhookは速い • webhookで届いた PaymentIntentをRedisに短命で 保存する • 決済確認時にRedisに PaymentIntentの存在確認

    • 存在する場合は決済完了として扱う Better insights for a better world ハッシュタグ #Offers_決済サービス活用 28
  8. 決済完了の判定を速くする • 決済完了のwebhookは速い • webhookで届いた PaymentIntentをRedisに短命で 保存する • 決済確認時にRedisに PaymentIntentの存在確認

    • 存在する場合は決済完了として扱う 決済確認が30秒程度から1秒未満に高速化 Better insights for a better world ハッシュタグ #Offers_決済サービス活用 29
  9. 積極採用中! Better insights for a better world ハッシュタグ #Offers_決済サービス活用 33

    • B2Bのサービスに興味を持ってくれた方 • フロントエンドエンジニア • バックエンドエンジニア • システムアーキテクト • 検索エンジニア • データアナリスト • プロジェクトマネージャー • プロダクトマネージャー • 企画 技術ブログもあります https://hack.nikkei.com/