VibeFox PayU India for PrestaShop — ヘルプ
要件
PrestaShop: 8.0 ~ 9.x。
PHP: 8.0 以降。モジュールは、それより古い PHP バージョンではインストールできません。
通貨: インドルピー(INR)。PayU India はルピーでのみ請求します。他の通貨のカートでは、チェックアウト時にこの決済方法は表示されません。
電話番号: PayU では、すべての支払いに電話番号が必要です。チェックアウトで住所の電話番号フィールドを必須にするか、少なくとも表示されるように設定してください。
PayU India アカウント: PayU Dashboard > Payment Gateway > Key Salt Details から Merchant Key と Merchant Salt (v1) を取得する必要があります。テスト用のキーペアを表示するには、ダッシュボードを Test Mode に切り替えてください。Salt v2 ではなく Salt v1 を使用してください。
ショップのインターネットアクセス: オプションのウェブフックに必要です。ウェブフックがない場合、注文はお客様が PayU から戻ったときに確定します。
VibeFox ライセンスキー: vibefox.net で購入します。1 つのキーは 1 つのドメインで機能します。
インストール
1. 管理画面で Modules > Module Manager に進み、Upload a module をクリックします。モジュールの ZIP ファイルを選択します。
2. アップロードが完了したら Configure をクリックするか、後でモジュール一覧から VibeFox PayU India Payment Gateway を見つけて Configure をクリックします。
3. Configure ページ上部のライセンスブロックにある License key に VibeFox ライセンスキーを入力し、Activate をクリックします(ライセンスキーを参照)。
4. Test Merchant Key と Salt、および Live Merchant Key と Salt を入力します(設定の項を参照)。
5. 推奨: PayU Dashboard > Webhooks で、Configure ページに表示されるウェブフック URL を、成功した支払いと失敗した支払いの両方について追加します。
6. Mode を選択し、Enable/Disable をオンにして Save をクリックします。テストモードで支払いをテストしてから、本番モードに切り替えます。
インストール時にモジュールは 2 つの注文ステータスを作成します:Awaiting PayU India payment と PayU India payment on hold。PrestaShop は、すべての通貨、国、顧客グループ向けに新しい決済モジュールを提供します。Payment > Preferences で制限できますが、INR 通貨はモジュールに対して許可されたままにしておく必要があります。
設定
すべての設定はモジュールのページにあります:Modules > Module Manager > VibeFox PayU India Payment Gateway > Configure。各セクションには独自の Save ボタンがあり、ページ全体が保存されます。フィールドの上部では、現在のモードのキーまたは Salt が欠けている場合に警告が表示され、テストモードでは Test mode is active: payments go to test.payu.in and no real money is charged. が表示されます。また、ショップのデフォルト通貨が INR でない場合はエラーが表示されます(その場合、ゲートウェイはチェックアウトで非表示になります)。
保存時、キーと Salt から空白と改行が削除されます。貼り付けた Salt に空白が含まれていると、PayU のすべての応答の検証に失敗するためです。
PayU India
Enable/Disable: Enable PayU India Payment Gateway で決済方法のオン/オフを切り替えます。デフォルト:オフ。現在のモードのキーと Salt を入力せずにオンにすると、保存後にページで警告が表示されます。
Title: お客様がチェックアウトで見る決済方法のタイトルです。注文に保存される決済方法名にもなります。デフォルト:PayU India。必須。
Description: お客様がチェックアウトで見る決済方法の説明です。デフォルト:Pay securely via Credit/Debit Card, NetBanking, UPI, or Wallets through PayU.
API 認証情報
PayU Dashboard > Payment Gateway > Key Salt Details から Merchant Key と Merchant Salt (v1) をコピーします。テスト用のキーペアを取得するには、ダッシュボードを Test Mode に切り替えてください。このセクションには Open the PayU Dashboard というリンクがあります。
Mode: 新しい支払いで使用する PayU 環境です。
すでに開始された支払いは、開始されたときのモードを維持します。モードを切り替えた後でも、その結果はそのモードのキーと Salt で検証され、返金も同じモードのキーと Salt で送信されます。
Live Merchant Key: 本番用の PayU Merchant Key です。
Live Merchant Salt (v1): 本番用の PayU Merchant Salt (v1) です。リクエストに署名し、PayU の応答を検証します。秘密にしてください。
Test Merchant Key: テスト用の PayU Merchant Key です。テストモードでのみ使用されます。
Test Merchant Salt (v1): テスト用の PayU Merchant Salt (v1) です。テストモードでのみ使用されます。
保存済みの Salt は再度表示されません。フィールドは空のままで、Saved — leave empty to keep it. と表示されます。変更する場合にのみ新しい値を入力してください。
Clear saved salts: Salt にチェックを入れて Save をクリックすると削除されます。空のフィールドでは保存済みの値が保持されます。
戻り URL とウェブフック URL
Return URL: https://your-shop/module/wcp_payu_india_payment/return のような形式で、/en/ のような言語コードが付く場合があります。すべての支払いで自動的に PayU に送信されるため、設定する必要はありません。
Webhook URL: https://your-shop/module/wcp_payu_india_payment/webhook のような形式で、言語コードが付く場合があります。オプションですが推奨されます。お客様がブラウザを戻る前に閉じても、支払いを確認できます。PayU Dashboard > Webhooks で、成功した支払いと失敗した支払いの両方について追加してください。Configure ページに表示される URL を正確にコピーしてください。インターネットからアクセス可能である必要があります(ベーシック認証やファイアウォールによるブロックがないこと)。ショップのメンテナンスモードや国別の制限によってブロックされることはありません。
ウェブフックは、お客様のリターンと同じ署名付きの結果を伝えます。有効な PayU ハッシュがないウェブフックは拒否されます。
詳細設定
Verify Payment: 成功したすべての支払いを PayU verify_payment API で再確認します。推奨。確認を完了できない場合、注文は支払い済みとしてマークされず、保留状態になります。デフォルト:オン。
Enable Logging: トラブルシューティングのためにゲートウェイのイベントを、モジュールフォルダー内の logs/payu_p_debug.log.php に記録します。このファイルはウェブから開くことはできません。エラーと警告は常に記録されます。このオプションでは、すべての支払いフォームや PayU の結果などの他のイベントも追加されます。キー、Salt、お客様の個人情報は記録されません。デフォルト:オフ。
Log: ログのサイズと最新のエントリを表示します。Clear log をクリックすると空になります。
Delete data on uninstall: モジュールをアンインストールしたときに、モジュールの設定とログを削除します。注文と PayU の取引記録は削除されません。デフォルト:オフ。
チェックアウト
決済ステップで、お客様は決済方法(デフォルトは PayU India)を選択して確定します。請求先住所と配送先住所のどちらにも固定電話番号または携帯電話番号がない場合、お客様はチェックアウトに留まり、PayU India requires a phone number. Please enter your phone number and try again. が表示されます。それ以外の場合、お客様には Thank you for your order. You will be redirected to PayU to complete your payment. という短いページが表示され、カートの合計金額に対する署名付きの支払いリクエストが PayU のホステッドチェックアウトに送信されます。ブラウザが自動的に続行しない場合、ページには Pay with PayU ボタンと Back to checkout ボタンがあります。PayU のページでお客様はカード、NetBanking、UPI、またはウォレットで支払います。この時点ではまだ注文は存在しません。
支払いの試行ごとに、カート番号から始まる独自の PayU 取引 ID が割り当てられ、金額とモードとともに保存されます。同じカートで以前に開いた、まだ有効な支払いページでの支払いも引き続き受け付けられます。注文がすでにあるカートには新しい支払いフォームが表示されないため、ブラウザの戻るボタンで二回目の支払いを開始することはできません。
PayU は結果をお客様と一緒に返し、設定されていればウェブフックでも送信します。結果は、支払いが開始されたモードのキーと Salt で生成された有効な PayU ハッシュがある場合にのみ、かつそのカートに対して発行された取引 ID に対してのみ受け付けられます。Verify Payment がオンの場合、成功した結果は PayU verify_payment API でも確認されます。支払額は、試行の金額とカート合計に対して、INR でパイサ単位まで正確に一致しなければなりません。注文は、PayU がこの方法で確認した後にのみ支払い済みとしてマークされます。モジュールは次の PayU の結果を処理します:
支払いが成功または保留になった後、お客様には標準の注文確認ページが表示されます。保留中の支払いでは Your PayU payment is pending. The order will be updated as soon as PayU confirms the result — there is no need to pay again. が追加されます。保留中の注文では Your payment is being reviewed. We will contact you if anything else is needed. が追加されます。Payment error または Canceled の注文では Your PayU payment was not completed. Please contact us about this order. が表示されます。
支払いが完了しなかった後、お客様は次のいずれかのメッセージとともにチェックアウトに戻ります:Payment was not completed. Please try again or choose a different payment method.、Payment was cancelled. You may try again.、または結果を確認できなかった場合は We could not confirm the payment result. If your account was charged, please contact us before paying again.。お客様が戻った時点で結果がまだ処理中の場合は、We are confirming your PayU payment. If you completed the payment, your order will be created shortly — please do not pay again. と Check again ボタンが表示されたページが表示されます。
モジュールの請求は INR のみであり、複数通貨処理(MCP)には対応していません。カード情報の保存やトークン化、定期購入、サイト内(シームレス)カードフォーム、分割払い(EMI)やプロモーションの管理、PayU ワンクリックチェックアウトには対応していません。
注文と返金
注文ステータス
No order yet: お客様は PayU にリダイレクトされましたが、まだ支払っていないか、支払いが失敗したかキャンセルされました。存在するのはカートのみです。
Payment accepted: 支払いが確認されました。支払いは PayU の取引 ID(mihpayid)を取引 ID として記録され、メモには PayU payment successful. Transaction ID: …, Mode: …, Bank: … が表示されます。
Awaiting PayU India payment: UPI または NetBanking の支払いが PayU でまだ保留中です。PayU が確認すると、注文は Payment accepted になります。
PayU India payment on hold: 支払われた金額または通貨がカートと異なる、verify_payment API に接続できなかった、もしくはまだ支払いを確認していない、またはキャンセル済みの注文に対する支払いが届いた、といった理由です。メモに理由が表示されます。PayU Dashboard で取引を確認し、その後に注文を Payment accepted に設定するか、注文をキャンセルして支払いを返金してください。確認だけが失敗した場合は、次回の結果配信時に注文は自動的に支払い済みになります。
Payment error: 保留中の支払いが後で拒否またはキャンセルされました。後から届いた成功の結果は、それでも注文を支払い済みにします。
Refunded: 支払われた全額がモジュールを通じて返金されました。
すでに支払い済みの注文について PayU が別の成功した支払いを報告した場合、注文は変更されず、重複分を PayU Dashboard で返金するよう求めるメモが表示されます。別の決済方法で注文されたカートに対する PayU の支払いにはメモが付き、その注文は支払い済みになりません。
PayU India 支払いブロック
注文ページには PayU India payment ブロックが表示され、PayU 取引 ID(mihpayid)、ショップ取引 ID(txnid)、環境、PayU のステータス、支払いモードと銀行、支払額と返金申請額、テスト支払い用の Test mode バッジ、返金履歴、モジュールのメモが含まれます。保留中の注文の場合は、支払いを確認するよう促すリマインダーが表示されます。
返金
PayU India payment ブロックで金額を入力し(まだ返金されていない金額が自動入力されます)、必要に応じて理由を入力して、Refund via PayU をクリックします。Refund this amount through PayU? This cannot be undone. の確認に応答します。全額返金と一部返金に対応しています。金額はゼロより大きく、PayU が請求した金額の残額を超えてはいけません。注文を編集する権限が必要です。モジュールのページへのアクセス権は必要ありません。返金は、支払いが行われたモードのキーと Salt を使用して PayU の返金 API 経由で送信されるため、それらの認証情報が設定されている必要があります。PayU が返金を拒否した場合、ブロックには PayU のメッセージとともに PayU refund failed: が表示され、返金は記録されません。
PayU は返金をキューに入れ、非同期で処理します。通常、お客様は 5~7 営業日以内に入金を受け取ります。返金履歴とメモには、金額、PayU リクエスト ID、理由が表示されます。全額返金を行うと注文は Refunded になりますが、一部返金ではステータスは変わりません。返金は、PayU が支払いの取引 ID を報告した後に利用できます。モジュールは後から返金ステータスを確認せず、クレジットスリップも作成しません。注文ページにある PrestaShop の標準の返金ボタンでは、PayU を通じて返金されません。
ライセンスキー
モジュールは、vibefox.net で取得した VibeFox ライセンスキーで動作します。ライセンスブロック License — VibeFox PayU India Payment Gateway は、Modules > Module Manager > VibeFox PayU India Payment Gateway > Configure の最初のブロックで、設定の上にあります。キーを License key に入力し、Activate をクリックします。その後、ブロックにはキーがマスクされた状態で表示され、ステータス(ライセンスの有効期限の日付やドメインなど)と、ステータスを再確認する Check now、別のキーを入力する Change key、このショップからキーを削除する Remove key のボタンが表示されます。その下には Product: presta-payment-payu-india の行と、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 アカウントで解放してください。
有効なキーがない場合、チェックアウトで購入者に PayU India は表示されません。それでも決済が開始された場合、購入者には This payment method is not available. Please choose another one. と表示されます。PrestaShop のストアフロントは、バックオフィスにログインしていることを認識しないため、決済方法はあなたに対しても非表示になります。購入前にモジュールを設定することはできますが、チェックアウトでテストすることはできません。Modules > Module Manager の Alerts タブにリマインダーが表示されます。既存の注文には影響ありません。すでに開始された決済は通知によって引き続き確認され、返金も機能します。
ライセンスの有効期限が切れてもモジュールは動作を続けますが、アップデートとサポートには更新が必要です。バックオフィスで作業している間、ステータスは自動的に再確認されます。キー入力後の最初の 14 日間は 1 日に 1 回、その後は週に 1 回です。cron ジョブは不要です。モジュールのアンインストールまたはリセットでは、常にライセンスキーとライセンスステータスが削除されます。
トラブルシューティング
チェックアウトに PayU India が表示されない: ライセンスが有効であること、Enable/Disable がオンであること、選択した Mode のキーと Salt が入力されていることを確認してください。カート通貨が INR であること、および Payment > Preferences でその通貨、お客様の国、顧客グループに対してモジュールが許可されていることを確認してください。Configure ページには、認証情報の欠落や INR 以外のショップ通貨に対する警告が表示されます。
支払いは完了したのに注文が作成されない: お客様がショップに戻らず、ウェブフックも届いていません。Configure ページのウェブフック URL を、成功した支払いと失敗した支払いの両方について PayU Dashboard > Webhooks に追加し、インターネットからアクセス可能であることを確認してください。
ウェブフックが invalid_signature を返す: PayU のハッシュが一致しませんでした。支払いのモードのキーと Salt が正しいこと、そして Salt v2 ではなく Salt v1 が使用されていることを確認してください。テスト用の Salt で署名された本番の支払いの結果、またはその逆の場合も拒否されます。何も変更されません。
ウェブフックが not_configured を返す: 支払いが開始されたモードのキーまたは Salt がありません。入力してください。PayU はウェブフックを再試行します。
ウェブフックが verify_unavailable を返す: verify_payment API はまだ支払いを確認できませんでした。注文は保留状態になり、次回の配信時に再度確認されます。
ウェブフックが busy または retry を返す: 同じカートのお客様のリターンが同時に処理されていた、または注文を作成できなかった(たとえばモジュールが無効になっている)場合です。PayU はウェブフックを再試行します。理由はログに記録されます。
ウェブフックが ignored_unknown_txnid を返す: この取引はこのショップによって開始されたものではありません。たとえば、同じ PayU アカウントを使用している別のショップです。何も変更されません。
お客様に PayU India requires a phone number と表示される: チェックアウトで住所の電話番号フィールドを必須にするか、表示されるように設定してください。請求先住所が先に使用され、次に配送先住所が使用されます。
注文が PayU India payment on hold になっている: PayU India payment ブロックのメモを確認してください。理由は、金額または通貨の不一致、失敗または保留中の確認、キャンセル済みの注文に対する支払いのいずれかです。
返金が失敗する: PayU transaction ID not found for this order. は、注文にまだ PayU の支払いがないことを意味します。This payment was made in Test mode, but the Merchant Key/Salt of that mode are not set.(または Live mode)は、先にそのモードの認証情報を入力する必要があることを意味します。Invalid refund amount: at most … INR can be refunded. は、金額が支払いの残額を超えていることを意味します。
ログの情報が少なすぎる: エラーと警告は常に記録されます。すべての支払いフォームと PayU の結果も確認するには、Enable Logging をオンにしてください。
開発者向けフック: actionPayuPRequestFields は、支払いリクエストのフィールドに署名する前にそれを変更します。キー、取引 ID、金額、戻り URL はこの方法では変更できません。
アンインストール
Modules > Module Manager に進み、VibeFox PayU India Payment Gateway の横にあるメニューを開いて Uninstall を選択します。このモジュールのライセンスキーとライセンスステータスは常に削除されます。Delete data on uninstall がオンの場合、モジュールの設定とログが削除されます。オフの場合、後で再インストールするためにすべての設定が保持されます。PayU の取引記録と返金リクエスト、および注文ステータス Awaiting PayU India payment と PayU India payment on hold は常に保持されるため、以前に支払われた注文は、再インストール後も返金できます。既存の注文は、支払いのメモと PayU の取引 ID を保持します。
PayU は、その所有者の商標です。このモジュールは PayU と提携しておらず、PayU による推奨もされていません。
