戻る

VibeFox Stripe for OpenCart — ヘルプ

要件

OpenCart: 3.0.x(3.0.5.0 でテスト済み)または 4.0.2 以降(4.1.0.3 でテスト済み)。

PHP: 8.0 以降。

Stripe アカウント: Stripe アカウントのシークレット API キーと、Stripe Dashboard 内のウェブフックエンドポイントが必要です(設定を参照)。使用するのはシークレットキーとウェブフックの署名シークレットだけです。Stripe Checkout は Stripe がホストするページのため、公開可能キー(pk_...)は不要です。

VibeFox ライセンスキー: vibefox.net で購入します。1 つのキーは 1 つのドメインで使用できます。

インストール

このダウンロードは、両方の OpenCart バージョン用パッケージを含む 1 つの zip ファイルです。コンピューターで解凍してください。中には README.txt、OpenCart 3 用パッケージ wcp_stripe_gateway-oc3-(version).ocmod.zip、OpenCart 4 用パッケージ wcp_stripe_gateway.ocmod.zip が含まれています。ご利用の OpenCart のバージョンに合ったパッケージだけをインストールしてください。ライセンスキーは両バージョンで同じです。

OpenCart 3

1. 管理画面で Extensions > Installer を開き、Upload をクリックして、ファイル wcp_stripe_gateway-oc3-(version).ocmod.zip を選択します。この拡張機能には OCMOD による変更がないため、Extensions > Modifications を更新する必要はありません。インストーラーを使う代わりに、このパッケージの upload フォルダーの内容をストアのルートフォルダーにコピーすることもできます。

2. Extensions > Extensions に移動し、種類として Payments を選択します。VibeFox Stripe Gateway を探して、Install(緑色の + ボタン)をクリックします。管理者ユーザーに、決済拡張機能の一覧を変更する権限が必要です。

3. Edit(鉛筆のボタン)をクリックして設定ページを開きます。ページ上部のライセンスブロックにある License key に VibeFox ライセンスキーを貼り付け、Activate をクリックします(ライセンスキーを参照)。

4. Stripe のシークレットキーを貼り付け、Stripe Dashboard でウェブフックを設定し、その署名シークレットを貼り付けます(設定を参照)。

5. Enable/Disable をオンにして Save をクリックします。テストカード 4242 4242 4242 4242 でテストモードの決済を試してから、Test Mode をオフにします。

OpenCart 4

1. 管理画面で Extensions > Installer を開き、Upload をクリックして、ファイル wcp_stripe_gateway.ocmod.zip を選択します。ファイル名は変更しないでください。OpenCart 4 はファイル名から拡張機能のコードを取得するため、名前を変更したパッケージは動作しません。

2. インストール済み拡張機能の一覧に、同じページでパッケージが表示されます。その横にある Install(緑色の + ボタン)をクリックします。

3. Extensions > Extensions に移動し、種類として Payments を選択します。VibeFox Stripe Gateway を探して Install(緑色の + ボタン)をクリックし、次に Edit(鉛筆のボタン)をクリックします。

4. ライセンスキー、Stripe のキー、ウェブフックを、OpenCart 3 の手順 3〜5 と同じように入力します。設定ページとそのフィールドは両バージョンで同じです。ウェブフックの URL だけが異なります(ウェブフックを参照)。

新規インストール時は、支払い方法がオフ、テストモードがオンの状態で始まります。

設定

すべての設定は拡張機能のページにあります: Extensions > Extensions > Payments > VibeFox Stripe Gateway > Edit。セクションは左側に一覧表示され、一覧の下にある Save ボタンでページ全体を保存します。設定の上では、現在のモードにシークレットキーがない場合(この場合、チェックアウトで支払い方法が非表示になります)、またはウェブフックの署名シークレットがない場合(この場合、注文は購入者が支払い後にストアへ戻ったときにのみ確定されます)に警告が表示されます。また、テストモードがオンの間は テストモードがオンです。実際の決済は受け付けられません。 と表示されます。拡張機能を変更する権限がない場合、ページには設定が表示されますが、保存はできません。

保存時、Title は 1〜128 文字である必要があり、Sort Order は整数である必要があり、Total は 0 以上の数値である必要があります。キーまたはシークレットが想定された接頭辞で始まっていない場合、設定は保存されますが、設定の上にフィールド名を示す警告が表示されます。

