決済代行サービス(Stripe)連携の取り組みについて
システム開発部のT.Hです。
私は現在、お取引先様が展開するサービスとしてBtoB向けのシステム開発を担当しています。
そのシステムは商品の取引、ワークフローの機能などを兼ね備えています。ここ数年でビジネスとして軌道に乗り始め、システム内で商品の取引を行っていることもあり、この度お取引先様にてシステム課金をスタートすることになりました。
課金システムの要件
システム課金をスタートするにあたっての要件は以下です。
・サービスの利用はサブスクリプションで毎月(または毎年)継続支払い。
・サービスには価格によってランクがあり、そのランクで使用可能な範囲が決まる。
・オプション契約の追加で使用可能な範囲の調整が可能。
・商品の取引(購入)はそれぞれ1回限りの支払いが発生。
・支払い方法はクレジットカード、または銀行振込(月1回の請求書払い)への対応が必要。
といった内容です。
決済代行サービス(SaaSの選定)
このシステム課金をスタートするための提案依頼を受けて実現手段を検討した結果、全てを1から作るとコスト、納期の両方で合わないことは明白でした。
そのため、既にサービスとして課金の仕組みを実現している決済代行サービスとの連携を模索しました。
決済代行サービスは、クレジットカード決済、銀行振込等の決済代行の他、顧客管理、商品管理、請求管理、売上管理等の機能を持っています。
自社システムとの連携方法は一般的に、
リンク型
API型
の2種類、その他サービス独自のCSV連携等が用意されています。
リンク型は決済代行サービスが自動生成する購入ページにリンクすることで開発量を減らし、低コストで早くシステム課金を始めることが出来る方法です。
自社開発する領域が少ない分、デザインや機能の自由度はかなり下がります。
API型は自由度が高い分、開発するソースコードの量が増える(コストが高くなる)特徴があります。
数社の情報を取り寄せて調査した結果、国産のSaaS1社とStripeの2社をお取引様に最終提案いたしました。
お取引様の評価では初期費用無し、取引手数料が一番安い点が決め手となり、Stripeとの連携が決まりました。
Stripeとは
今や世界のグローバルスタンダードとなっている決済代行サービスです。
有名な大手企業も多数導入しており、日本国内でも広く普及しています。
初期費用無し、クレジットカードの決済手数用が一律3.6%、銀行振込は1.5%と良心的な手数料のみで使うことが出来ます。
決済に関連する多数のサービスを提供するオンライン決済プラットフォームです。
苦労したこと
・Stripeを知る
最初はリンク型での開発を前提に、短期、かつ低コストな開発を想定していました。
Stripe社のお勧めはリンク型とAPI型の中間、Checkoutと呼ぶ開発方法で、この開発方法を紹介した開発者向けドキュメントも豊富にあります。
しかし、日本の銀行振込に対応しようとした場合、一番開発コストがかかるAPI型(StripeではElementsと呼ばれるUIコンポーネント)を選択するしかありませんでした。
お客様の要件を実現するためのシステム構築方法を調査、銀行振込要件の実現方法を調べていくうちに一番避けたかったAPI型を選ぶしかないという結論に達しました・・・。
ここまで辿り着くのに一か月かかりました。
Elementsを使った開発についての情報は少なく、どうやって作ればよいのか、そこから長い調査が始まりました。
このような時はStripeを構成しているデータと、その関係、ライフサイクルを把握、それを操る為のAPIは何があるのかを理解する必要があります。
これらをある程度把握し、業務要件に合わせ、Stripeの何をどう使いこなすべきか組み立てが出来るようになるまで更に3カ月といった感じです。
ドキュメントは英語しかないものも多く、金融業界独特の単語の使い方もあるため、正しく内容を理解するのに苦労しました。
・インターネット決済(クレジットカード、銀行振込)を知る
普段何気なく使用しているインターネット決済ですが、自分でシステムを設計するのは初めてでした。
これまで裏で動いているシステムの深い仕様まで気にしたことがありませんでしたが、カード業界の一般的なシステム仕様、銀行とStripe間のシステム連携の実情を調査した上で、イレギュラーケースも含めた正しい作り方の見極めは大変でした。
・日本の商習慣に合った実装方法を特定する
サブスクリプションは一般的にはBtoCでカード等による即時決済が基本だと思います。
日本のBtoBの信用取引では、月1回の請求書にまとめ、支払い期日までに入金して頂く運用が一般的です。
更に最近始まったインボイス制度も考慮が必要になります。(Stripeはインボイス制度に対応済みです)
複雑なBtoBの取引の最初の入り口から最終的なアウトプットになる請求書、領収書を意識した設計は意外に複雑で、途中何度か設計を見直す必要がありました。
今後への期待
現在は苦労を乗り越えたことでStripe社のサポートの方ともスムーズなQAが出来るようになり、ノウハウもためることが出来ました。
世界中で使われ、非常に多機能なStripeですが、日本のBtoBで必要とされる一部の要件に対応出来ないことも少しつずつ判ってきています。
しかし現在出来ないことも今後対応され、より多くの要件に適した機能が提供されることを期待したいと思います。
苦労して習得したノウハウなので今後の新しい案件獲得に向けて生かしていきたいと思います。
ユニゾンシステムズでは、一緒に働く仲間を募集しています。
ぜひ一度オフィスに遊びに来てみませんか?お気軽にDMもお待ちしています!
求人の詳細はこちら: https://www.unixon.co.jp/recruit/
Youtube: https://www.youtube.com/channel/UCGacmgfpJ0fkHC0aKrSppVw
Twitter: https://twitter.com/unixon_recruit