就職先・転職先を見極めるためのサイト (https://career-change-supporter.com/) というWebサイトを作りました(損益分岐点を超えられなかったため、2024年5月10日にサービスを停止しました)その開発で利用した技術についてまとめようと思います。需要があるかわからないので、内容は薄めで投稿します。もし需要がありそうで、かつ記事内容をまとめる時間が確保できそうなら内容を追加、更新していこうと思います。
追記1
サービス終了に伴ってソースコードを公開しました。リリース時に使っていたソースコードはpublish-release-1というタグで、PAY.JPを利用したクレジットカード決済の実装があるのはthe-commit-where-I-decided-to-farewell-payjpというタグです。
追記2
ソースコードに関する補足。音声通信を行う際、ユーザー同士が匿名でやり取りを行えるようクライアントサイドで音声を加工し、それをSkyWay上に流しています。音声を加工するライブラリで著名なものにTone.jsが有りますが、このサイトではあえてそれを使いませんでした。理由としては、Tone.jsを使うとスマホ向けのブラウザで音声加工がうまく機能しなかったためです(今はどうなっているかわかりませんが、2023年春頃のTone.jsの最新バージョンでは駄目でした)そのためTone.jsを使わず、独自実装で音声加工をしています。
言語、フレームワーク
フロントエンド
Typescript、Javascript(99パーセントTypescript、1パーセントJavascript程度の割合)+ Vue3
バックエンド
Rust (脆弱性が見つかった際に攻撃対象になることを避けるため、使用フレームワークは非公開にします)
利用しているサービス
SkyWay
ユーザー同士の音声通信を実現するために利用しています。SkyWayは、2024年1月現在、旧版と新版のサービスが並行して可動していますが、就職先・転職先を見極めるためのサイト では新版のサービスを使っています。
PAY.JP
クレジット決済機能を実現するためにPAY.JPを利用する予定でしたが、本番環境の利用申請時に審査に落ちてしまったため利用を取りやめました(利用可能な環境には、テスト用のステージング環境と実際にお金が動く本番環境があり、本番環境は利用には審査が必要です。その審査に落ちました)
就職先・転職先を見極めるためのサイト はCtoCサービスです。CtoCサービスは審査が厳しいと事前に把握していたので、審査にパスするための要件を入念にチェックして実装したり、PAY.JPの問い合わせ担当にサービス内容について問い合わせて問題ない旨の回答を頂いていましたが、結局審査は通りませんでした。審査は、落ちた理由は非公開、かつ再申請不可とのことでしたので利用を諦めました。そのため、決済にはクレジットカードではなく、銀行振込で対応するのように修正しました。
ただ、実装は存在し、そこで得た知見(PAY.JP PlatformのPayouts型の実装方法、PAY.JPはRust用のSDKを公開していない(2024年1月現在)ため、自前でPAY.JP用のRUSTの実装を準備、3D Secureの機能の実装、Vue3におけるpayjp.js v2の利用等)も多いので記事には記載しておこうと思います。