Stripe Checkout

Enable/Disable: Enable Stripe Gateway で支払い方法のオン・オフを切り替えます。既定値: オフ。

Title: 購入者がチェックアウトで見る支払い方法の名前です。注文に保存される支払い方法名にもなります。既定値: Stripe。必須。

Description: 購入者が Confirm Order の段階で、確認ボタンの上に見るテキストです。既定値: Pay securely with your credit or debit card via Stripe.

Sort Order: チェックアウトの支払い方法の中で、Stripe を表示する位置です。空欄のままにするか、整数を入力します。

Geo Zone: 選択したジオゾーン内の支払い先住所に対してのみ、Stripe を提供します。既定値: All zones。ジオゾーンは System > Localisation > Geo Zones で設定します。

Total: Stripe が提供されるために注文が達している必要がある、ストアの既定の通貨でのチェックアウト合計額です。空欄にすると、どの金額でも Stripe を提供します。

API キー

Stripe Dashboard > Developers > API keys からシークレットキーをコピーします(このページにはリンクがあります)。テスト用キーと本番用キーは別々です。テストモードではテスト用キーのみ、本番モードでは本番用キーのみを使用します。

Test Mode: Stripe のテスト用キーを使用します。実際の金額は請求されません。4242 4242 4242 4242 などの Stripe テストカードで支払ってください。既定値: オン。実際の決済を受け付けるにはオフにします。オンの間、購入者には Confirm Order の段階で テストモード: 実際の決済は受け付けられません。 と表示されます。

Test Secret Key: テストモードのシークレットキーです。sk_test_ で始まります(制限付きキーの場合は rk_test_ で始まります)。

Test Webhook Secret: テストモードで作成したウェブフックエンドポイントの署名シークレット(whsec_...)です。

Live Secret Key: 本番モードのシークレットキーです。sk_live_ で始まります(制限付きキーの場合は rk_live_ で始まります)。

Live Webhook Secret: 本番モードで作成したウェブフックエンドポイントの署名シークレット(whsec_...)です。

保存済みのキーとシークレットは再び表示されません。欄は空のままで、保存済み — 変更しない場合は空欄のままにしてください。 と表示されます。変更する場合にのみ新しい値を入力してください。保存済みの値を削除するには、欄の下にある Clear the saved value on save にチェックを入れ、Save をクリックします。

ウェブフック

ウェブフックは、決済が行われたことをストアに通知します。Stripe Dashboard > Developers > Webhooks で、テストモード用と本番モード用にそれぞれエンドポイントを追加します。このセクションの Endpoint URL に表示される URL を使用します。OpenCart 3 では https://your-store/index.php?route=extension/payment/wcp_stripe_gateway/webhook のような形式、OpenCart 4 では https://your-store/index.php?route=extension/wcp_stripe_gateway/payment/wcp_stripe_gateway.webhook のような形式です。URL は OpenCart の設置先のストアフロントのアドレスから作られます。設定に表示されている URL を正確にコピーしてください。

各エンドポイントで次のイベントを選択します(このセクションにも一覧があります):

checkout.session.completed: 購入者が Stripe のページで決済を完了しました。
checkout.session.async_payment_succeeded: 遅延決済が確認されました。
checkout.session.async_payment_failed: 遅延決済が失敗しました。
charge.refunded: 決済が返金されました(例: Stripe Dashboard での返金)。

各エンドポイントを作成したら、Stripe からその署名シークレット(whsec_...)をコピーし、Test Webhook Secret または Live Webhook Secret に貼り付けます。有効な署名のないウェブフックは拒否されます。イベントは、決済が行われたモードのシークレットで署名されている場合にのみ受け付けられます。そのため、テスト用シークレットで本番の決済が確定されることはありません。ウェブフックがない場合、注文は購入者が支払い後にストアへ戻ったときにのみ確定されます。

注文

OpenCart は、Confirm Order の段階でステータスのない注文(未完了の注文)を作成します。注文がステータスを得るのは、Stripe が決済を確認した後だけです。以下の各欄には、OpenCart の注文ステータスが一覧表示されます。

