🙆‍♀️

Stripe Terminal S700 を触ってきたので感想

に公開

09/04 から Stripe Terminal が日本対応したとのことです。

何故か西宮に実機があるということだったので、触りに行ってきました。
https://nishinomiya.connpass.com/event/368493/

ざっと触ってみての感想なので間違っている箇所とかあるかもなので、詳しい方指摘お待ちしています

Stripe Terminal S700 は何か

  • クレジットカードの決済ができる端末。タッチや差し込みで決済処理ができる。
    • カスタムで作成したアプリ(Android/iOS/Web)から S700 に決済リクエストを飛ばして結果を受領できる。
    • 要するに任意のアプリ上で paymentIntent を作成してリーダに投げて、投げたアプリ上でリーダから決済結果を収集できる。
  • Android ベースの決済端末。
    • ので Wifi での常時インターネット接続に対応
    • カスタムのアプリが入っていて、Terminal アプリの挙動しか動作できないようになっている
    • ので、Android だからといって任意のアプリを気軽に入れたりできる感じではない。
    • Wifi で常時インターネット接続なので、インターネット経由のアップデートが色々入る模様

アップデートについては以下の記事が詳しく紹介してくれている。
https://zenn.dev/rdlabo/articles/e3fe9c3d458f74

何が嬉しいの?

  • 決済結果を Stripe 上に乗せることができる。
    • オンラインの決済で Stripe を導入している場合、オンラインとオフラインの決済を一元管理できる。
    • 決済記録だけじゃなく、返金とかクレカ上の決済運用業務とかも Stripe 上にマージできる。
  • 決済のタイミングで、Stripe 上に顧客と決済手段(ハッシュ化されたカード情報)を自動で登録できる。
    • 会員登録のフローとかと組み合わせて使うことで、現地で決済処理しただけでカード情報保持済みの会員アカウントが自動的に出来上がる仕組み。

利用する構成例

導入手法については Document にも色々なケースがまとめられている。
https://docs.stripe.com/terminal/designing-integration

  • 基本的にはカスタム POS アプリケーションを作成して リーダーと通信する方式になる。
  • バックエンドサーバを用いて POS システムと接続する場合
    • POS が Stripe サーバに paymentIntent 投げて、Terminal がインターネット経由でそれを受け取る形。
  • iOS / Android SDK を用いて POS システムを構築する場合
    • Terminal と POS はローカルで接続して paymentIntent を飛ばせるので、オフラインの決済にも対応できる

技術情報

サーバ主導型の POS 構築の場合、シンプルに Stripe API に接続してシステムを構築できるので、普段利用しているアーキテクチャを流用して、POS にTerminal への接続処理を組み込むことができます。
https://docs.stripe.com/terminal/quickstart?lang=node&platform=server-driven#test-card

iOS/Android 上で POS を実行する場合、Stripe Terminal SDK を利用して POS システムを構築する事ができます。

App on Device

と、ここまでは Terminal を out of box で利用するときの話。
S700 は Android ベースの端末になっているので、カスタムアプリを Terminal デバイスにデプロイするオプションも用意されているよう(App on Device)。
こちらは有償オプションになっていて、アプリを Terminal にデプロイするまえに Stripe の審査が必要になるよう(開発端末を除く

https://docs.stripe.com/terminal/features/apps-on-devices/overview

Terminal 上にデプロイできるカスタムアプリケーションの構成は、次の二種類のみが今のところ許可されている模様

  • Stripe スマートリーダーでの POS Android アプリ
    • Terminal アプリ上に POS 機能を実装する。
    • Terminal 上の POS 機能は任意のバックエンドと通信して注文情報や決済結果情報を送信できる。
  • Stripe スマートリーダーでの消費者向けアプリに対応する POS Android アプリ
    • Terminal 上に POS 機能を持たない消費者向け(Consumer Facing App)の接客機能を実装する。
    • POS 機能は Terminal の外で実行される。
    • 接客機能は任意のバックエンドと通信しながら、顧客情報や注文情報を取得できる。

App on Device については GitHub 上にサンプルアプリが用意されていて、見る限り以下のシナリオが実装可能なよう。

  • Terminal 上で任意の金額を入力 ( 注文の生成
  • Tip の入力
  • 決済処理
  • Email アドレスの入力 & Reciept の送付 ( バックエンド CRM への連携

https://github.com/stripe-samples/terminal-apps-on-devices

感想

  • 決済 -> Stripe のユーザ登録に自動的に流れるのがありがたい
    • ポータル上のユーザのアカウントと紐づけて、、、とかで色々できそう
    • Webとかアプリ上で割とネックになる「カード番号の登録」手続きが、オフライン決済で代替できる雰囲気
    • Offline の体験を起点に Online の購買につなげる、的なシナリオが色々組めそう
  • オンライン販売ベースで顧客接点を持っているビジネスで、ポップアップ的にオフライン出店する、みたいなシナリオで、せっかく現地で獲得したオフライン顧客との接点創出にとても役立ちそう。
  • Billing 的なサブスク決済がリアルの顧客接点でサクッと作れるのはかなり嬉しい
    • ちっさい POS をサクッと作れば Terminal 側は out of box で使えるので実装コストも相当抑える事ができる。
  • Terminal を out of box で使う端末上にはガッツリ Stripe のロゴが出てくるので、それなりの空間で利用する場合には App on Device でのカスタマイズが必要そう。

Discussion