1. Stripeについて

Stripe(ストライプ)は、オンラインの決済システムを提供する、アメリカ サンフランシスコのフィンテック企業によるAPIサービスです。現在、日本も含め、世界30カ国以上の地域で提供されています。

Stripe あなたの国へ
https://stripe.com/global

いわゆる「決済代行業者」とも言えますが、開発環境もサービス提供エリアもグローバルなため、単なる「決済代行」という捉え方にとどまらず、ビジネスをグローバルに展開するためのバンキング的な基盤として、Stripeを導入する企業が増えています。
Stripe Atlas というサービスでは、アメリカでの法人設立を代行し、Amazon USAなどで海外販売を展開する事業者が、ドルの売上をアメリカの銀行口座で受け取ることのできる体勢を、税務処理まで含めてサポートしてくれます。

日本事業者としてのアカウント登録は、Stripe日本のサイトからオンラインで申し込みをするだけです。
アカウント作成後に事業者情報を入力する必要はありますが、基本的にはオンライン作業だけで多通貨での国際カード決済(Visa/Master/Amex/JCB*要審査)に対応し、Apple Pay、Google Pay などを簡単に導入することができます。

また、オプションとして、定期購読決済(Subscription)、さらに、Alipay(支付宝)やWeChat Pay(微信支付)などの中国向けモバイル決済を導入することができます。
ただし、中国向け決済については、Stripeを窓口として、アリババとテンセントの担当部署による一定の審査があります。導入前には、それぞれの利用条件をご確認ください。

Alipay Terms of Service
https://stripe.com/alipay/legal

WeChat Payment System User Service Agreement
http://weixin.qq.com/cgi-bin/readtemplate?lang=en_US&check=false&t=weixin_agreement&s=pay

Stripeアカウントで収納可能な決済例

Stripe導入にあたっての初期費用や月額料金はなく、使用した分だけの手数料(3.6%)が利用料金となり、中規模〜大規模のストアは、手数料率をStripe社と個別契約することもできます。
また、代金回収タームは原則として1週間となり、日本国内の登録銀行口座に日本円での振込になります。ドルでの売上があっても、自動的に日本円に換算されて入金となるため、為替手数料(仲直+2%ほど)が発生します。PayPalのようにドルのままプールしておくことができないのでご注意ください。

Magento2には、標準でPayPal連携の機能が搭載されています。
なので、PayPalの他にこのStripeを導入しておけば、越境EC・海外販売のB2Cサイトにおいては、メインとなる決済手段をほぼカバーできると考えていいのではないかと思います。

また、セキュリティ面に関しても、StripeにはRadarという不正注文を防ぐ機能があり、なにより、Stripeの決済システム全体が、PCI DSS(Payment Card Industry Data Security Standard)に準拠したプラットフォームとなっています。
カード情報の入力フォームはStripe側の要素がサイト内に組み込まれますので、購入者のカード情報がストア側のデータベースに保存されることはなく、ハッキング対策としても極めて有効なものになっています。

2. Magento2+Stripeエクステンションを探す

Magento2にStripeを導入するためには、Stripeアカウントの作成の他に、Magento2+Stripeの連携エクステンションをインストールする必要があります。
Magentoエクステンションのページでもご紹介していますが、Magento2のエクステンションを探すには、先ず、Magento Marketplaceで検索をしてみるのがファーストステップになります。

Magento MarketplaceでStripe連携エクステンションを探す
https://marketplace.magento.com/

Marketplaceには、Stripe公式の無料エクステンションがありますが、現状、レビューやコメントを見るとやや微妙な感じの評価になっていますので、他の有料エクステンションを検討してもいいかもしれません。

私自身は、Magento1.9の頃から、Cryozonicというイギリスのベンダーが開発したStripeエクステンションを使用しています。
当初からネット上での評判が良く、いくつかのベンダーを検討した結果、Cryozonicのエクステンションを購入しました。