Order Status After Payment: 決済が成功した後に設定されるステータスです。既定値: Processing。

Awaiting Payment Status: 遅延決済: チェックアウトは完了しましたが、Stripe はまだ入金を確認していません。既定値: Pending。

On Hold (Review) Status: 決済にはご自身による確認が必要です(注文ステータスを参照)。既定値: Pending。OpenCart には On hold ステータスがないためです。System > Localisation > Order Statuses で独自のステータスを作成し、ここで選択できます。

Failed Payment Status: 遅延決済が失敗しました。既定値: Failed。

Refunded Status: 注文ページから決済が全額返金された後に設定されます。既定値: Refunded。

詳細設定

Logging: Stripe のリクエストとウェブフックを、OpenCart のログフォルダー(storage/logs)内の strg_debug.log.php に書き込みます。このファイルは Web から開くことはできず、5 MB に達すると strg_debug.old.log.php に移動されます。キーと購入者データは記録されません。既定値: オフ。オフの間は、エラーを含め何も書き込まれません。

Log: ログのサイズと最新のエントリーを表示します。Clear log をクリックすると、ログが空になります。

Delete Data on Uninstall: オンにすると、拡張機能をアンインストールしたときにゲートウェイの設定とログが削除されます。Stripe の取引と返金は常に保持されるため、古い注文は引き続き返金できます。既定値: オフ。

インポート / エクスポート

Export: Download JSON で、設定を JSON ファイルとして保存します。シークレットキーはエクスポートされません。

Import: 以前エクスポートした JSON を貼り付け、Import をクリックして設定を復元します。保存済みのシークレットキーは保持されます。

チェックアウト

Payment Method の段階で、購入者は支払い方法を選択します(既定では Stripe)。Confirm Order の段階では、購入者にはあなたの説明文と、Stripe のページへ移動して安全に決済を完了します。 という注記が表示されます。OpenCart はこの段階で注文を作成しますが、まだステータスはありません。購入者が Confirm Order をクリックすると、拡張機能は注文金額について、注文の通貨で Stripe Checkout セッションを作成し、購入者を Stripe の決済ページへ移動させます。そこで購入者はクレジットカードまたはデビットカードで支払います。OpenCart 4 では、購入者は支払い方法ブロックの Choose ボタンを使って、Payment method options ウィンドウで支払い方法を選択し、チェックアウトページ下部の Confirm Order をクリックします。購入者のメールアドレスは Stripe に渡され、Stripe のページでは決済は Order # と注文番号として表示されます。

支払い後、購入者はストアに戻ります。注文が支払い済みとしてマークされるのは、Stripe が決済を確認した後だけです。確認は、署名付きのウェブフック経由、または購入者が戻ったときにサーバー側から Stripe へのリクエストによって行われます。その後、注文は OpenCart の標準的な方法でステータスを取得し、通常の注文メールと在庫の更新が行われ、購入者には OpenCart の注文完了ページが表示されます。遅延決済の場合、ページには お支払いは Stripe で確認中です。確認が完了次第、メールでお知らせします。 も表示されます。購入者が戻った時点で Stripe がまだ決済を確認していない場合は、同じ文言と Check again ボタンを含む 決済の確認 ページが表示されます。ウェブフックが届き次第、注文ステータスが設定されます。

購入者が Stripe のページでキャンセルすると、Stripe セッションは閉じられ、購入者はチェックアウトに戻ります。メッセージは 決済がキャンセルされました。もう一度お試しいただくか、別の支払い方法を選択してください。 です。決済が完了しなかった場合、または遅延決済が失敗した場合は、決済が完了しませんでした。もう一度お試しいただくか、別の支払い方法を選択してください。 と表示されます。カートは保持されます。OpenCart 4 では、これらのメッセージはチェックアウトページの上部に表示されます。新しい試行(OpenCart 3 では Confirm Order の段階が表示されるたびに新しい注文を作成し、OpenCart 4 ではチェックアウトの注文を更新します)のたびに、そのカートの前回の未完了の Stripe セッションが閉じられるため、二重に支払われることはありません。以前のセッションがすでに支払い済みだと判明した場合は、新たに決済を開始する代わりに、その支払いが確定されます。同じカートの別の注文がすでに Stripe で支払い済みの場合、新たな決済は開始されず、購入者には注文完了ページが表示されます。数量の変更を含め、カートに変更があった場合は新しいカートとみなされ、それ自体の支払いが必要になります。

