VibeFox 2C2P for OpenCart — ヘルプ
要件
OpenCart: 3.0.x(3.0.5.0 でテスト済み)または 4.0.2 以降(4.1.0.3 でテスト済み)。
PHP: 8.0 以降。
2C2P アカウント: 2C2P の加盟店アカウントの Merchant ID と Secret Key が必要です。これらは加盟店アカウントの開設時に 2C2P から発行されます。サンドボックスアカウントと本番アカウントではキーが異なります。開発者向けドキュメントとサンドボックス用のテストカードは developer.2c2p.com にあります。
通貨: チェックアウトの通貨は、この拡張機能でサポートされ、2C2P アカウントで有効になっている必要があります。サポートされているのは、THB、SGD、MYR、PHP、IDR、VND、MMK、KHR、LAK、CNY、HKD、TWD、JPY、KRW、INR、AUD、NZD、USD、EUR、GBP などです。購入者の通貨がサポートされていない場合、決済方法はチェックアウトで表示されません。
VibeFox ライセンスキー: vibefox.net で購入します。1 つのキーは 1 つのドメインで使用できます。
インストール
このダウンロードは、両方の OpenCart バージョン用のパッケージを含む 1 つの zip ファイルです。コンピューターで解凍してください。中には README.txt、OpenCart 3 用のパッケージ wcp_2c2p_payment-oc3-(version).ocmod.zip、OpenCart 4 用のパッケージ wcp_2c2p_payment.ocmod.zip が含まれています。ご利用の OpenCart のバージョンに合ったパッケージだけをインストールしてください。ライセンスキーは両バージョンで同じです。
OpenCart 3
1. 管理画面で Extensions > Installer に移動し、Upload をクリックして、ファイル wcp_2c2p_payment-oc3-(version).ocmod.zip を選択します。この拡張機能には OCMOD の変更がないため、Extensions > Modifications を更新する必要はありません。インストーラーを使う代わりに、アーカイブの upload フォルダーの内容をストアのルートフォルダーにコピーすることもできます。
2. Extensions > Extensions に移動し、種類で Payments を選択します。VibeFox 2C2P Payment を見つけ、Install(緑色の + ボタン)をクリックします。管理者ユーザーには、決済拡張機能の一覧を変更する権限が必要です。
3. Edit(鉛筆のボタン)をクリックして設定ページを開きます。ページ上部のライセンスブロックにある License key に VibeFox ライセンスキーを貼り付け、Activate をクリックします(License key を参照)。
4. サンドボックスの Merchant ID と Secret Key を入力し、Enable/Disable を有効にして、Save をクリックし、テスト注文を行います。
5. 準備ができたら、本番の認証情報を入力し、Sandbox Mode を無効にします。
OpenCart 4
1. 管理画面で Extensions > Installer に移動し、Upload をクリックして、ファイル wcp_2c2p_payment.ocmod.zip を選択します。ファイル名は変更しないでください。OpenCart 4 はファイル名から拡張機能のコードを取得するため、名前を変更したパッケージは動作しません。
2. パッケージは、同じページのインストール済み拡張機能の一覧に表示されます。その横の Install(緑色の + ボタン)をクリックしてください。
3. Extensions > Extensions に移動し、拡張機能の種類で Payments を選択します。VibeFox 2C2P Payment を見つけて Install(緑色の + ボタン)をクリックし、次に Edit(鉛筆のボタン)をクリックします。
4. ライセンスキーと設定は、OpenCart 3 の手順 3〜5 と同じように入力します。設定ページとそのフィールドは両バージョンで同じです。結果 URL だけが異なります(決済ページを参照)。
新規インストール時は、決済方法が無効、サンドボックスモードが有効の状態で始まります。戻り先 URL と通知 URL は、すべての決済で送信されます。2C2P のポータルで設定する必要はありません。
設定
すべての設定は拡張機能のページにあります: Extensions > Extensions > Payments > VibeFox 2C2P Payment > Edit。セクションは左側に一覧表示されます。一覧の下にある Save ボタンで、ページ全体が保存されます。サンドボックスモードが有効な間は、設定の上に Sandbox mode is active. No real transactions will be processed. と表示されます。ゲートウェイは有効なのに現在のモードの Merchant ID または Secret Key が空の場合や、ストアの既定の通貨がサポートされていない場合には、警告が表示されます。どちらの場合も、決済方法はチェックアウトで表示されません。拡張機能を変更する権限がない場合、ページには設定が表示されますが、保存はできません。
Sandbox Mode をオフにして保存すると、本番のフィールドが空の場合に Please enter your live Merchant ID. または Please enter your live Secret Key. と表示されます。ただし、設定は保存されます。Sort Order は整数、Total は 0 以上の数値、Title は 128 文字以内である必要があり、地域(Geo Zone)と注文ステータスも存在している必要があります。そうでない場合は何も保存されず、ページに該当するフィールドが表示されます。
2C2P
Enable/Disable: Enable 2C2P Payment Gateway で決済方法のオン/オフを切り替えます。既定値: オフ。
Title: 購入者がチェックアウトで見る決済方法の名前です。注文にも決済方法名として保存されるため、最大 128 文字です。空の場合は既定値が使われます。既定値: 2C2P Payment。
Description: Confirm Order のステップで、確認ボタンの上に購入者に表示される文章です。既定値: Pay securely via credit/debit card, e-wallet, or internet banking through 2C2P。サンドボックスモードでは末尾に (TEST MODE) が追加されます。
Sort Order: チェックアウトの決済方法の中での 2C2P の表示順です。空欄のままにするか、整数を入力してください。
Geo Zone: 選択した地域の支払い先住所に対してのみ 2C2P を提供します。既定値: All zones。地域は System > Localisation > Geo Zones で設定します。
Total: 2C2P を提供するために注文が達している必要がある、ストアの既定の通貨でのチェックアウト合計金額です。空欄にすると、どの金額でも 2C2P を提供します。
テストモード(サンドボックス)
Sandbox Mode: 下記のサンドボックス認証情報を使い、決済を 2C2P サンドボックス(demo2.2c2p.com)へ送信します。既定値: オン。実際の決済を受け付けるにはオフにしてください。
Sandbox Merchant ID: 2C2P のサンドボックス用 Merchant ID です。
Sandbox Secret Key: 2C2P のサンドボックス用 Secret Key です。
本番 API 認証情報
サンドボックスモードがオフのときに使用されます。
Merchant ID: 2C2P の本番用 Merchant ID です。
Secret Key: 2C2P の本番用 Secret Key です。キーは、引用符やバックスラッシュを含め、入力したとおりに保存されます。
保存済みの Secret Key は再表示されません。フィールドは空のままで、Saved — leave empty to keep it. と表示されます。変更するときだけ新しい値を入力してください。保存済みのキーを削除するには、フィールドの下にある Clear the saved value on save をオンにして、Save をクリックします。
決済ページ
Result URLs: 参照用として、Frontend return URL と Backend notification URL を表示します。これらは https://your-store/index.php?route=extension/payment/wcp_2c2p_payment/back や https://your-store/index.php?route=extension/payment/wcp_2c2p_payment/notify のような形式(OpenCart 3)、また https://your-store/index.php?route=extension/wcp_2c2p_payment/payment/wcp_2c_2p_payment.back や https://your-store/index.php?route=extension/wcp_2c2p_payment/payment/wcp_2c_2p_payment.notify のような形式(OpenCart 4)で、OpenCart のインストール先のストアフロントのアドレスから作られます。これらは決済のたびに自動で送信されます。結果は、決済が行われたモードの Merchant ID と Secret Key で常に検証されます。サンドボックスで開始された決済は、本番に切り替えた後もサンドボックスのキーで検証され、もう一方のモードのキーで署名された結果は拒否されます。
Payment Page Language: 2C2P の決済ページの言語です。既定値: English。
Redirect API version: アカウントがまだ旧バージョン 7.0(SHA-1 署名)を使っていると 2C2P から案内されていない限り、8.5 のままにしてください。切り替え前に開始された決済の結果も引き続き検証されます。
Order ID prefix: 任意で、英字と数字のみ(最大 10 文字)、例: SHOP1。2C2P は、すでに受け取った注文 ID を拒否します。複数のストアが 1 つの 2C2P アカウントを共有する場合や、テスト用の加盟店アカウントが共有されるサンドボックスでは、一意の接頭辞を設定してください。2C2P の注文 ID は、接頭辞、OpenCart の注文番号、試行番号で構成されます。例: SHOP1123A1。その他の文字は、保存時に警告付きで削除されます。
注文
OpenCart は Confirm Order のステップで、ステータスのない注文(欠落注文)を作成します。注文にステータスが設定されるのは、2C2P が有効な署名で結果を確認した後だけです。以下の各フィールドには、OpenCart の注文ステータスが表示されます。
Order Status After Payment: 決済成功(2C2P ステータス 000)。既定値: 処理中。
Awaiting Payment Status: 保留中の決済(ステータス 001)。例: 購入者がまだ行っていない現金払いや銀行振込。既定値: 支払い待ち。
On Hold (Review) Status: 2C2P が、注文合計と異なる金額または通貨を報告しました。既定値: 支払い待ち。OpenCart には On hold ステータスがないためです。System > Localisation > Order Statuses で独自のステータスを作成し、ここで選択できます。
Cancelled Payment Status: 保留中の決済が、その後、拒否、キャンセル、または失敗しました(ステータス 002、003、999)。既定値: キャンセル済み。
詳細設定
Enable Logging: 2C2P のイベントを、OpenCart のログフォルダー(storage/logs)にある tc2p_p_debug.log.php に書き込みます。このファイルは Web から開くことはできず、5 MB に達すると tc2p_p_debug.old.log.php に移動されます。カードデータ、Secret Key、購入者のメールアドレス、決済トークンは記録されません。既定値: オフ。オフの間は、エラーを含め何も書き込まれません。
Log: ログのサイズと最新のエントリを表示します。Clear log をクリックすると、ログを消去します。
Delete Data on Uninstall: オンにすると、拡張機能のアンインストール時にゲートウェイの設定とログが削除されます。2C2P の取引は常に保持されるため、再インストール後も古い決済の遅延した結果が引き続き処理されます。既定値: オフ。
インポート / エクスポート
Export: Download JSON で、設定を JSON ファイルとして保存します。Secret Key はエクスポートされません。
Import: 以前にエクスポートした JSON を貼り付け、Import をクリックして設定を復元します。保存済みの Secret Key は保持されます。
チェックアウト
Payment Method のステップで、購入者は決済方法を選択します(既定では 2C2P Payment)。Confirm Order のステップで、購入者にはあなたの説明が表示されます。OpenCart は、このステップで、まだステータスのない注文を作成します。購入者が Confirm Order をクリックすると、ページに Thank you for your order. You will be redirected to 2C2P to complete your payment. と表示され、しばらくすると購入者は 2C2P の決済ページに移動します。移動しない場合、購入者は Pay via 2C2P をクリックします。
2C2P のページで、購入者は 2C2P アカウントで有効になっている任意の方法で支払うことができます。例: カード、電子ウォレット、QR 決済、インターネットバンキング、現金払い。拡張機能は、注文の通貨での注文合計、購入者のメールアドレス、注文内の商品名を渡します。決済は 24 時間以内に完了できます。Confirm Order をクリックするたびに、2C2P は同じ注文 ID を二度と受け付けないため、独自の 2C2P 注文 ID を持つ新しい試行が開始されます。
2C2P は結果を 2 回報告します。購入者のブラウザーがストアに戻り、さらに 2C2P がサーバー間の通知を送ります。どちらも同じ方法で処理されます。注文が支払い済みとしてマークされるのは、2C2P が有効な署名で確認した後だけです。結果は決済にも一致している必要があります。2C2P の注文 ID は貴店が発行したものであり、加盟店 ID と試行のランダムトークンが照合されます。有効な署名のない結果は拒否されます。OpenCart は決済拡張機能のリクエストを通すため、ストアがメンテナンスモードでも通知は機能します。OpenCart 4 では、そのためにスタートアップアクションを拡張機能が追加し、署名された 2C2P の結果を通します。
決済が成功すると、注文は OpenCart の標準的な方法でステータスを受け取り、通常の注文メールと在庫の更新が行われます。購入者には、OpenCart の注文完了ページが Your 2C2P payment has been received. とともに表示されます。保留中の決済の場合、ページには Your 2C2P payment is pending (for example a cash or bank payment that is not made yet). The order will be processed as soon as 2C2P confirms the payment. と表示されます。審査中の注文の場合は Your payment was received and is being reviewed by the shop. と表示されます。
2C2P のページで決済が完了しなかった場合、または取り消された場合、注文はステータスのないままになります。購入者は Payment was not completed. Please try again or choose a different payment method. とともにチェックアウトに戻ります。カートは保持され、購入者は再度支払うか、別の決済方法を選べます。結果を確認できない場合、購入者には We could not confirm the payment result. If your account was charged, please contact us before paying again. と表示されます。注文の通貨がサポートされていない、または注文合計がゼロなどの理由で決済を開始できない場合、購入者は Confirm Order のステップにとどまり、This payment method is currently unavailable for this order. Please contact us or choose another payment method. と表示されます。
注文にすでにステータス(支払い済み、または保留中の決済の待機)がある場合、2 つ目の決済フォームは作成されません。購入者は注文完了ページに案内されます。
OpenCart 4 では、購入者は決済方法ブロックの Choose ボタンを使い、Payment method options ウィンドウで決済方法を選んでから、チェックアウトページの下部にある Confirm Order をクリックします。決済が完了しなかった場合や結果を確認できなかった場合のメッセージは、チェックアウトページの上部に表示されます。OpenCart 4 はチェックアウトごとに 1 つの注文を保持して更新します。決済に失敗すると、購入者は新しい試行(たとえば SHOP1123A2 のような新しい 2C2P 注文 ID)で同じ注文を支払います。その間に決済なしで注文が閉じられた場合(たとえば、保留中の決済がキャンセルされたか、ご自身で注文をキャンセルした場合)、購入者は Payment was not completed. Please try again or choose a different payment method. とともにチェックアウトに戻され、次の Confirm Order で新しい注文が支払われます。決済後に注文が閉じられた場合、または別のカートの決済によってすでにステータスを持っている場合、メッセージは This order can no longer be paid. Please confirm your order again. です。支払い済みの注文が、別のカートについて支払い済みとして表示されることは決してありません。数量の変更を含むカートの変更は、独自の決済が必要な新しいカートとして扱われます。
この拡張機能では、OpenCart からの返金、保存済みカード、定期払いやサブスクリプション、サイト上のカード入力欄には対応していません。また、2C2P PGW 4.x API にも対応していません。
注文
注文ステータス
No status (missing order): 購入者は 2C2P に移動しましたが、まだ結果が届いていないか、決済に失敗しました。Sales > Orders では、このような注文は Order Status フィルターを Missing Orders に設定したときにのみ表示されます。
Order Status After Payment (default Processing): 2C2P が決済成功を報告しました。メモには、2C2P の取引、承認コード、日付、決済チャネルが表示されます。
Awaiting Payment Status (default Pending): 決済は 2C2P で保留中です。例: 購入者がまだ支払っていない現金払い。2C2P が決済を報告すると、注文は Order Status After Payment に移ります。OpenCart はこの変更を購入者に通知します。
On Hold (Review) Status (default Pending): 2C2P が、注文合計と異なる金額または通貨を報告しました。メモには、受け取った値と期待された値が表示されます。2C2P のポータルで注文と取引を確認してください。
Cancelled Payment Status (default Canceled): 保留中の決済が、その後、拒否、キャンセル、または失敗しました。メモには、ステータスと理由が表示されます。以前の試行の失敗結果は、別の試行を待っている注文をキャンセルしません。
支払い済みの注文は、その後の結果によって変更されることはなく、古い結果が繰り返し届いても、キャンセルされた注文が再び開かれることはありません。すでに支払い済みの注文に 2 回目の決済が届いた場合、注文は変更されません。メモで、それを確認し、2C2P の加盟店ポータルで重複分を返金するよう求められます。OpenCart 3 は、購入者が Confirm Order のステップに到達するたびに新しい注文を作成するため、1 つのカートに複数の注文が存在することがあります(OpenCart 4 はチェックアウトごとに 1 つの注文を保持しますが、以前の注文や 2 つ目のブラウザータブが、依然として同じカートを保持している場合があります)。そのうちの 1 つが支払い済みになるか、保留中の決済の待機になると、同じカートに対して新たな決済は開始されません。同じカートの別の注文に対して届いた決済は、その注文を変更しません。支払い済みの注文には、重複分を返金するようメモが付きます。
OpenCart 4 では、支払われていない注文がチェックアウトで Voided ステータスになることがあります。これは、購入者が Confirm Order のステップに戻ったときに OpenCart 4 が設定するものです。拡張機能はそのような注文をステータスのない注文として扱い、その後の決済があれば注文を確認します。
メモは注文の History に表示されるエントリで、購入者には見えません。
VibeFox 2C2P Payment タブ
Sales > Orders で、2C2P で支払われた注文を開きます。注文ページの下部、History と Additional の隣にある VibeFox 2C2P Payment タブには、2C2P の注文 ID(サンドボックスの決済には Sandbox ラベル付き)、取引、決済ステータス、受け取った金額、チャネル、承認コード、マスクされたカード番号、日付、チャネルの応答、API バージョン、そして注文の 2C2P notes が表示されます。このタブは、拡張機能へのアクセス権があるユーザーに表示されます。
返金
OpenCart からの返金には対応していません。2C2P の加盟店ポータルで決済を返金してから、OpenCart で手動で返金を記録してください。たとえば注文ステータスを変更します。
ライセンスキー
この拡張機能は、vibefox.net で取得した VibeFox ライセンスキーで動作します。ライセンスブロック License — VibeFox 2C2P Payment は、Extensions > Extensions > Payments > VibeFox 2C2P Payment > Edit の最初のブロックで、設定の上にあります。キーを License key に貼り付けて、Activate をクリックします。その後、ブロックにはマスクされたキー、ステータス(例: ライセンスの有効期限の日付とドメイン)、そしてボタン Check now(ステータスを再確認)、Change key(別のキーを入力)、Remove key(このストアからキーを削除)が表示されます。その下には、Product: opencart-payment-2c2p という行と、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 のアカウントで枠を解放してください。
有効なキーがない場合、チェックアウトで購入者に 2C2P は表示されません。それでも決済が開始された場合、購入者には 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 ジョブは不要です。拡張機能をアンインストールすると、ライセンスキーとライセンスステータスは常に削除されます。
トラブルシューティング
チェックアウトに 2C2P が表示されない: ライセンスが有効であること、Enable/Disable がオンであること、現在のモードに Merchant ID と Secret Key があることを確認してください。サンドボックスモードではサンドボックスのフィールド、本番モードでは本番のフィールドです。購入者の通貨がサポートされているか確認してください。認証情報がない場合や、既定の通貨がサポートされていない場合は、設定ページに警告が表示されます。また、支払い先住所が選択した Geo Zone に含まれていること、注文が設定の Total に達していることも確認してください。
決済は行われたが、注文がステータスのないままになっている: 有効な結果がストアに届いていません。決済が行われたモードの Merchant ID と Secret Key が 2C2P のアカウントと一致しているか、Redirect API version がアカウントと一致しているかを確認してください。署名が誤っている結果や、別の Merchant ID の結果は拒否されます。Enable Logging をオンにして、Log フィールドで hash または Merchant ID に関するメッセージを探してください。また、サーバーが 2C2P からのバックエンド通知 URL へのリクエストを受け付けているかも確認してください。
バックエンド通知が 400 FAIL を返す: 結果に、欠落したフィールド、誤った署名、別の Merchant ID、または誤ったトークンがあります。404 FAIL は、2C2P の注文 ID がこのストアによって発行されていないことを意味します。503 RETRY は、注文が同時に別のリクエストによって確認されていたか、処理に失敗したことを意味します。2C2P は後で再試行します。理由を確認するには Enable Logging をオンにしてください。
通知 URL がブラウザーで FAIL と表示される: これは正常です。この URL は、2C2P からの POST リクエストのみを受け付けます。
2C2P が注文 ID はすでに存在すると表示する: 2C2P は同じ注文 ID を 2 回受け付けません。これは、複数のストアが 1 つの 2C2P アカウントを共有する場合や、多くの開発者がデモ用の加盟店アカウントを共有しているサンドボックスで起こります。一意の Order ID prefix を設定してください。
決済は行われたが、注文が支払い待ちまたは審査中のステータスになっている: 2C2P で決済がまだ保留中である(例: 購入者がまだ支払っていない現金払い)か、支払われた金額または通貨が注文と一致しなかったかのどちらかです。VibeFox 2C2P Payment タブのメモと、2C2P のポータルの取引を確認してください。
購入者に This payment method is currently unavailable for this order が表示される: 注文の通貨がサポートされていない、現在のモードの Merchant ID または Secret Key が空である、または注文合計がゼロであるかのいずれかです。
購入者に This payment method is not available. Please reload the checkout page.: が表示される: チェックアウトのセッションが注文と一致しなくなったか、その間に決済方法が無効化されました。購入者はチェックアウトを再読み込みします。
保存時に Please enter your live Merchant ID または Please enter your live Secret Key が表示される: サンドボックスモードがオフで、本番のフィールドが空です。本番の認証情報を入力するか、Sandbox Mode をオンのままにしてください。
開発者向け: 決済フォームに署名する前に、拡張機能はフォームのフィールドと注文を伴って OpenCart イベント tc2p_p_payment_fields を発行します。
アンインストール
Extensions > Extensions に移動し、種類で Payments を選択して、VibeFox 2C2P Payment の横にある Uninstall(赤い − ボタン)をクリックします。この拡張機能のライセンスキーとライセンスステータスは、常に削除されます。OpenCart は、拡張機能自体の設定を常に削除します。Enable/Disable、Sort Order、Geo Zone、Total、そして Orders セクションの注文ステータスです。これらは再インストール時に既定値に戻ります。拡張機能の OpenCart イベントも削除されます(OpenCart 4 では、そのイベントと、メンテナンスモードでも 2C2P の結果を通すスタートアップアクションも削除されます)。Delete Data on Uninstall がオンの場合、その他のゲートウェイ設定(タイトル、説明、サンドボックスモード、認証情報、決済ページの設定、ログ)とログも削除されます。オフの場合は、後の再インストールのために保持されます。2C2P の取引は常に保持されるため、再インストール後も古い決済の遅延した結果が引き続き処理されます。既存の注文は、決済のメモを保持します。
OpenCart 4 で拡張機能のファイルも削除するには、アンインストール後に Extensions > Installer に移動し、インストール済み拡張機能の一覧にある VibeFox 2C2P Payment の横の Uninstall(オレンジ色の − ボタン)をクリックしてから、アップロードしたパッケージを削除するために Delete(赤いゴミ箱のボタン)をクリックしてください。
2C2P は、それぞれの所有者の商標です。本拡張機能は 2C2P と提携しておらず、2C2P による推奨も受けていません。