決め手となったのは、Cryozonicが、Magento専用のStripeエクステンションしか開発しないという、極めてマニアック、且つ職人気質のある開発者チームだったことです。
実際に使ってみて感じるのは、細部まできちんと検証され、緻密に構成・設計されている安定感です。数年使ってきて大きな不具合もなく、サポート対応もしっかりしているので、おすすめできます。

Cryozonic Magento+Stripeエクステンションストア

しかも、先月5月に、CryozonicはStripeと協業し、それまで有料だったすべてのエクステンションが突如として無料化され、Stripeドキュメント内でダウンロードの可能な、準公式的なエクステンションとして公開されました。
(2019年6月現在、Cryozonicストアにアクセスしても、以下のStripeDocsのページにリダイレクトされます。)

Cryozonic Modules for Magento(Stripe docs
https://stripe.com/docs/magento/cryozonic

このページをはじめて見た時、私は(それまでン万円をこのCryozonicに費やしてきたので)、喜んでいいのか、悲しんでいいのか、あるいは怒るべきなのか、しばらくわけも分からず、画面を見つめて、ただ呆然としておりました。。

とにかく、このCryozonicのエクステンションの質は高く、向後Magento Marketplaceにおいても、Stripeの新しい公式エクステンションとして置き換えられるのではないかと憶測しています。

(*2019年7月2日、CryozonicのStripe連携エクステンションが、Stripe公式エクステンションとして、Magento Marketplaceでもリリースされました。https://marketplace.magento.com/catalog/product/view/id/130365/  Marketplaceで購入した場合のインストール方法は、このブログ記事下欄の追記をご参照ください。)

3. Cryozonic Stripeエクステンションのインストール

それでは、CryozonicのStripeエクステンションをMagento2にインストールしてみましょう。
上記でもご紹介した、Stripe Docs内のCryozonic Modulesページにアクセスしてください。

Cryozonic Stripeエクステンション

Magento2のモジュール/エクステンションとして、5つがリストされています。

  • Stripe Payments
  • Stripe Express
  • Stripe Subscriptions
  • Stripe Euro Payments
  • Stripe China Payments

Stripe Paymentsは、このエクステンションの本体メイン機能になります。カード決済と、Appple Pay、Google Payが導入できます。
Stripe Expressは、アドオン(追加機能)の一つで、商品ページ、またはカート画面にて、Apple PayやGoogle Payのボタンが、ワンクリック支払い方式で表示されます。
Stripe Subscriptionsは、定額支払い(月額料金など)の機能を追加できるアドオンです。
Stripe Euro Paymentsは、SEPA Direct DebitやSOFORT、Giropayなどユーロ圏での決済を追加できるアドオンです。(ただし、Stripe日本アカウントでは有効化できません。)
Stripe China Paymentsは、AlipayやWeChatPayなど、中国向け決済を追加できるアドオンです。(日本アカウントでの有効化には審査があります。)

以下、エクステンション本体のStripe Paymentsのインストール手順を説明いたします。

先ずは、Stripe Payments の横の、「Download」 というテキストをクリックしてください。

Stripe Paymentsダウンロード

すると、パソコンに cryozonic-m2-stripe-2.5.0.tgz という名前のtgzファイルがダウンロードされます。(2.5.0はエクステンションのバージョン数です。)
このtgzファイルを、FilezillaやFilemanagerなどのFTPソフトで、Magento2のルート階層へとアップロードをしてください。(Magento2ルート階層のパスは、インストール環境により異なりますので、下の画像は参考例としてお考えください。)

Stripeエクステンションファイルのアップロード

ファイルがアップロードできましたら、PuTTYやターミナルなどで、Magento2ルートにSSHアクセスをし、以下のコマンドを実行してください。

tgzファイルの解凍

Copy to Clipboard

Cryozonicファイル内のPHPライブラリの削除

Copy to Clipboard

ComposerでStripeのPHPライブラリをダウンロード

Copy to Clipboard
Copy to Clipboard

*上のコマンドは共用サーバーなど、下のコマンドはsudo権限のあるVPSやCloud用です。Composerが入っていない場合は、作業環境に先にComposerをインストールしてください。(ご参考:Magento2コマンド集

Magento2のキャッシュクリア

Copy to Clipboard
Copy to Clipboard
Copy to Clipboard
Copy to Clipboard

Magento2のセットアップ

Copy to Clipboard
Copy to Clipboard
Copy to Clipboard
Copy to Clipboard

以上のコマンドにて、Cryozonic_StripePayments というStripeエクステンション本体のモジュールが有効化されます。

インストール方法や初期設定、トラブルシューティングなどの詳細は、Stripe Docsのモジュールリストの 「Documentation」 をクリックすると、PDFファイル(英語)で確認することができます。
また、他のアドオンモジュールを追加する場合も、以上と同様の手順、tgzファイルのダウンロード→Magento2ルートへのアップロード→コマンドで有効化の流れにて、アドオンのインストールを行うことができます。

4. Cryozonic Stripeエクステンションの設定

エクステンションのインストール後は、Magento2の管理画面にて、Stripe決済を導入するための設定をいたします。
管理画面 Stores > Configration > Sales > Payment Method に進みます。

Stripe Magento2管理画面

エクステンションが正しくインストールされていると、OTHER PAYMENT METHODS: の項目の中に、Stripe Payments by Cryozonic を見つけることができます。
vマークのアイコンかテキストをクリックすると、Stripe Paymentsの設定画面が開きます。

StripeエクステンションMagento2管理画面設定

各設定項目の簡単な説明は以下になります。

  • Enabled:「Yes」でエクステンションが有効化されます。
  • Title:カート画面に表示するお支払方法としての項目名を編集できます。
  • Mode:「Test」モードと、「Live」モードの切り換えができます。
  • Publishable Key:Stripeダッシュボードで取得したAPI Keyを入力します。「Test」モードと、「Live」モード、それぞれ別のKeyがあります。
  • Private Key:Stripeダッシュボードで取得したAPI Keyを入力します。「Test」モードと、「Live」モード、それぞれ別のKeyがあります。
  • Apple Pay:「Enabled」にすると、Apple PayとGoogle Payを導入することができます。
  • Apple Pay Button Location:カート画面での、Apple Payのボタンの表示位置を、「Inside the Stripe payment form」か、「Above all payment methods」から選べます。
  • Payment Action:「Authorize and Capture」では、お客様のご購入と同時に与信枠での決済が完了します。「Authorize Only」では、ご購入時に与信枠を押さえ、決済処理は店舗側でInvoiceを発行したタイミングで完了します。
  • Stripe Radar:「Enabled」で、Radar(不正注文防止機能)が有効化されます。
  • Save Customer Cards:購入者のカード情報を、Stripeのサーバーに保存するかどうかを選択できます。「Disabled」では無効化、「Ask the customer」では、カード情報を保存するかどうかを購入者に尋ねます。また、「Save without asking」では、カード情報がStripeサーバーに保存され、次回購入でカード情報の入力が不要となります。
  • Optional Statement Descriptor:カート画面お支払い欄に備考的な記述を挿入できます。
  • Pay in store currency:多通貨のマルチストア構成の場合、基本通貨での決済ではなく、表示通貨での決済を行うかどうか選択できます。通貨についてはMagentoマルチストアのページをご参照ください。
  • New Order Status:新規注文のステイタスを選べますが、通常はMagento2のシステムに準拠し、空欄とします。
  • Enable Stripe email receipts:Stripeのシステムから、購入者に請求者メールを送信するかどうかを選択できます。Stripeからのメールは、Stripeのダッシュボードで内容を編集します。
  • Payment From Applicable Countries:Stripe決済を特定国の購入者のみ利用できるようにするには、「Specific Countries」を選択します。
  • Payment From Specific Countries:上記の「Specific Countries」を国リストから選択します。
  • Sort Order:Stripe決済の、カート画面お支払方法欄での表示順を指定できます。

アドオンモジュールをインストールすると、やはり、この管理画面に、該当の設定項目が追加されます。

基本的に、インストール/アップデート時のコマンド作業さえクリアすれば、後は管理画面での設定を進めるだけで、Magento2にStripe決済を簡単に、しかも無料で導入することができます。
Stripeのドキュメントを見ると、開発者向けの説明(コード)が多く、かなり難しく感じてしまいますが、その部分はエクステンションのインストールで補うことができます。

5. Stripeダッシュボードでのいくつかの設定

Stripeのダッシュボードは、何度かレイアウトが更新・刷新され、主要な設定画面では、ほとんどのページで日本語で表示されるようになりました。サポートも日本語対応しており、かなり使いやすい状態になっています。

ご参考:Stripeダッシュボードの概要
https://stripe.com/docs/dashboard

この記事では、Stripeダッシュボードの全般な使い方や設定方法は割愛させていただきますが、Magento2管理画面での設定と合わせて、API Keysの取得と、Apple Payのドメイン認証、Webhookの設定についてご説明いたします。

API Keysは、上記のMagento2管理画面での設定で、Publishable Key と、Private Key と呼ばれている二つのキーペアのことになります。
先ず、Stripeダッシュボードにログインし、左メニューの 開発者 > APIキー をクリックしてください。

StripeダッシュボードAPIキー

アカウント作成直後の場合は、テスト環境でのAPIキーが自動で作成されています。「公開可能キー」が、Publishable Key のことで、「シークレットキー」が、Private Key のことになります。
シークレットキーは伏字になっていますが、「キーを表示」のボタンをクリックすると、キーのトークンが表示されます。

StripeダッシュボードAPIキー

このトークンをコピペして、Magento2管理画面 Stores > Configration > Sales > Payment MethodPublishable Key と Private Key に入力します。

決済のテストには、Stripeがしているテスト用のカード番号をご利用ください。
https://stripe.com/docs/testing

Stripeダッシュボードで本番環境が利用できるようになると、テスト ⇔ 本番 を切り替えることができるようになります。本番環境のAPI Keysは、上記のMagento2管理画面にて、Modeを「Live」にし、同じようにコピペ入力します。

また、Apple Payを利用するためには、Stripeダッシュボードで、ストアのドメインURLを登録します。

ご注意いただくのは、Magento2のストアURLがサブフォルダで終わる場合、Apple Pay用のドメイン登録・認証ができない、Apple Payが利用できない、ということです。
例えば、www.yourdomain.com や、 store.yourdomain.com はドメイン認証ができますが、www.yourdomain.com/store/ と、Magento2ストアURLがサブフォルダで表示される環境では、ドメイン認証ができません。
Apple Pay導入を検討されている場合は、ストアURLやマルチストア構成を決める段階で、この点にご留意ください。

ストアURLは、Stripeダッシュボードの 設定 > ビジネス設定 > Apple Pay から登録します。

Stripe Apple Payドメイン登録

ドメイン登録画面が開くので、「新しいドメインを追加」のボタンをクリックします。

Stripe Apple Payドメイン登録

すると、以下の画像のようなドメイン入力欄と、確認ファイルのダウンロードリンクのウィンドウが開きます。

Stripe Apple Payドメイン登録

www.yourdomain.com や、 store.yourdomain.com などのストアドメインを入力し、その後、「確認ファイルをダウンロード」ボタンをクリックしてください。

すると、パソコンに、apple-developer-merchantid-domain-association という名前のファイルがダウンロードされます。
このファイルを、ウィンドウ下部の案内通りの階層 https://example.com/.well-known/apple-developer-merchantid-domain-association という配置になるように、FTPにてアップロードします。
.well-known のフォルダがMagento2ルート直下に存在していない場合は、その名称で新規でフォルダを作成し、その中へファイルをアップロードしてください。(フォルダ名の冒頭は、. になります。)

そして、右下の「追加」ボタンをクリックします。
無事にドメインが追加されると、以下の画像のように、リンクアイコンと、緑色テキストでドメインが表示されます。

Stripe Apple Payドメイン追加

また、もう一つ、Stripeダッシュボードで設定する項目として、Webhooks があります。
Webhookは、Stripe側でのイベント(データ処理)を、Magento2の管理画面側に送信するためのメカニズムで、ストアでのカードやApple Payなどの受注では必要ではないのですが、Subscription(定期購入) や China Payments(Alipay/WeChatPay) などのアドオンモジュールをインストールしている場合は、必須の設定になります。

Magento2の管理画面では、Cryozonicのエクステンションをインストール後、次のようなメッセージが画面上部に表示されるようになります。

Stripe Webhookメッセージ

Stripe Webhooks have not yet been configured これは、「Stripe Webhooksが設定されていません」というメッセージで、Stripeダッシュボード側にて、Wenhooksを設定する必要があります。

Stripeダッシュボード左メニューから 開発者 > Webhook に進んでください。

Stripe Webhookの設定

「エンドポイントを追加」のボタンをクリックすると、WebhookのエンドポイントURLを入力するウィンドウが開きます。

Stripe Webhookの設定

エンドポイントURLには、https://www.yourdomain.com/cryozonic-stripe/webhooks のパスを、ご自身にストアURLドメインにて入力してください。
送信イベントは、一般的には、欄中央にある「すべてのイベントを受信」のテキストをクリックして、すべてのイベントを選択してください。(画像はすでに選択済みの状態です。)
そして、右下の「エンドポイントを追加」ボタンをクリックします。

無事にWebhookが設定されると、以下画像のように、エンドポイントURLが表示され、緑色の「有効」マークがつきます。

StripeエンドポイントWebhook追加

通常、Webhook設定後も、Magento2管理画面では、黄色背景のメッセージが表示されたままになっています。
これは、このメッセージの表示が、Webhookの受信履歴がMagento2のキャッシュフォルダに存在しているかどうかで判別されるためです。テスト受注後には、キャッシュに情報が残りますので、管理画面のメッセージが消えます。
ただし、Magento2の作業で、/var/ フォルダ以下のキャッシュをクリアした場合には、再びメッセージが表示されるようになります。再表示されても、Webhook自体の設定はStripe側で完了していますので、ご安心ください。

今回は、CryozonicのStripe準公式の無料エクステンションをベースに、Magento2とStripe決済の連携について説明いたしました。決済まわりは慎重な設定作業が求められますので、様々なデバイスのテスト環境で試してから、本番環境へと移行するようにしてください。

追記:
2019年7月2日、この記事でご紹介したCryozonicのStripe連携エクステンションが、Stripe公式エクステンション(Stripe Payments SCA Ready)として、Magento Marketplaceでもリリースされました。以下より無料で入手が可能です。
https://marketplace.magento.com/catalog/product/view/id/130365/

Magento2 Stripe公式エクステンション by Cryozonic

Marketplaceにて購入(無料)した場合は、この記事でご案内しているZipファイルの手動作業は不要となり、以下のコマンド一行で、Stripe Payments、Stripe Express、Stripe Euro Payments、Stripe China Payments をインストールすることができます。(Subscription/定期購読のモジュールのみ外れています。)

上がVPS/Cloud環境でのコマンド、下が共用サーバー環境でのコマンドになります。

Copy to Clipboard
Copy to Clipboard

上記コマンドを実行後、Magento2のセットアップ、コンパイル、キャッシュクリアのコマンドを実行してください。

また、Composerでインストールした場合、管理画面 > Stores > Configration > Sales > Payment Methods では、Stripe連携エクステンションの設定欄が、以下のように、目立つポジションに(Stripeのロゴつきで)入ります。

Magento2 Stripe公式エクステンション

「Configure」ボタンをクリックすると、それぞれの項目設定が開きます。

Stripe連携エクステンション Magento2管理画面

Composerでのインストール方法について、詳細は以下ガイドをご参照ください。
https://marketplace.magento.com/media/catalog/product/stripe-stripe-payments-1-1-2-ce/installation_guides.pdf