OpenCart 4 では、成功ページが表示されるまで注文はチェックアウト内に保持されます。その注文が、その間に支払いなしで閉じられた場合(たとえば、遅延決済が失敗した場合や、ご自身がキャンセルした場合)、購入者は未完了の決済に関するメッセージとともにチェックアウトに戻され、次の Confirm Order では新しい注文が支払われます。支払い済みの注文が、別のカートについて支払い済みとして表示されることは決してありません。

Stripe が決済を開始できない場合、購入者は Confirm Order の段階に留まり、ボタンの上に短いメッセージが表示されます。例: 注文金額が、この通貨で Stripe が請求できる最低金額を下回っています。別の支払い方法を選択してください。 技術的な理由はログに記録されます。

ストアがメンテナンスモードの間も、ウェブフックは機能します。OpenCart は決済拡張機能のリクエストを通過させるためです。

この拡張機能はカード決済のみを受け付け、Stripe のページで即時に請求されます。保存済みカード、サブスクリプション、定期決済には対応しておらず、ストア上にカードフォームも、Apple Pay や Google Pay のボタンもありません。また、承認と請求を分けることもできません。

注文と返金

注文ステータス

ステータスなし(未完了の注文): 購入者は Stripe に移動したものの、まだ支払っていないか、Stripe がまだ決済を確認していません。Sales > Orders では、このような注文は Order Status フィルターを Missing Orders に設定した場合にのみ表示されます。

Order Status After Payment(既定値 Processing): 決済が確認されました。メモには、Stripe の決済(pi_...)、セッション、確認方法(ウェブフックまたは戻り)が表示されます。

Awaiting Payment Status(既定値 Pending): 購入者が遅延決済の方法でチェックアウトを完了しました。Stripe が決済を確認すると、注文は Order Status After Payment に移ります。決済が失敗すると、Failed Payment Status に移ります。OpenCart は、これらの変更を購入者に通知します。

On Hold (Review) Status(既定値 Pending): Stripe が注文合計と異なる金額または通貨を報告した、または注文がキャンセルされたかステータスが変更された後に決済が届いた場合です。メモにその内容が説明されます。注文を確認して処理するか、決済を返金してください。

Refunded Status(既定値 Refunded): 決済が拡張機能を通じて全額返金されました。

すでに支払い済みの注文に対して 2 回目の決済が届いた場合、その注文は変更されません。メモで確認し、重複分を Stripe Dashboard で返金するよう求められます。決済が、すでに支払い済みのカートの別の注文に属する場合も同様です。その注文はステータスのないままになり、メモは支払い済みの注文に追加されます。

メモは、購入者には表示されない注文の History の項目です。

VibeFox Stripe Gateway タブ

Sales > Orders で、Stripe で支払われた注文を開きます。注文ページの下部、History と Additional の隣にある VibeFox Stripe Gateway タブには、Stripe の決済 ID(Stripe Dashboard の決済にリンク)が表示されます。テスト決済には Test mode ラベルが付きます。また、Checkout Session、決済の Status、Paid / refunded の金額、返金フォーム、返金履歴、注文の Stripe notes も表示されます。このタブは、拡張機能へのアクセス権があるユーザーに表示されます。

返金

VibeFox Stripe Gateway タブで Amount を入力します(まだ返金されていない金額が自動入力されます)。必要に応じて Reason (optional) を入力し、Refund via Stripe をクリックします。この金額を Stripe 経由で返金しますか?この操作は取り消せません。 という確認に応じてください。全額返金と一部返金に対応しています。拡張機能を変更する権限が必要です(System > Users > User Groups で設定します)。返金は注文の合計額ではなく、Stripe が請求した金額と通貨で行われます。返金は決済が行われたモード(テストまたは本番)に送られるため、そのモードのシークレットキーが設定されている必要があります。Stripe が返金を受け付けない場合、タブにエラーが表示され、返金は記録されません。成功した返金は、Stripe の返金 ID とともに履歴とメモに追加されます。全額返金では、注文は購入者に通知されず、商品も在庫に戻されずに Refunded Status に設定されます。手動でステータスを変更した場合と同じです。一部返金ではステータスは変わりません。返金は、Stripe が決済を確認した後に利用できます。

