# プロジェクト概要
既存のWeb招待状サービスのプランを買い切り型からサブスクリプション型に移行する。
エンジニア2名、エンジニアマネージャー1名で設計、コーディング、テストを分担しながら進めていった。
# 自分の役割
外部の決済サービスを使ってAPI連携を行い定期購入される仕組みを作成。
# 実装した機能
- 外部決済サービスを使った定期購入処理
- カード情報変更・解約・返金処理
- APIを利用した支払い情報取得処理
- 定期購入後の購入データ取得・更新処理(バッチ処理)
- プラン購入・定期購入後のメール送信
# 当時の課題
- 途中からもう1人のエンジニアが他プロジェクトに参入してほぼ1人での開発になった。さらにリリースまでの期間も余裕がなかった。
- 外部決済サービスのタイムスタンプがUTCで9時間のずれがあるため、月末月初に購入があった際は二重課金のような状態になってしまう
# アプローチ
- 大規模開発の担当が初めてだったこともあり、1機能ごとにレビューを依頼し手戻りを少なくした。
既存プランと新規サブスクプランでプランごとの購入可否などのパターンをあらかじめテスト項目として整理することで開発スピードを上げた。
- 外部決済サービスのオプション機能を使って、月末月初の特定の時間に購入があった際には課金日の設定を9時間分遅らせる処理を追加し、定期課金のサイクル開始時刻をずらす実装を行なった。
# 成果
- 当初のリリース日を後ろ倒しすることなく開発できた。
- プラン購入パターンの整理とテストを行なっていたことでリリース後の大きなバグが発生しなかった。