Magicode logo
Magicode
4
8 min read

GMOの決済サービス「fincode byGMO」はどうすれば巨人Stripeに勝てるか

https://cdn.apollon.ai/media/notebox/f8213b60-33a7-461c-8d97-2d482f3058cd.jpeg

fincode by GMOとは?

2022年5月18日に公開された、GMOのStripeのようなサービス。GMOイプシロン株式会社が運営している。スタートアップが成功するために設計されたオンライン決済インフラとのことだ。 (調べたら、GMOインターネット(株)>GMOペイメントゲートウェイ(株)>GMOイプシロン(株)という関係のようだ。)
本記事は、筆者アラフォーエンジニアがStripeと比較しながらぼやくものだ。筆者はSES系からスタートアップまで体験して現在フリーでエンジニアをしている。ただ見当違いなことも多いかと思うのでコメントなどしてほしい。
またせっかくMagicodeに書いているのでPythonで実際に体験できるようにしているのでぜひご自身でも比較してみてほしい。それでは下のボタンを押してPython環境を用意しよう。(「接続中です」とでたらOKなので記事を読み進めながら接続を待ってください。)
python
# Let's Go!

fincode by GMOざっくり所感まとめ

現状ではStripeの下位互換。もちろんMVPとして出してきているのでこれからに非常に期待したい。開発者体験やその他機能ではStripeに勝つのは難しいので、おそらくGMOならではの決済手段(クレカ分割払い、コンビニ決済、QR決済、後払い)、スピード、コネクションやGMOサービスとの連携などで差別化にしていきたいのかな。個人的には、クレジットカードしかり、海外のサービスに日本の決済のインフラを握られすぎるのは健全ではないと思っているため「決済SaaSといえばfincode!」となる日を楽しみにしている。

ビジネス目線からの所感

エンジニアなのでbizなことは言えないがさくっと適当にまとめると

1. GMO系であること

ターゲットとするスタートアップにはあまり関係がないかもしれないが、GMO-PGやGMO-EPなどがバックにあることの安心感はすごい。

2. 手数料について

Stripeとまったく同じ3.6%だ。(スマホの料金設定かな)
ちなみにPAY.JPはVISA, Masterは3.0%だ。

3. 入金サイクル

fincodeは月2回。最近独立したため、キャッシュフローの大切さを身にしみて実感している。
ちなみにStripeは週1回だ。

4. 迅速なWeb審査

良い。ちなみにStripeの審査もめちゃくちゃ早いのだ。

5. 多彩な決済方法

これは特に大事かな。PayPayのAPIの審査は厳しいイメージがあるのでこういうのがうまく審査甘くなったら嬉しいな。 Stripeは最近コンビニ決済を実装した。

6. (ごりごりマーケができること)

たぶん。

開発者目線からの所感

改善してほしいところリスト

このような感じだ。下で詳しく解説する。
  • UI/UX
    • 管理サイト
      • 登録フォームのページで、入力欄にautoFocusにならない。
      • 登録時のメール認証の流れが微妙
      • ログインボタンをクリックしたときのフィードバックがない
      • ショートカットがほしい
      • ドキュメントへのリンクが見つけにくかった
    • リダイレクトページ(支払いページ)
      • なんかダサい
      • モバイルでの入力が心もとない
      • クレカの月/年を入れるところ月を記入したら年に行ってほしい。
      • モバイルにおいて、決済ボタンのmarginBottomほしい
      • 決済が成功したことをそのページで少し見せてほしい。
  • ドキュメント等
    • Rubyもほしい?
    • Webhook周りのドキュメントがまだそう。
  • SDK
    • 各言語で、StripeのようなSDKがほしい
  • その他
    • Slack連携
各項目を解説する前にいったん広告を挟む。

狭義UI/UX

細かすぎるかもしれないが、UI/UXは極めて重要だ。気になった点を上げる。

管理サイトの体験

これはエンドユーザではなく、fincodeを使う会社の開発者や社員が見るものだ。 こんな感じ。
このページでの改善点を考える。

0. 登録フォームのページで、入力欄にautoFocusにならない。

ログインページではautoFocusになるが、サインアップページではならないので、1クリック余分に必要になる。

1. 登録時のメール認証の流れが微妙

メール認証のリンクを踏んだのに、再度メールアドレスを入れないと行けないのか、と思った。

2. ログインボタンをクリックしたときのフィードバックがない

致命的。ログインボタンを押したら、「送信中。。。」のようにボタンが変わってほしい。

3. ショートカットがほしい

Stripeのダッシュボードでは顧客の追加などが N を押すだけでできる。

4. (ドキュメントへのリンクが見つけにくかった)

と思ったら、フッターにあった。

リダイレクト画面(StripeでいうCheckout)