Sales > Returns での商品返品では、Stripe を通じて返金は行われません。

Stripe Dashboard で行われた返金は charge.refunded ウェブフックで届き、Stripe 側の返金総額とともにメモに追加されます。注文ステータスは自動的には変更されません。必要に応じて手動で更新してください。

ライセンスキー

この拡張機能は、vibefox.net で取得した VibeFox ライセンスキーで動作します。License — VibeFox Stripe Gateway のライセンスブロックは、Extensions > Extensions > Payments > VibeFox Stripe Gateway > Edit の最初のブロックで、設定の上に表示されます。キーを License key に貼り付けて Activate をクリックします。その後、ブロックにはマスクされたキー、ステータス(例: ライセンスの有効期限日とドメイン)、そして次のボタンが表示されます。ステータスを再確認する Check now、別のキーを入力する Change key、このストアからキーを削除する Remove key。その下には、Product: opencart-payment-stripe の行と、vibefox.net のアカウントを開くリンク Manage licenses and domains in your account があります。キーを変更できるのは、拡張機能の Modify 権限を持つ管理者ユーザーのみです。ブロックのテキストは管理画面の言語に従います(英語とロシア語が含まれます)。

キーが受け付けられない場合、ブロックには理由が表示されます。例: Key not found、This key belongs to another product、Domain limit reached、License expired on と日付。ストアのアドレスを変更した後、またはアカウントでドメインの枠を解放した後は、Check now をクリックしてください。ライセンスサーバーに接続できない場合、拡張機能は最後に確認できたステータスで動作を続けます。

1 つのキーは 1 つのドメインで使用できます。ドメインとは、OpenCart の設定にあるストアのアドレスです。ストアからキーを削除しても、ドメインの枠は解放されません。vibefox.net のアカウントで枠を解放してください。

有効なキーがない場合、チェックアウトで購入者に Stripe は表示されません。それでも決済が開始された場合、購入者には This payment method is not available. Please choose another one. と表示されます。管理画面に同じブラウザーでログインしている管理者ユーザーには、ストアで支払い方法が表示され、(unlicensed — visible to admins only) と表示されます。そのため、キーを購入する前に拡張機能を設定し、テストできます。OpenCart 4 では、このプレビューは利用できません。ストアは管理画面へのログインを認識しないため、有効なキーがない場合は、支払い方法がすべての人に対して非表示になります。Edit ページを一度開くと、管理画面の Dashboard にリマインダーが表示されます。× で閉じると、7 日間非表示になります。既存の注文には影響しません。すでに開始された決済は引き続き確認され、返金も機能します。

ライセンスの有効期限が切れても、拡張機能は動作を続けますが、アップデートとサポートには更新が必要です。管理画面の Dashboard または Edit ページを開くと、ステータスは自動的に再確認されます。キーを入力してから最初の 14 日間は 1 日に 1 回、その後は週に 1 回です。cron ジョブは不要です。拡張機能をアンインストールすると、ライセンスキーとライセンスステータスは常に削除されます。

トラブルシューティング

Stripe がチェックアウトに表示されない: ライセンスが有効であること、Enable/Disable がオンであること、現在のモードにシークレットキーがあることを確認してください。現在のモードとは、テストモードでは Test Secret Key、本番モードでは Live Secret Key です。キーがない場合、設定ページに警告が表示されます。また、支払い先住所が選択した Geo Zone に含まれていること、注文が設定の Total に達していることも確認してください。

決済は完了したのに、注文がステータスなしのまま: ウェブフックが機能していません。Stripe Dashboard で、使用しているモード(テストまたは本番)にエンドポイントが存在すること、その URL が Endpoint URL に表示されているものと正確に一致すること、4 つのイベントがすべて選択されていることを確認してください。そのエンドポイントの署名シークレットが対応する欄(Test Webhook Secret または Live Webhook Secret)に入っているかも確認します。Stripe Dashboard には、各ウェブフックに対するストアの応答が表示されます。購入者が支払い後にストアへ戻ったときにも、注文はステータスを得ます。

