VibeFox EveryPay for PrestaShop — ヘルプ
要件
PrestaShop: 8.0 から 9.x。
PHP: 8.0 以降。古いバージョンの PHP ではモジュールのインストールを拒否します。
EveryPay アカウント: ストアの API ユーザー名、API シークレット、処理アカウント名が必要です。これらは EveryPay Merchant Portal の、ストアの設定にあります。テストモードにはデモ版のポータル、実際の決済には本番版のポータルを使用します。テスト環境と本番環境では認証情報が別々です。また、両方のポータルでストアのコールバック URL を設定する必要があります(「設定」を参照)。
ストアの通貨: 処理アカウントによって請求される通貨が決まります。たとえば EUR3D1 は EUR で請求します。この決済方法は、その通貨のカートに対してのみ表示されます。
VibeFox ライセンスキー: vibefox.net で購入します。1 つのキーは 1 つのドメインでのみ使用できます。
インストール
1. 管理画面で Modules > Module Manager に移動し、Upload a module をクリックします。モジュールの ZIP ファイルを選択します。
2. アップロードが完了したら Configure をクリックします。後でモジュール一覧から VibeFox EveryPay Payment を探し、Configure をクリックすることもできます。
3. Configure ページ上部のライセンスのブロックで License key に VibeFox ライセンスキーを入力し、Activate をクリックします(「ライセンスキー」を参照)。
4. デモ版 Merchant Portal から、テスト用の API ユーザー名、テスト用の API シークレット、処理アカウント名を入力します。Test Mode はオンのままにします。
5. 設定ページに表示されているコールバック URL をコピーし、Merchant Portal のストアの Callback notification URL に貼り付けます。
6. Enable/Disable をオンにし、Save をクリックして、テスト注文を行います。すべてが正常に動作したら、本番の認証情報を入力し、本番ポータルにもコールバック URL を設定して、Test Mode をオフにします。
インストール時に、モジュールは注文ステータス EveryPay payment on hold を作成します。PrestaShop は、すべての通貨、国、顧客グループに対して新しい決済モジュールを提供します。これらは Payment > Preferences で制限できます。
設定
すべての設定はモジュールのページにあります:Modules > Module Manager > VibeFox EveryPay Payment > Configure。各セクションには個別の Save ボタンがあり、ページ全体が保存されます。テストモードがオンの間、フィールドの上に テストモードがオンです: 決済は EveryPay のデモ環境に送信され、実際の料金は請求されません。 と表示されます。決済方法が有効になっているのに、現在のモードの API ユーザー名、API シークレット、または処理アカウントが未入力の場合(この場合、決済方法はチェックアウトで非表示になります)や、処理アカウントがストアの既定の通貨とは異なる通貨で請求する場合には、警告が表示されます。認証情報と一緒に貼り付けられたスペースや改行は、保存時に削除されます。
EveryPay
Enable/Disable: Enable EveryPay payment gateway は、決済方法をオンまたはオフにします。既定値: off。
Title: チェックアウトで購入者に表示される決済方法の名前です。注文に保存される決済方法の名前にもなります。既定値: EveryPay。
Description: チェックアウトで決済方法の下に表示されるテキストです。既定値: Pay securely by card or bank link on the EveryPay payment page。
EveryPay アカウント
API ユーザー名、API シークレット、処理アカウント名は、EveryPay Merchant Portal(ストアの設定)に表示されます。テストモードにはデモ版のポータル、実際の決済には本番版のポータルを使用します。このセクションには両方のポータルへのリンクがあります。
Test Mode: オンにすると、決済はテスト用の認証情報で EveryPay のデモ環境に送信されます。実際の料金は請求されません。既定値: on。オンの間、購入者には決済方法の下に テストモード: EveryPay のデモ環境です。実際の料金は請求されません。 と表示されます。
Test API Username: デモ環境の API ユーザー名です。
Test API Secret: デモ環境の API シークレットです。
Live API Username: 本番環境の API ユーザー名です。
Live API Secret: 本番環境の API シークレットです。
保存されたシークレットは二度と表示されません。フィールドは空のままで、保存済み — 変更しない場合は空のままにしてください。 と表示されます。変更する場合にのみ、新しい値を入力してください。
Clear saved API secrets: シークレットにチェックを入れて Save をクリックすると削除されます。空のフィールドは保存済みの値を保持します。
Processing Account Name: EveryPay の処理アカウントです(例: EUR3D1)。このアカウントによって請求される通貨が決まります。決済方法は、その通貨のカートに対してのみ表示されます。同じアカウント名が両方のモードで使用されます。
決済通知(コールバック)
コールバックは、決済が完了したことをストアに知らせるものです。これにより、購入者がブラウザを閉じた場合でも注文が作成されます。Callback notification URL に表示されている URL を、EveryPay Merchant Portal のストアの Callback notification URL にコピーしてください。デモ版と本番版の両方で設定します。フレンドリー URL を使用している場合、次のような形式になります:https://your-shop/module/wcp_everypay_payment/callback。設定に表示されているとおりに、URL を正確にコピーしてください。決済リクエストにはコールバック URL が含まれないため、ポータルで設定する必要があります。
コールバックには決済の参照情報のみが含まれます。コールバックが届くと、モジュールは決済が作成された環境の認証情報を使って EveryPay API に決済ステータスを問い合わせ、その応答がこのカートに属することを確認します。ストアが作成していない決済に対するコールバックは、EveryPay へのリクエストなしで拒否されます。コールバックがない場合、注文は購入者が支払い後にストアに戻ったとき、または EveryPay がコールバックを再送したときに作成されます。
詳細設定
Debug log: 決済イベントを、モジュールフォルダ内の logs/wc_evp_debug.log.php に記録します。このファイルは Web からは開けません。エラーと警告は、この設定がオフでも常に記録されます。API シークレット、カード情報、購入者のメールアドレスがログに記録されることはありません。既定値: off。
Log: ログのサイズと最新のエントリを表示します。Clear log をクリックすると、ログを空にできます。
Uninstall: モジュールをアンインストールするときに、ゲートウェイの設定とログを削除します。注文の EveryPay 決済データは常に保持されます。既定値: off。
チェックアウト
決済ステップで、購入者は決済方法(既定では EveryPay)を選択して確定します。モジュールは、購入者のメールアドレスと請求先住所を添えて、カートの通貨でカート金額分の 1 回限りの EveryPay 決済を作成し、購入者を EveryPay の決済ページに移動させます。決済ページの言語はストアの言語に従います(英語、エストニア語、ロシア語、ラトビア語、リトアニア語、フィンランド語、ドイツ語のいずれか。それ以外は英語)。購入者はそのページで、EveryPay アカウントで有効になっている方法のいずれかを使って支払います。この時点ではまだ注文は存在しません。
支払い後、購入者はストアに戻ります。注文は、EveryPay が決済を確定した後にのみ支払い済みとしてマークされます。モジュールは、戻ったときとコールバックのときに、EveryPay API に決済のステータスを問い合わせます。その後、注文が作成され、購入者には標準の注文確認ページが表示されます。EveryPay がまだ決済を処理中である場合、またはその時点で API に接続できない場合は、Payment confirmation ページに EveryPay で決済を確認しています。注文が確認されると、メールが届きます。 というメッセージと Check again ボタンが表示されます。EveryPay が決済を確定すると、コールバックによって注文が作成されます。
決済が失敗した場合、購入者はチェックアウトに戻り、EveryPay での決済が成功しませんでした。もう一度お試しいただくか、別の決済方法をお選びください。 と表示されます。購入者が支払わずに決済ページを離れた場合、メッセージは EveryPay での決済が完了しませんでした。もう一度お試しいただくか、別の決済方法をお選びください。 です。カートは保持されます。新しい試行のたびに新しい EveryPay 決済が作成されます。以前の試行も記録されるため、古いリンクで行われた決済も引き続き認識されます。
EveryPay が決済を開始できない場合、購入者はチェックアウトに留まり、EveryPay は一時的に利用できません。しばらくしてからもう一度お試しいただくか、別の決済方法をお選びください。 などの短いメッセージが表示されます。詳細はログにあります。
コールバックは、ストアがメンテナンスモードの間も機能し、ストアの国による制限にはブロックされません。
本モジュールは 1 回限りの決済のみに対応しています。PrestaShop からの返金やキャプチャ、保存済みカードやワンクリック決済、サブスクリプションや定期決済、埋め込み型のカード入力欄には対応しておらず、複数通貨にも対応していません。
注文
注文ステータス
No order yet: 購入者は EveryPay に送られたものの、支払っていないか、決済が失敗したか、途中で放棄されたか、または EveryPay がまだ決済を確定していません。カートのみが存在します。
Payment accepted: EveryPay が決済の完了または承認を報告しました。決済は EveryPay の決済参照番号をトランザクション ID として記録され、備考には金額、通貨、参照番号が表示されます。承認済みの決済の場合、備考には資金が確保されていることが示されます。アカウントで自動キャプチャが行われない場合は、EveryPay Merchant Portal で決済をキャプチャしてください。後で決済が確定すると、その旨の備考が 1 つ追加されます。
EveryPay payment on hold: 決済は手動での確認が必要です。支払われた金額または通貨がカートと異なる(たとえば、決済の開始後にカートが変更された)、決済が届く前に注文がキャンセルされていた、または注文が現在別の決済方法を使用している場合です。備考でその理由が説明され、注文は支払い済みとしてマークされなかったことが示されます。Merchant Portal で決済を確認し、手動で発送するか返金してください。この決済に対するその後のコールバックでは、注文は自動的に完了しません。
すでに支払い済みの注文に対して 2 回目の決済が完了した場合、注文は変更されません。備考では、EveryPay Merchant Portal で重複した決済を返金するよう求められます。
EveryPay 決済ブロック
注文ページには EveryPay payment ブロックが表示され、注文のすべての EveryPay 決済試行が示されます。日付、決済参照番号(テスト決済には Test mode のバッジ付き)、注文参照番号、金額、EveryPay の状態、結果が表示されます。その下に、注文の EveryPay notes が新しい順に表示されます。
Check EveryPay payment status: ブロック内のボタンは、注文のすべての EveryPay 決済を API で新しいものから順に確認し、上記のとおり結果を適用して、各決済の状態を示す備考を 1 つ追加します。結果はブロック内に表示されます。注文を編集する権限が必要です。モジュールのページへのアクセスは不要です。コールバックが届かなかった場合に使用してください。たとえば、後から行われたキャプチャや返金を確認するときなどです。
返金
PrestaShop からの返金はサポートされていません。EveryPay Merchant Portal で返金してから、PrestaShop で注文ステータスを更新してください。EveryPay が決済を返金済みまたはチャージバックとして報告した場合、モジュールは注文に備考を追加するだけで、注文ステータスは変更されません。注文ページの PrestaShop 標準の返金ボタンでは、EveryPay を通じて返金されることはありません。
ライセンスキー
このモジュールは、vibefox.net で取得した VibeFox ライセンスキーで動作します。ライセンスのブロック License — VibeFox EveryPay Payment は、Modules > Module Manager > VibeFox EveryPay Payment > Configure ページで設定の上に表示される最初のブロックです。キーを License key に貼り付けて、Activate をクリックします。その後、ブロックにはキーがマスクされた状態で、ステータス(ライセンスの有効期限日やドメインなど)と、Check now(ステータスを再確認)、Change key(別のキーを入力)、Remove key(このストアからキーを削除)のボタンが表示されます。その下には Product: presta-payment-everypay の行と、Manage licenses and domains in your account のリンクがあり、これは vibefox.net のアカウントを開きます。キーを変更できるのは、このモジュールの Configure 権限を持つ従業員だけです。ブロックのテキストはバックオフィスの言語に従います(英語とロシア語が含まれます)。
キーが受け付けられない場合、ブロックにその理由が表示されます。たとえば Key not found、This key belongs to another product、Domain limit reached、または日付付きの License expired on などです。ショップのアドレスを変更した後や、アカウントでドメイン枠を解放した後には、Check now をクリックしてください。ライセンスサーバーに接続できない場合、モジュールは最後に確認されたステータスで動作を続けます。
1 つのキーは 1 つのドメインでのみ使用できます。メインショップのドメインであり、マルチストア構成でも同様です。ショップからキーを削除しても、ドメイン枠は解放されません。vibefox.net のアカウントで枠を解放してください。
有効なキーがない場合、チェックアウトで購入者に EveryPay は表示されません。それでも決済が開始された場合、購入者には この決済方法は利用できません。別の方法をお選びください。 と表示されます。PrestaShop のストアフロントは、バックオフィスにログインしていることを認識しないため、決済方法はお客様にも非表示になります。キーを購入する前にモジュールを設定することはできますが、チェックアウトでテストすることはできません。Modules > Module Manager の Alerts タブに通知が表示されます。既存の注文には影響しません。すでに開始された決済は引き続き確認され、ステータスの確認も機能します。
ライセンスの期限が切れても、モジュールは動作し続けますが、アップデートとサポートには更新が必要です。バックオフィスで作業している間、ステータスは自動的に再確認されます。キーの入力後の最初の 14 日間は 1 日に 1 回、その後は週に 1 回です。cron ジョブは必要ありません。モジュールをアンインストールまたはリセットすると、ライセンスキーとライセンスステータスは常に削除されます。
トラブルシューティング
チェックアウトに EveryPay が表示されない: ライセンスが有効であること、Enable/Disable がオンであること、現在のモードの API ユーザー名、API シークレット、Processing Account Name が設定されていること、そしてカートの通貨が処理アカウントの通貨と一致していることを確認してください。これらの場合、設定ページに警告が表示されます。Payment > Preferences で、カートの通貨、購入者の国、購入者のグループに対してモジュールが許可されているかを確認してください。
決済は完了したが、注文が作成されていない: コールバックが機能していません。設定に表示されているコールバック URL が、使用しているモード(デモまたは本番)の Merchant Portal で Callback notification URL として設定されているかを確認してください。購入者が支払い後にストアに戻ったときにも、注文は作成されます。モジュールのページにある Log フィールドを確認してください。エラーは常に記録されます。
コールバックが Unknown payment、Unknown payment reference、Payment does not belong to this order と応答する: 決済はこのストアまたはこのカートによって作成されていないか、EveryPay の応答と一致しません。何も変更されません。
コールバックが Not configured と応答する: 決済が作成された環境の認証情報がありません。たとえば、テスト用の認証情報を削除した後に行われたテスト決済などです。認証情報を再入力してください。EveryPay がコールバックを再送します。
コールバックが Payment status unavailable、Busy, please retry、Order could not be created と応答する: EveryPay API に接続できなかった、同時に別のリクエストが注文を作成していた、または注文を作成できなかった(たとえばモジュールが無効になっている場合)などです。EveryPay がコールバックを再送します。理由はログに記録されています。
購入者に「EveryPay は一時的に利用できません」と表示される: EveryPay が認証情報を拒否したか、接続できませんでした。現在のモードの API ユーザー名と API シークレットを確認してください。
購入者に「この決済方法は注文の通貨をサポートしていません」と表示される: カートの通貨が、処理アカウントの通貨と異なります。
購入者が Payment confirmation ページに留まる: EveryPay がまだ決済を確定していません。注文は、コールバックによって、または EveryPay が決済を確認した後に購入者が Check again をクリックしたときに作成されます。
注文が EveryPay payment on hold になっている: 注文ブロックの EveryPay notes を読んでください。金額または通貨が異なっていたか、決済が届く前に注文がキャンセルされていました。Merchant Portal で決済を確認し、手動で発送するか返金してください。
開発者向け:モジュールの README には、フック actionWcpEverypayOneoffRequest(決済リクエストの変更)と actionWcpEverypayLocale(決済ページの言語の変更)が記載されています。
アンインストール
Modules > Module Manager に移動し、VibeFox EveryPay Payment の横にあるメニューを開いて Uninstall を選択します。このモジュールのライセンスキーとライセンスステータスは常に削除されます。設定で Uninstall(ゲートウェイの設定とログを削除)がオンになっている場合、ゲートウェイの設定とログが削除されます。オフの場合は、後で再インストールできるようすべての設定が保持されます。注文の EveryPay 決済データと EveryPay payment on hold の注文ステータスは、常に保持されます。既存の注文は、決済の備考とトランザクション ID を保持します。
EveryPay は、それぞれの所有者の商標です。本モジュールは EveryPay と提携しておらず、EveryPay による推奨も受けていません。
