CoupLinkでは今年3月に、新たな決済システムとして「Stripe」を導入しました。
Stripeはアメリカに本社を置く、オンライン決済サービスを提供するSaaS企業で、GoogleやAmazonなどの大企業からスタートアップ企業まで、100万を超える企業で導入されています。
執筆現在、運用開始から半年ほど経過したわけですが、振り返るとStripeの導入は総じて成功だったと感じています。
そこで本記事では、Stripeの良かった点について、主に開発者視点から説明していきます。
目次
1. 導入コストが低い
↑の図は、CoupLinkでコインを購入する際の通信フローを表したものです。
全部で7回の通信が行われており、いちいちhttp.request…などと記述していたら、結構大変なコード量になりそうです。
ですが、Railsの場合Stripe Gemを使用することで、通信に係る処理をStripeオブジェクトに任せることができ、コードをシンプルに保つことが出来ます。
各メソッドに任意のパラメーターを渡すだけで、必要な処理を行ってくれる
Stripe::InvoiceItem.create(invoiceItemParams)
invoice = Stripe::Invoice.create(invoiceCreateParams)
Stripe::Invoice.finalize_invoice(invoice.id)
Stripe::Invoice.pay(invoicePayParams)
ちなみに、Stripeではクレジットの登録と商品の購入を同時に行ってくれる、Stripe::PaymentIntentというオブジェクトもあります。
しかし、今回はあえてこのオブジェクトは使用せず、上記2つの処理を別々に実装しました。
継続課金のカードを変更したい場合や、登録済みのクレジットで決済を行う場合など、片方の処理のみが必要なケースもあるため、処理の共通化という点で、分割しておいた方が便利という判断です。
2. セキュリティに優れている
StirpeはPCI データセキュリティ基準に準拠しており、安全面での高い信頼性があります。
例えば、クレジットカード登録の際、入力されたカード情報はCoupLinkのサーバーを介さず、直接Stripeへと渡されるので、事業者側がカードの秘匿情報を参照出来ないようになっています。
一方で、購入処理はRails-Stripeのサーバー間のみで完結出来るようになっており、悪質な顧客による改ざんのリスクを防ぐことが出来ます。
3. 自社サービス内にクレジット登録ページを作成可能
支払いの際、Stripeにページ遷移する必要がないので、ユーザーは快適かつ安心に決済フローを完了することが出来ます。
ちなみに、入力フォームは柔軟なカスタムが可能です。
CoupLinkにおいても、アプリ共通のデザインを適用し、自然な見た目を実現しています。
4. 日本語ドキュメントが割とある
チュートリアルは全て日本語対応しており、現在も対応ページが段々と増えています。
ただし、APIドキュメントは全て英語なのでそこは頑張りましょう。
5. 不正使用に強い
近年、クレジット会社が不正使用対策として導入した「3Dセキュア」とは別に、Stripe独自の機械学習ロジックを用いて、不正使用の検知を行ってくれます。
さらに、ブロックしたユーザーの以降の決済を無効化する、いわゆるブラックリスト機能も提供してくれます。
CoupLinkにおいても、半年の運用で約100件の決済をブロックしてくれた実績があり、業者の早期発見に貢献してくれました。
また、Stripe APIを用いて、CoupLink内でもクレジット決済に係る独自の業者検知ロジックを実装しています。
これは、今年4月に大型アップデートを行った業者監視システムにも組み込まれており、こちらもこれまでに数多くの検知実績があります。
終わりに
本記事の内容は以上になりますが、Stripeは開発という観点以外でも、管理画面が使いやすかったり、様々な決済手段に対応していたりと、良い点を挙げればキリがないほどの、本当に素晴らしいサービスだと感じます。
決済サービスの導入、または移行を考えている場合は、是非Stripeも検討してみてください。