VibeFox Stripe for PrestaShop — ヘルプ
要件
PrestaShop:8.0~9.x。
PHP:8.0 以降。古いバージョンの PHP では、モジュールのインストールは拒否されます。
Stripe アカウント:Stripe アカウントのシークレット API キーと、Stripe Dashboard でのウェブフックエンドポイントが必要です(設定を参照)。使用するのはシークレットキーとウェブフックの署名シークレットだけです。Stripe Checkout は Stripe がホストするページのため、公開可能キー(pk_...)は不要です。
VibeFox ライセンスキー:vibefox.net で購入します。1 つのキーは 1 つのドメインで機能します。
インストール
1. バックオフィスで Modules > Module Manager に移動し、Upload a module をクリックします。モジュールの ZIP ファイルを選択します。
2. アップロードが完了したら Configure をクリックします。あるいは後でモジュール一覧から VibeFox Stripe Gateway を探し、Configure をクリックします。
3. Configure ページ上部のライセンスブロックにある License key に VibeFox ライセンスキーを入力し、Activate をクリックします(ライセンスキーを参照)。
4. Stripe のシークレットキーを貼り付け、Stripe Dashboard でウェブフックを設定し、その署名シークレットを貼り付けます(設定を参照)。
5. Enable/Disable をオンにして Save をクリックします。テストカード 4242 4242 4242 4242 でテストモードの決済を試し、その後 Test Mode をオフにします。
インストール時に、モジュールは 2 つの注文ステータス Awaiting Stripe payment と Stripe payment on hold を作成します。PrestaShop は、新しい決済モジュールをすべての通貨、国、顧客グループで有効にします。これらは Payment > Preferences で制限できます。
設定
すべての設定はモジュールのページにあります:Modules > Module Manager > VibeFox Stripe Gateway > Configure。各セクションには独自の Save ボタンがあり、ページ全体が保存されます。フィールドの上では、現在のモードにシークレットキーがない場合(この場合、決済方法はチェックアウトで非表示になります)や、ウェブフックの署名シークレットがない場合(この場合、お客様がストアに戻ったときにのみ注文が確認されます)に、ページが警告します。テストモードがオンの間は、テストモードがオンです:実際の決済は行われません。 と表示されます。
Stripe Checkout
Enable/Disable:Enable Stripe Gateway は、決済方法をオンまたはオフにします。Default: off。
Title:チェックアウトでお客様に表示される決済方法の名前です。注文に保存される決済方法名でもあります。Default: Stripe。必須。
Description:チェックアウトで決済方法の下に表示されるテキストです。Default: Pay securely with your credit or debit card via Stripe。
API キー
Stripe Dashboard > Developers > API keys からシークレットキーをコピーします。テスト用キーと本番用キーは別々です。テストモードはテスト用キーのみを、本番モードは本番用キーのみを使用します。保存時に値が想定されるプレフィックスで始まらない場合(たとえばシークレットキーの代わりに公開可能キーを貼り付けた場合)、モジュールが警告します。
Test Mode:Stripe のテスト用キーを使用します。実際の料金は請求されません。4242 4242 4242 4242 などの Stripe テストカードで支払ってください。Default: on。実際の決済を受け付けるにはオフにします。オンの間は、お客様には決済方法の下に テストモード:実際の決済は行われません。 と表示されます。
Test Secret Key:テストモードのシークレットキーです。sk_test_ で始まります(制限付きキーの場合は rk_test_)。
Test Webhook Secret:テストモードで作成したウェブフックエンドポイントの署名シークレット(whsec_...)です。
Live Secret Key:本番モードのシークレットキーです。sk_live_ で始まります(制限付きキーの場合は rk_live_)。
Live Webhook Secret:本番モードで作成したウェブフックエンドポイントの署名シークレット(whsec_...)です。
保存済みのキーとシークレットは、二度と表示されません。フィールドは空のままで、保存済み — そのままにするには空欄のままにしてください。 と表示されます。変更する場合のみ新しい値を入力してください。
Clear saved secrets:キーまたはシークレットにチェックを入れて Save をクリックすると、削除されます。空欄の場合は保存済みの値が維持されます。
Webhook
ウェブフックは、決済が行われたことをストアに通知します。Stripe Dashboard > Developers > Webhooks で、テストモード用と本番モード用にそれぞれエンドポイントを追加します。このセクションの Endpoint URL に表示される URL を使用してください。フレンドリー URL が有効な場合、https://your-shop/module/wcp_stripe_gateway/webhook のような形式になり、/en/ のような言語コードが付くこともあります。Stripe はリダイレクトに従わないため、設定に表示された URL を正確にコピーしてください。
各エンドポイントで次のイベントを選択します(このセクションにも記載されています):
各エンドポイントを作成したら、Stripe からその署名シークレット(whsec_...)をコピーし、Test Webhook Secret または Live Webhook Secret に貼り付けます。有効な署名のないウェブフックは拒否されます。イベントは決済が行われたモードのシークレットで署名されている必要があるため、テスト用シークレットが本番の決済を確認することはありません。ウェブフックがない場合、注文は、お客様が決済後にストアに戻ったときにのみ作成されます。
注文
Order Status After Payment:決済成功後に設定される注文ステータスです。
遅延決済は Awaiting Stripe payment で待機します。金額や通貨の不一致は、常に Stripe payment on hold になります。
詳細設定
Logging:Stripe へのリクエストとウェブフックを、モジュールフォルダー内の logs/strg_debug.log.php に書き込みます。このファイルは Web から開くことはできません。キーとお客様のデータは記録されません。Default: off。オフの間は何も書き込まれません。
Log:ログのサイズと最新のエントリを表示します。Clear log をクリックすると空になります。
Delete Data on Uninstall:オンの場合、モジュールをアンインストールするとゲートウェイの設定とログが削除されます。Stripe の取引と返金、およびモジュールの注文ステータスは常に残るため、既存の注文は引き続き機能します。Default: off。
チェックアウト
支払いのステップで、お客様は決済方法(既定では Stripe)を選択し、安全に決済を完了するために Stripe に移動します。 という注記を確認します。確定すると、モジュールはカートの通貨でカートの合計金額について Stripe Checkout セッションを作成し、お客様を Stripe の決済ページに送ります。そこでお客様はクレジットカードまたはデビットカードで支払います。お客様のメールアドレスは Stripe に渡され、決済は Stripe のページに Cart # とカート番号として表示されます。この時点ではまだ注文は存在しません。
支払い後、お客様はストアに戻ります。注文は、Stripe が確認した後にのみ支払い済みとしてマークされます。署名付きのウェブフック、またはお客様が戻った際に Stripe へ送られるサーバー側のリクエストによって確認されます。その後、注文が作成され、お客様には Stripe でのお支払いを受け付けました。 と表示される標準の注文確認ページが表示されます。遅延決済の場合、ページには お支払いは Stripe で確認中です。確認が完了次第、メールでお知らせします。 と表示されます。遅延決済が後に失敗した場合、ページには Stripe でのお支払いが完了しませんでした。この注文についてお問い合わせください。 と表示されます。お客様が戻った時点で Stripe がまだ決済を確認していない場合、Payment confirmation ページに同じ文面と Check again ボタンが表示され、ウェブフックが届いた時点で注文が作成されます。
お客様が Stripe のページでキャンセルすると、Stripe セッションは閉じられ、お客様は お支払いはキャンセルされました。再試行するか、別の決済方法を選択できます。 と表示されたチェックアウトに戻ります。決済が完了しなかった場合のメッセージは お支払いは完了しませんでした。再試行するか、別の決済方法を選択できます。 です。カートは保持されます。新しい試行ごとに以前の Stripe セッションが閉じられるため、同じカートを 2 回支払うことはできません。以前のセッションがすでに支払い済みと判明した場合は、新たに決済するのではなく注文が作成されます。
Stripe が決済を開始できない場合、お客様はチェックアウトに留まり、たとえば ご注文金額は、この通貨で Stripe が請求できる最低金額を下回っています。別の決済方法をお選びください。 といった短いメッセージが表示されます。技術的な理由はログに記録されます。
決済と確認の間にカート内のクーポンが無効になった場合、PrestaShop はそれを注文から削除します。お客様は割引後の価格で支払っているため、注文は注記付きで Stripe payment on hold に移ります。
ウェブフックは、ストアがメンテナンスモードの間も動作し、ストアの国による制限にはブロックされません。
本モジュールはカードによる決済のみを受け付け、Stripe のページで直ちに請求します。保存済みカード、サブスクリプションや定期決済、サイト上のカードフォーム、サイト上の Apple Pay や Google Pay ボタン、オーソリとキャプチャの分離はありません。
注文と返金
注文ステータス
まだ注文はありません:お客様は Stripe に移動しましたが、まだ支払っていないか、Stripe がまだ決済を確認していません。存在するのはカートだけです。
Payment accepted, Delivered or Stripe payment on hold:決済が確認されました。ステータスは Order Status After Payment に従います。決済は、Stripe の決済 ID(pi_...)を取引 ID として記録され、メモには Stripe の決済、セッション、確認方法(ウェブフックまたは戻り)が表示されます。
Awaiting Stripe payment:お客様が遅延決済の方法でチェックアウトを完了しました。Stripe が決済を確認すると、注文は支払い済みのステータスに移ります。
Stripe payment on hold after payment:Stripe が注文合計と異なる金額または通貨を報告した(たとえば決済開始後にカートが変更された)、クーポンが削除された、または注文がキャンセルされた後に決済が届いた場合です。メモに理由が記載されます。注文を確認し、対応するか、決済を返金してください。
Payment error:遅延決済が失敗しました。
Refunded:モジュールを通じて決済の全額が返金されました。
すでに支払い済みの注文に 2 回目の決済が届いた場合、注文は変更されません。メモで確認し、Stripe Dashboard で重複分を返金するよう求められます。
Stripe payment ブロック
注文ページには Stripe payment ブロックが表示されます。内容は、Stripe の決済 ID(Stripe Dashboard の決済にリンク)、Checkout Session、決済ステータス、Stripe が請求した金額と返金された金額、テスト決済用の Test mode バッジ、返金履歴、注文の Stripe notes です。
返金
Stripe payment ブロックで金額を入力し(まだ返金されていない金額が自動入力されます)、任意で理由を入力して、Refund via Stripe をクリックします。この金額を Stripe 経由で返金しますか?この操作は取り消せません。 という確認に同意してください。全額返金と一部返金に対応しています。注文を編集する権限が必要です。返金は Stripe が請求した金額と通貨で行われるため、金額や通貨の不一致の後は、注文合計ではなく、お客様が実際に支払った金額まで返金できます。返金は決済が行われたモード(テストまたは本番)で送信されるため、そのモードのシークレットキーが設定されている必要があります。Stripe が返金を受け付けない場合、ブロックにエラーが表示され、返金は記録されません。返金が成功すると、Stripe の返金 ID とともに返金履歴とメモに追加されます。全額返金を行うと、注文は Refunded になります。一部返金ではステータスは変わりません。返金は、Stripe が決済を確認した後に利用できます。
モジュールはクレジットスリップを作成しません。注文ページの PrestaShop 標準の返金ボタンは、Stripe を通じて返金を行いません。
Stripe Dashboard で行った返金は charge.refunded ウェブフックで届き、Stripe での返金合計とともにメモに追加されます。注文ステータスとクレジットスリップは自動では変更されません。必要に応じて手動で更新してください。
ライセンスキー
本モジュールは、vibefox.net で取得した VibeFox ライセンスキーで動作します。ライセンスブロック License — VibeFox Stripe Gateway は Modules > Module Manager > VibeFox Stripe Gateway > Configure ページの最上部、設定の上にある最初のブロックです。キーを License key に貼り付け、Activate をクリックします。その後、ブロックにはキーがマスクされて表示され、ステータス(例:ライセンスの有効期限日と使用中のドメイン)と、ステータスを再確認する Check now、別のキーを入力する Change key、このショップからキーを削除する Remove key のボタンが表示されます。その下には Product: presta-payment-stripe の行と、vibefox.net のアカウントを開く Manage licenses and domains in your account のリンクがあります。キーを変更できるのは、このモジュールの Configure 権限を持つ従業員だけです。ブロックの表示テキストは管理画面の言語に従います(英語とロシア語が含まれます)。
キーが受け付けられない場合、ブロックに理由が表示されます(例:Key not found、This key belongs to another product、Domain limit reached、または License expired on と日付)。ショップのアドレスを変更した後、またはアカウントでドメインの枠を解放した後は、Check now をクリックしてください。ライセンスサーバーに接続できない場合、モジュールは最後に確認できたステータスで動作を続けます。
1 つのキーは 1 つのドメインでのみ使用できます。メインショップのドメインを対象とし、マルチストア構成でも同様です。ショップからキーを削除しても、ドメインの枠は解放されません。枠は vibefox.net のアカウントで解放してください。
有効なキーがない場合、チェックアウトで Stripe はお客様に表示されません。それでも決済が開始された場合、お客様には This payment method is not available. Please choose another one. と表示されます。PrestaShop のフロントエンドは、管理画面にログインしていることを認識しないため、お客様にも決済方法は非表示になります。キーを購入する前にモジュールを設定することはできますが、チェックアウトでテストすることはできません。Modules > Module Manager の Alerts タブに通知が表示されます。既存の注文には影響しません。すでに開始された決済は引き続き確認され、返金も機能します。
ライセンスの有効期限が切れた後も、モジュールは動作を続けますが、アップデートとサポートには更新が必要です。ステータスは、管理画面で作業している間に自動的に再確認されます。キーを入力してから最初の 14 日間は 1 日 1 回、その後は週 1 回です。cron ジョブは不要です。モジュールをアンインストールまたはリセットすると、ライセンスキーとライセンスステータスは常に削除されます。
トラブルシューティング
チェックアウトに Stripe が表示されない:ライセンスが有効であること、Enable/Disable がオンであること、現在のモードにシークレットキーがあることを確認してください。テストモードでは Test Secret Key、本番モードでは Live Secret Key です。キーがない場合、設定ページに警告が表示されます。Payment > Preferences で、カートの通貨、お客様の国、お客様の顧客グループに対してモジュールが許可されているかを確認してください。
決済は完了したが、注文が作成されなかった:ウェブフックが機能していません。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_ で始まります。
お客様が Stripe を選択するとエラーが表示される:Logging をオンにして、モジュールのページにある Log フィールドを確認してください。キーが間違っていると、決済方法が正しく設定されていないというメッセージが表示されます。通貨ごとの Stripe の最低金額を下回る注文合計(たとえば 0.50 EUR)は、Stripe では支払えません。
テストの決済で本番の決済が確認されない:テストの決済と本番の決済は別々に扱われます。Test Mode を使用したいモードに切り替え、そのモードのキーとウェブフックを使用してください。
決済後に注文が Stripe payment on hold になっている:Stripe payment ブロックのメモを読み(注文ステータスを参照)、その後で注文を処理するか、決済を返金してください。
返金がモードに関するメッセージとともに失敗する:決済はテストモードまたは本番モードで行われましたが、そのモードのシークレットキーが設定されていません。キーを入力してから、もう一度試してください。
アンインストール
Modules > Module Manager に移動し、VibeFox Stripe Gateway の横のメニューを開いて Uninstall を選択します。このモジュールのライセンスキーとライセンスステータスは常に削除されます。Delete Data on Uninstall がオンの場合、ゲートウェイの設定とログが削除されます。オフの場合、後で再インストールできるようにすべての設定が保持されます。Stripe の取引と返金、および注文ステータス Awaiting Stripe payment と Stripe payment on hold は常に保持されるため、再インストール後も、以前に支払われた注文を返金できます。既存の注文は、決済メモと取引 ID を保持します。
Stripe は、各所有者の商標です。本モジュールは Stripe と提携しておらず、Stripe による推奨も受けていません。