ウェブフックが Webhook secret not configured と応答する: どちらのウェブフックシークレットも設定されていません。署名シークレットを設定に貼り付けてください。

ウェブフックが Invalid signature と応答する: 署名シークレットが別のエンドポイントまたは別のモードのものである、もしくはサーバーの時計が正しくありません。Stripe の署名は、サーバー時刻から 5 分以内のものだけが受け付けられます。本番決済のイベントがテスト用シークレットで署名されている場合、またはその逆の場合も、応答は Invalid signature になります。テストと本番のシークレットが入れ替わっていないか確認してください。

ウェブフックが Busy, retry と応答する: 注文がちょうど別のリクエストによって確認されていた、または注文ステータスを設定できませんでした。Stripe はウェブフックを自動的に再試行します。理由を確認するには Logging をオンにしてください。

ブラウザーでウェブフックの URL を開くと Method not allowed と表示される: これは正常です。この URL は Stripe からのリクエストだけを受け付けます。

保存時に「The value does not look right」という警告が出る: キーが間違った欄に貼り付けられています。シークレットキーは sk_test_ / rk_test_ または sk_live_ / rk_live_ で始まり、ウェブフックシークレットは whsec_ で始まります。

購入者が Confirm Order の後にエラーを見る: Logging をオンにして、拡張機能ページの Log 欄を確認してください。This payment method is not available. Please reload the checkout page. は、決済セッションが注文と一致しなくなった、またはその間に支払い方法がオフにされたことを意味します。購入者はチェックアウトを再読み込みします。キーが誤っている場合は、支払い方法が正しく設定されていないというメッセージが表示されます。通貨の Stripe 最低額(例: 0.50 EUR)を下回る注文合計は、Stripe で支払うことができません。

テストの決済が本番の決済を確定させない: テストの決済と本番の決済は分けて扱われます。Test Mode を使用したいモードに切り替え、そのモードのキーとウェブフックを使用してください。

支払い後に注文が確認ステータスになっている: VibeFox Stripe Gateway タブのメモを確認してください(注文ステータスを参照)。その後、注文を処理するか、決済を返金してください。

タブに返金フォームがない: タブに理由が表示されます。決済がまだ確認されていない、決済が全額返金済みである、またはユーザーグループに拡張機能を変更する権限がない、のいずれかです。

モードに関するメッセージで返金が失敗する: 決済はテストモードまたは本番モードで行われており、そのモードのシークレットキーが設定されていません。入力してから再度お試しください。

開発者向け: Stripe セッションを作成する前に、拡張機能はセッションパラメーターと注文を伴う OpenCart イベント strg_checkout_session_params を発火します。

アンインストール

Extensions > Extensions に移動し、種類として Payments を選択して、VibeFox Stripe Gateway の横にある Uninstall(赤い − ボタン)をクリックします。この拡張機能のライセンスキーとライセンスステータスは、常に削除されます。OpenCart は拡張機能自身の設定を常に削除します。具体的には、Enable/Disable、Sort Order、Geo Zone、Total、そして Orders セクションの注文ステータスです。これらは再インストール時に既定値に戻ります。拡張機能の OpenCart イベントも削除されます(OpenCart 4 では、そのイベントに加えて、メンテナンスモードでもウェブフックを通すスタートアップアクションも削除されます)。Delete Data on Uninstall がオンの場合、残りのゲートウェイ設定(タイトル、説明、テストモード、キー、ウェブフックシークレット、ログ)とログが削除されます。オフの場合、後で再インストールするために保持されます。Stripe の取引と返金は常に保持されるため、以前に支払われた注文は再インストール後も返金できます。既存の注文は支払いメモを保持します。

OpenCart 4 で拡張機能のファイルも削除するには、アンインストール後に Extensions > Installer に移動し、インストール済み拡張機能の一覧にある VibeFox Stripe Gateway の横の Uninstall(オレンジ色の − ボタン)をクリックしてから、アップロードしたパッケージを削除するために Delete(赤いゴミ箱のボタン)をクリックしてください。

Stripe は、それぞれの所有者の商標です。この拡張機能は Stripe と提携しておらず、Stripe による推奨も受けていません。