VibeFox IntaSend for PrestaShop — ヘルプ
要件
PrestaShop: 8.0 から 9.x。
PHP: cURL 拡張機能を備えた 8.0 以降。古い PHP バージョンや cURL がない環境では、モジュールはインストールされません。
HTTPS: IntaSend は、本番決済とウェブフックに HTTPS を必要とします。本番モードが有効なのにショップが HTTPS を使用していない場合、設定ページで警告が表示されます。
IntaSend アカウント: IntaSend アカウントの公開キー(ISPubKey_...)と秘密キー(ISSecretKey_...)が必要です。サンドボックス用、本番用、またはその両方のキーを用意してください。また、IntaSend のダッシュボードでチャレンジフレーズ付きのウェブフックを設定する必要があります(設定を参照)。公開キーはチェックアウトを作成するために使われます。秘密キーは、支払い状況を IntaSend に照会するためにサーバー上でのみ使われます。
ショップの通貨: KES、USD、EUR、GBP、UGX、TZS、NGN、GHS、XAF、XOF。これ以外の通貨では、支払い方法は表示されません。
VibeFox ライセンスキー: vibefox.net で購入します。1 つのキーは 1 つのドメインで使用できます。
インストール
1. 管理画面で Modules > Module Manager に移動し、Upload a module をクリックします。モジュールの ZIP ファイルを選択します。
2. アップロードが完了したら Configure をクリックします。後で行う場合は、モジュール一覧から VibeFox IntaSend Pay Gateway を見つけて Configure をクリックします。
3. Configure ページ上部のライセンスブロックで、License key に VibeFox ライセンスキーを入力し、Activate をクリックします(ライセンスキーを参照)。
4. IntaSend のサンドボックスおよび/または本番のキーを貼り付け、IntaSend のダッシュボードにウェブフックを追加して、同じチャレンジをモジュールに入力します(設定を参照)。
5. Enable/Disable をオンにして Save をクリックします。Test mode をオンにした状態で支払いをテストし、その後 Test mode をオフにして実際の支払いを受け付けます。
インストール時に、モジュールは注文ステータス IntaSend payment on hold を作成します。PrestaShop は、すべての通貨、国、顧客グループに対して新しい支払いモジュールを提供します。Payment > Preferences で制限できます。
設定
すべての設定はモジュールのページにあります: Modules > Module Manager > VibeFox IntaSend Pay Gateway > Configure。各セクションには独自の Save ボタンがあり、ページ全体が保存されます。入力欄の上のステータスボックスには、Test mode: IntaSend sandbox, no real money is charged. または Live mode: real payments are accepted. が表示されます。現在のモードのキーがない、または誤っている場合(その場合、チェックアウトで支払い方法は表示されません)、ショップの既定の通貨がサポートされていない場合、ウェブフックのチャレンジが設定されていない場合、HTTPS なしで本番モードを使用している場合にも警告が表示されます。貼り付けたキーは、保存時に前後の空白が削除されます。
IntaSend
Enable/Disable: Enable IntaSend は、支払い方法をオンまたはオフにします。既定値: オフ。
Title: 購入者がチェックアウトで目にする支払い方法の名前です。注文に保存される支払い方法の名前にもなります。既定値: IntaSend (M-Pesa, card)。必須。
Description: チェックアウトで支払い方法の下に表示されるテキストです。既定値: You will be redirected to IntaSend to pay securely with M-Pesa, card or another available method.
API キー
キーは IntaSend のダッシュボードの Settings > API Keys で取得します。サンドボックス用のダッシュボードと本番用のダッシュボードで、それぞれ別に取得してください(このセクションには両方へのリンクがあります)。テストモードではサンドボックスのキーとサンドボックス API を使用し、本番モードでは本番のキーと本番 API を使用します。モジュールは、公開キーが ISPubKey_ で始まっているか、秘密キーが ISSecretKey_ で始まっているか、そしてキーが現在のモードに属しているかを確認します。サンドボックスのキーには _test が、本番のキーには _live が含まれます。そうでない場合、支払い方法は表示されず、ステータスボックスに理由が表示されます。
Test mode: IntaSend のサンドボックスを使用します。実際の料金は請求されません。既定値: オン。本番のキーで実際の支払いを受け付けるには、オフにします。Test mode がオンの間、チェックアウトの支払い方法の下に TEST MODE - IntaSend sandbox, no real money is charged. が表示されます。
Sandbox publishable key: ISPubKey_test で始まります。チェックアウトを作成するときに、貴社の事業者を識別するために使われます。
Sandbox secret key: ISSecretKey_test で始まります。Payment Status API で支払いを確認するために、サーバー上でのみ使われます。
Live publishable key: ISPubKey_live で始まります。
Live secret key: ISSecretKey_live で始まります。支払いを確認するために、サーバー上でのみ使われます。
保存済みの秘密キーとウェブフックのチャレンジは、二度と表示されません。入力欄は空のままで、Saved — leave empty to keep it. と表示されます。変更したい場合にのみ、新しい値を入力してください。
ウェブフック
ウェブフックは、購入者がショップに戻らなかった場合(ブラウザを閉じた、M-Pesa の確認が後になった)でも、支払いが行われたことをショップに知らせます。IntaSend のダッシュボードで、サンドボックスと本番の両方について Webhooks を開き、このセクションの Webhook URL に表示された URL を追加します。フレンドリー URL が有効な場合、URL は次のような形になります: https://your-shop/module/wcp_intasend_pay/webhook。場合によっては /en/ のような言語コードが付きます。URL は設定に表示されたとおりに正確にコピーしてください。そこでチャレンジフレーズを入力し、モジュールにも同じフレーズを入力します。サンドボックスと本番では、同じチャレンジを使用してください。
Webhook challenge: IntaSend のダッシュボードにあるものと同じチャレンジです。別のチャレンジを使用したウェブフックは拒否されます。この欄が空の間は、ウェブフックは処理されず、支払いは購入者がショップに戻ったときにのみ確認されます。このようなウェブフックには、エラーではなく Ignored という応答が返されます。これは、チャレンジを入力する前に IntaSend がウェブフックを無効にしないようにするためです。
保存済みの秘密情報を消去: Sandbox secret key、Live secret key、Webhook challenge のいずれかにチェックを入れ、Save をクリックして削除します。空欄の場合は、保存されている値が維持されます。
モジュールは、IntaSend から報告された次の支払い状態に応じて動作します。何かを変更する前に、毎回 Payment Status API で実際の状態を照会します:
このショップのチェックアウトの支払いではない通知、例えば同じ IntaSend アカウントの支払いリンクや送金イベントは、Ignored で応答されます。これにより、IntaSend がウェブフックを無効にすることはありません。
詳細設定
Debug log: チェックアウト、戻り、ウェブフックのイベントを、モジュールフォルダ内の logs/intasend_p_debug.log.php に記録します。このファイルは Web から開くことはできません。エラーと警告は常に記録されます。API キーと購入者データは記録されません。既定値: オフ。
Log: ログのサイズと最新のエントリを表示します。Clear log をクリックすると、ログを空にできます。
Delete data on uninstall: オンにすると、モジュールをアンインストールしたときに、ゲートウェイの設定とログが削除されます。注文に保存された IntaSend の参照情報は支払い履歴のため、常に保持されます。既定値: オフ。
チェックアウト
支払いの段階で、購入者は支払い方法(既定では IntaSend (M-Pesa, card))を選択して確定します。モジュールは、カートの合計金額をカートの通貨で指定して IntaSend のチェックアウトを作成し、購入者を IntaSend がホストするチェックアウトページに移動させます。そこで購入者は、M-Pesa、カード、または貴社の IntaSend アカウントで有効になっているその他の方法で支払います。購入者のメールアドレス、および請求先住所の氏名、住所、電話番号、国は、IntaSend のフィールドのルールに適合する場合に IntaSend に渡されます。空欄や不適切なフィールドは省略されます。この時点では、まだ注文は存在しません。
支払い後、購入者はショップに戻ります。注文が支払い済みとしてマークされるのは、IntaSend が確認した後だけです。モジュールは、購入者が戻ったときと、ウェブフックが届いたときに Payment Status API に照会します。その後、注文が作成され、購入者には標準の注文確認ページが表示されます。注文が保留になった場合、ページには Your payment was received and your order is being reviewed. We will contact you if anything is needed. が表示されます。支払いがまだ確認されていない場合、または IntaSend にその時点で接続できない場合は、Payment confirmation ページに Your payment is being confirmed by IntaSend (M-Pesa confirmations can take a minute). You will receive an e-mail as soon as it is confirmed. が表示され、Check again と Back to checkout のボタンが表示されます。ウェブフックは、IntaSend が支払いを確認するとすぐに注文を作成します。
支払いが失敗した場合、購入者は The payment was not successful. Please try again or choose another payment method.(IntaSend から理由が示されている場合はその理由も)というメッセージとともにチェックアウトに戻ります。購入者が支払わずに戻った場合のメッセージは The payment was not completed. Please try again or choose another payment method. です。カートは保持され、購入者は再度支払うことができます。試行ごとに、個別の IntaSend 参照番号が割り当てられます。
IntaSend が支払いを開始できない場合、購入者はチェックアウトに留まり、IntaSend could not start the payment: と IntaSend からの理由、または IntaSend is temporarily unavailable. Please try again in a moment or choose another payment method. が表示されます。詳細はログに記録されます。合計金額がゼロのカートは、IntaSend で支払うことはできません。
ウェブフックは、ショップがメンテナンスモードのときでも機能し、ショップの国による制限でブロックされることはありません。フレンドリー URL が無効な場合、IntaSend は戻り先アドレスの一部の文字を受け付けないため、購入者はショップのホームページ経由で戻ります。
本モジュールは 1 回限りの支払いのみに対応しています。返金はショップから IntaSend に送信されません。また、保存済みカード、定期購入、インライン(ポップアップ)決済フォームには対応していません。同じカートの古いチェックアウトリンクは、IntaSend 側でキャンセルできません。
注文
注文ステータス
No order yet: 購入者は IntaSend に移動しましたが、まだ支払っていないか、IntaSend がまだ支払いを確認していません。カートだけが存在します。
Payment accepted: 支払いが確認されました。支払いは、取引 ID として IntaSend の請求書 ID で記録されます。メモには、請求書、IntaSend での支払い方法、金額、モード(サンドボックスまたは本番)、確認方法(ウェブフックまたは購入者の戻り)が表示されます。
IntaSend payment on hold: IntaSend が、カートの合計と異なる金額または通貨、一部入金、または注文のキャンセル後に届いた支払いを報告しました。メモにその内容が説明されます。IntaSend が受け取った金額が注文の通貨である場合、その金額は支払いとして記録されます。IntaSend のダッシュボードで支払いを確認し、注文を処理するか、支払いを返金してください。後から正しい支払いが届いた場合、注文は Payment accepted に移ります。
すでに支払い済みの注文に 2 回目の支払いが届いた場合、注文は変更されません。重複である場合は、IntaSend のダッシュボードで返金するようメモで促されます。返金済みの注文への支払いはメモを追加するだけで、注文は再び開かれません。
IntaSend 支払いブロック
注文ページには IntaSend payment ブロックが表示されます。このブロックには、注文のカートのチェックアウトの試行ごとに(日付、参照番号、IntaSend のチェックアウト、環境、金額、請求書、結果、失敗の理由付き)と、Invoices processed(請求書、IntaSend の状態、金額、結果)が表示されます。このブロックは読み取り専用です。
返金
返金はショップから IntaSend に送信されません。IntaSend のダッシュボードで支払いを返金し、PrestaShop に返金を手動で記録してください。
ライセンスキー
このモジュールは、vibefox.net で入手した VibeFox ライセンスキーで動作します。ライセンスブロック License — VibeFox IntaSend Pay Gateway は、Modules > Module Manager > VibeFox IntaSend Pay Gateway > Configure の最初のブロックで、設定の上にあります。License key にキーを入力し、Activate をクリックしてください。その後、ブロックにはマスクされたキー、ステータス(例: ライセンスの有効期限日とお使いのドメイン)、および次のボタンが表示されます:ステータスを再確認する Check now、別のキーを入力する Change key、このショップからキーを削除する Remove key。その下には Product: presta-payment-intasend の行と、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 のアカウントで枠を解放してください。
有効なキーがない場合、チェックアウトで購入者に IntaSend は表示されません。それでも支払いが開始された場合、購入者には This payment method is not available. Please choose another one. と表示されます。PrestaShop のストアフロントは、管理画面にログインしていることを認識できないため、お客様にも支払い方法は表示されません。キーを購入する前にモジュールを設定することはできますが、チェックアウトでテストすることはできません。Modules > Module Manager の Alerts タブにリマインダーが表示されます。既存の注文には影響しません。すでに開始された支払いは、引き続き確認されます。
ライセンスの有効期限が切れた場合も、モジュールは動作を続けますが、アップデートとサポートには更新が必要です。管理画面で作業している間、ステータスは自動的に再確認されます。キーの入力後最初の 14 日間は 1 日に 1 回、その後は週に 1 回です。cron ジョブは必要ありません。モジュールのアンインストールまたはリセットを行うと、ライセンスキーとライセンスステータスは常に削除されます。
トラブルシューティング
チェックアウトに IntaSend が表示されない: ライセンスが有効であること、Enable/Disable がオンであること、現在のモードのキーが入力済みで、そのモードに属していることを確認してください。テストモードではサンドボックスのキー(_test を含む)、本番モードでは本番のキー(_live を含む)を使用します。カートの通貨はサポートされている必要があります。設定ページ上部のステータスボックスに、問題の内容が表示されます。Payment > Preferences で、カートの通貨、購入者の国、購入者のグループに対してモジュールが許可されているか確認してください。
支払いは完了したが、注文が作成されていない: M-Pesa の確認には少し時間がかかることがあります。ウェブフックは、IntaSend が最終的な状態を報告したときに注文を作成します。IntaSend のダッシュボード(使用しているモードのサンドボックスまたは本番)にあるウェブフックの URL が、Webhook URL に表示されたものと完全に一致しているか、そこにあるチャレンジが Webhook challenge と同じかを確認してください。購入者がショップに戻ったとき、または Check again をクリックしたときにも、注文は作成されます。
ウェブフックが Ignored: webhook challenge not configured と応答する: Webhook challenge が空です。IntaSend のダッシュボードからチャレンジを入力してください。
ウェブフックが Invalid challenge と応答する: IntaSend とモジュールのチャレンジが異なるか、ウェブフックにチャレンジがありません。
ウェブフックが Verification unavailable, retry later または Busy, retry later と応答する: その時点で IntaSend に接続できなかったか、カートが別のリクエストによって確認中だったか、注文を作成できなかった(例: モジュールが無効になっている)ことを意味します。IntaSend はウェブフックを再試行します。理由はログに記録されています。
ウェブフックが Invoice not verified または Invoice does not match the reference と応答する: IntaSend は、この請求書がカートに属していることを確認できませんでした。何も変更されません。
ブラウザでウェブフックの URL にアクセスすると Method not allowed と表示される: これは正常です。この URL は IntaSend からのリクエストのみを受け付けます。
注文が IntaSend payment on hold になっている: 注文のメモを確認してください。支払われた金額または通貨がカートと異なった、支払いが一部だけだった、または注文がキャンセルされた後に届いた、のいずれかです。IntaSend のダッシュボードで支払いを確認してください。
購入者が IntaSend を選んだときにエラーが表示される: モジュールのページにある Log の欄を確認してください(詳細を見るには Debug log をオンにします)。現在のモードのキーが誤っている場合、購入者には IntaSend is not available at the moment. Please choose another payment method or contact the store. が表示されます。ログに、戻り先 URL に IntaSend が受け付けない文字が含まれていると記録されている場合は、ショップのアドレスが原因です。
購入者に We could not match this payment to an order が表示される: 戻りリンクが変更されたか、別のカートに属しています。購入者が支払いを済ませている場合、ウェブフックによって注文は引き続き作成されます。
アンインストール
Modules > Module Manager に移動し、VibeFox IntaSend Pay Gateway の横にあるメニューを開いて Uninstall を選択します。このモジュールのライセンスキーとライセンスステータスは常に削除されます。Delete data on uninstall がオンの場合、ゲートウェイの設定とログが削除されます。オフの場合、後で再インストールできるようすべての設定が保持されます。注文の IntaSend のチェックアウトの試行と請求書、および注文ステータス IntaSend payment on hold は常に保持されます。既存の注文は、支払いのメモと取引 ID を保持します。
IntaSend は、各所有者の商標です。本モジュールは IntaSend と提携しておらず、IntaSend による推奨もされていません。