こんな感じのもの。
これはエンドユーザが支払いをする時の画面だ。Webサイトに組み込みするのではなく、あらかじめfincodeが用意してくれている画面である。あまり優先度が高くないのか、微妙な出来だった。Stripe Checkoutが相当な洗練度であるから、気になった。(Stripe Checkoutはここから体験できます。)
しかし「お支払い方法」で、クレジットカードとあることから今後の拡張が予定されているだろうから、期待したい。
ここらへんでStripeとfincodeの決済ページを比べてみよう。 Pythonでの実装である。
fincodeだとこんな感じ。
python
import requests

API_KEY = 'Bearer m_test_NTNlYWYzMTgtZjhhNi00NGYwLWJmZDAtYTU2MDYwMDNmMGQzNjNiZTg0NTEtNDBmYy00MTdlLWFkMDctMmRkYzNlZmZiZjVjc18yMjA1MTkwMzI0MA'
FINCODE_URL = 'https://api.test.fincode.jp/v1/sessions'
AMOUNT = "1200" # 価格、なんで文字列?
REDIRECT_URL = "https://jp.magicode.io/hogehoge" 
DATA = {
    'success_url': REDIRECT_URL,
    'cancel_url': REDIRECT_URL,
    'transaction': {
        'amount': AMOUNT
    }
}

res_dict = requests.post(FINCODE_URL,json=DATA, headers={'Authorization': API_KEY}).json()

print(res_dict["link_url"])
Stripeだとこんな感じ。
SDKでリクエストがラップされているので慣れていない人でも使いやすいだろう。
python
# 1. stripe用のSDKをインストール
!pip install stripe
python
# SDKを使い、
import stripe
stripe.api_key = 'sk_test_51J6u6qJVNsvbfsIFqqOn2T751xAeANkODPEEbbhpoqJHGXbnTnqA8zwbTeHQe6Q2ybs6PZL1V8bf3wRPDlryYy1F00ihoCauXt'

checkout_session = stripe.checkout.Session.create(
            line_items=[
                {
                    'price': 'price_1L13J1JVNsvbfsIFuTjSuuGn',
                    'quantity': 1,
                },
            ],
            mode='payment',
            success_url=REDIRECT_URL,
            cancel_url=REDIRECT_URL,
        )

print(checkout_session.url)

0. なんかダサい

個人的な感想だろうか
左がfincodeで、右がStripe。まあ逆に安心感あるかも、。

1. モバイルでの入力が心もとない

モバイルで入力しようとすると幅が変わってやりにくい。Stripeはとても入力しやすい

2. クレカの月/年を入れるところ月を記入したら自動で年に遷移してほしい。

クレジットカードの有効期限の月/年を入れるところ、月を記入したら次は絶対年を記入するのだから自動でfocusが動いてほしい。

3. モバイルにおいて、決済ボタンのmarginBottomほしい

モバイルで「お支払い」ボタンとても押しにくい

4. 決済が成功したことをそのページで少し見せてほしい。

こんな感じで。

ドキュメント等

これから充実していくのは前提として

0. Rubyでのドキュメント

これからのスタートアップでRubyが採用されるケースはどんどん無くなっていくと思われるが、あって損は無いかなと。

1. Webhook周りのドキュメント

個人的にWebhook周りのドキュメントは一番大事ではないかと考えている。実際に決済の確定やDBへの書き込みはWebhookでやるのがStripeは推奨のようだ。「ブラウザから確定させるのは、接続や電源が切れた時などに確実でない。」からと書いてあった。
このWebhookでの実装はしっかりドキュメントにあると嬉しい。

SDKやCLI

個人的にはサンプルコードで十分と思うが、バックエンドのSDKがあるとスタートアップにはとっつきやすいと考えた。
CLIとは、ここでは特にWebhookをローカルでテストするものを指している。StripeのCLIの使いやすさはすごい。こんなCLIがあるといいな。

その他

0. Slack連携

スタートアップではSlackに入金通知などして、モチベーションを上げるというのをやっている会社もある。これがコードを書かずできると嬉しいな。

おまけ

最後まで読んでいただきありがとうございます。GMOならではの強みで攻めながら、StripeのようなUX を追求し守りを固めれば、いい感じで勝てるのかなと希望的観測をした。 (書いていてStripeが好きな自分に気づきました笑、めっちゃ贔屓してる。)
やっぱりGMOってすごいですね。「渋谷で働いてたクラウドエンジニア」さんも応援しているはずです。
最後になんとなく、GMO系で好きなサービス、あまり好きでないサービスを表示します。
python
import random
a = ["GMOあおぞらネット銀行", "ガッキーのCM", "GMOクリック証券"]
b = ["あのドメイン取るやつ", "お名前.com", "お名前ドットコム"]

print('好きなサービス→', random.choice(a), '\nあまり好きでないサービス→',random.choice(b))
(お名前.comのサポートはとても早くて丁寧で最高なのですが、その他の理由で、Route53で取るのが一番楽と思ってしまうんですよね、、m(_ _)m)
PS: 日本の決済SaaSがfincodeになりますように

参考URL

Discussion

コメントにはログインが必要です。