2022年5月18日に公開された、GMOのStripeのようなサービス。GMOイプシロン株式会社が運営している。スタートアップが成功するために設計されたオンライン決済インフラ
とのことだ。
(調べたら、GMOインターネット(株)>GMOペイメントゲートウェイ(株)>GMOイプシロン(株)という関係のようだ。)
本記事は、筆者アラフォーエンジニアがStripeと比較しながらぼやく
ものだ。筆者はSES系からスタートアップまで体験して現在フリーでエンジニアをしている。ただ見当違いなことも多いかと思うのでコメントなどしてほしい。
またせっかくMagicodeに書いているのでPythonで実際に体験できるようにしているのでぜひご自身でも比較してみてほしい。それでは下のボタンを押してPython環境を用意しよう。(「接続中です」とでたらOKなので記事を読み進めながら接続を待ってください。)
# Let's Go!
現状ではStripeの下位互換。もちろんMVPとして出してきているのでこれからに非常に期待したい。開発者体験やその他機能ではStripeに勝つのは難しいので、おそらくGMOならではの決済手段(クレカ分割払い、コンビニ決済、QR決済、後払い)、スピード、コネクションやGMOサービスとの連携などで差別化にしていきたいのかな。個人的には、クレジットカードしかり、海外のサービスに日本の決済のインフラを握られすぎるのは健全ではないと思っているため「決済SaaSといえばfincode
!」となる日を楽しみにしている。
エンジニアなのでbizなことは言えないがさくっと適当にまとめると
ターゲットとするスタートアップにはあまり関係がないかもしれないが、GMO-PGやGMO-EPなどがバックにあることの安心感はすごい。
Stripeとまったく同じ3.6%
だ。(スマホの料金設定かな)
ちなみにPAY.JPはVISA, Masterは3.0%
だ。
fincodeは月2回。最近独立したため、キャッシュフローの大切さを身にしみて実感している。
ちなみにStripeは週1回だ。
良い。ちなみにStripeの審査もめちゃくちゃ早いのだ。
これは特に大事かな。PayPayのAPIの審査は厳しいイメージがあるのでこういうのがうまく審査甘くなったら嬉しいな。 Stripeは最近コンビニ決済を実装した。
たぶん。
このような感じだ。下で詳しく解説する。
各項目を解説する前にいったん広告を挟む。
細かすぎるかもしれないが、UI/UXは極めて重要だ。気になった点を上げる。
これはエンドユーザではなく、fincodeを使う会社の開発者や社員が見るものだ。 こんな感じ。
https://dashboard.test.fincode.jp/
このページでの改善点を考える。
ログインページではautoFocusになるが、サインアップページではならないので、1クリック余分に必要になる。
メール認証のリンクを踏んだのに、再度メールアドレスを入れないと行けないのか、と思った。
致命的。ログインボタンを押したら、「送信中。。。」のようにボタンが変わってほしい。
Stripeのダッシュボードでは顧客の追加などが N
を押すだけでできる。
と思ったら、フッターにあった。
こんな感じのもの。
これはエンドユーザが支払いをする時の画面だ。Webサイトに組み込みするのではなく、あらかじめfincodeが用意してくれている画面である。あまり優先度が高くないのか、微妙な出来だった。Stripe Checkoutが相当な洗練度であるから、気になった。(Stripe Checkoutはここから体験できます。)
しかし「お支払い方法」で、クレジットカードとあることから今後の拡張が予定されているだろうから、期待したい。
ここらへんでStripeとfincodeの決済ページを比べてみよう。 Pythonでの実装である。
fincodeだとこんな感じ。
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でリクエストがラップされているので慣れていない人でも使いやすいだろう。
# 1. stripe用のSDKをインストール
!pip install stripe
# 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)
個人的な感想だろうか
左がfincodeで、右がStripe。まあ逆に安心感あるかも、。
モバイルで入力しようとすると幅が変わってやりにくい。Stripeはとても入力しやすい
クレジットカードの有効期限の月/年を入れるところ、月を記入したら次は絶対年を記入するのだから自動でfocusが動いてほしい。
モバイルで「お支払い」ボタンとても押しにくい
こんな感じで。
これから充実していくのは前提として
これからのスタートアップでRubyが採用されるケースはどんどん無くなっていくと思われるが、あって損は無いかなと。
個人的にWebhook周りのドキュメントは一番大事ではないかと考えている。実際に決済の確定やDBへの書き込みはWebhookでやるのがStripeは推奨のようだ。「ブラウザから確定させるのは、接続や電源が切れた時などに確実でない。」からと書いてあった。
このWebhookでの実装はしっかりドキュメントにあると嬉しい。
個人的にはサンプルコードで十分と思うが、バックエンドのSDKがあるとスタートアップにはとっつきやすいと考えた。
CLIとは、ここでは特にWebhookをローカルでテストするものを指している。StripeのCLIの使いやすさはすごい。こんなCLIがあるといいな。
スタートアップではSlackに入金通知などして、モチベーションを上げるというのをやっている会社もある。これがコードを書かずできると嬉しいな。
最後まで読んでいただきありがとうございます。GMOならではの強みで攻めながら、StripeのようなUX を追求し守りを固めれば、いい感じで勝てるのかなと希望的観測をした。 (書いていてStripeが好きな自分に気づきました笑、めっちゃ贔屓してる。)
やっぱりGMOってすごいですね。「渋谷で働いてたクラウドエンジニア」さんも応援しているはずです。
最後になんとなく、GMO系で好きなサービス、あまり好きでないサービスを表示します。
import random
a = ["GMOあおぞらネット銀行", "ガッキーのCM", "GMOクリック証券"]
b = ["あのドメイン取るやつ", "お名前.com", "お名前ドットコム"]
print('好きなサービス→', random.choice(a), '\nあまり好きでないサービス→',random.choice(b))