Moneris Checkout と JavaScript の統合: JSON 応答の問題の処理

Moneris Checkout と JavaScript の統合: JSON 応答の問題の処理
Moneris Checkout と JavaScript の統合: JSON 応答の問題の処理

Moneris Checkout のシームレスな統合: JSON 応答のトラブルシューティング

Moneris Checkout は、企業がオンライン取引を迅速化するのに役立つ一般的に使用される支払いゲートウェイ システムです。ただし、これを Web サイトに統合することは、特にチケット番号などの必要なデータが JSON 呼び出しから返されない場合には困難になる可能性があります。このようなエラーはトランザクションの通常のフローを妨げる可能性があるため、デバッグはエンジニアにとって必要なスキルです。

古い Hosted Payment Page (HPP) を Moneris に置き換え、その JavaScript インターフェイスを使用する場合、チェックアウトを適切に構成する方法を理解することが重要です。顧客にシームレスなエクスペリエンスを提供するには、ページにトランザクションの詳細が投稿され、正確な応答が取得されるようにしてください。

多くの開発者は、Moneris の統合ドキュメントを理解するのに苦労しています。この複雑さは、コールバックの処理、トランザクション データのアップロード、リアルタイムでの結果の読み取りに起因しており、これらはすべて統合を成功させるために必要です。統合の取り組みを開始する際には、明確で十分に文書化された方法論があることが有益である可能性があります。

この投稿では、Moneris 統合でチケット番号が欠落している問題を解決する方法を見ていきます。必要なコード スニペットとトラブルシューティング手法を確認すると、この問題に対処する準備が整います。

指示 使用例
monerisCheckout() これは、Moneris JavaScript SDK のコンストラクター関数です。チェックアウト手順が開始されます。このスクリプトは Moneris チェックアウト ウィジェットの新しいインスタンスを生成します。これにより、Web サイトに支払いゲートウェイを埋め込むことができます。
setMode() Moneris トランザクションの環境を指定します。この例では、「qa」は、実際の支払いを処理せずにトランザクションを安全にシミュレートできるテスト環境を指します。これは、実際にカードを充電せずに統合をテストするために必要です。
setCheckoutDiv() このコマンドは、Moneris チェックアウトを指定された HTML コンテナー (div) に関連付けます。 ID「monerisCheckout」を指定すると、支払いウィジェットがこの div 内に表示され、ページ上のフォームが表示される場所を選択できるようになります。
setCallback() チェックアウト プロセス中に、特定のイベントに機能を割り当てます。このシナリオでは、カスタム関数「myPageLoad」がイベント「page_loaded」を処理し、開発者がチェックアウト ページが完全に読み込まれたときにコードを実行できるようにします。
startCheckout() Moneris のチェックアウト プロセスを開始します。この関数が呼び出されると、支払いフォームをレンダリングし、トランザクションを処理するバックエンド システムに接続することによって、支払いフローが開始されます。
app.post() これは、POST リクエストを処理する Express.js ルート ハンドラーです。このスクリプトは、トランザクションの終了後に Moneris バックエンドから支払い受領書を受け取ります。これにより、支払いデータの保存や確認の発行などの追加の処理が可能になります。
bodyParser.json() 受信した JSON リクエストを解析するための Express のミドルウェア関数。 Moneris はトランザクション データを JSON 形式で送信するため、この場合は特に重要です。このコマンドは、リクエスト本文がサーバー側で正しく処理されることを保証します。
chai.request() このコマンドは、テスト ケース内で HTTP リクエストを送信する Chai HTTP テスト パッケージの一部です。これにより、単体テスト中に POST リクエストが Moneris 支払い API に複製され、開発者はバックエンドが成功したトランザクションと失敗したトランザクションをどのように処理するかを確認できるようになります。
expect() Chai ライブラリの中核となるアサーション関数。単体テストのコンテキストでは、特定の条件が満たされているかどうかを判断します。これは、支払いエンドポイントから返される応答ステータスとメッセージが意図した結果と一致していることを確認するために使用されます。

Moneris Checkout の統合とスクリプトのワークフローを理解する

含まれているフロントエンド スクリプトは、JavaScript を介して Moneris Checkout システムを Web サイトに統合します。主な機能は、Moneris チェックアウトのインスタンスを確立することから始まります。 モネリスチェックアウト() コンストラクタ。このインスタンスは、Web サイトと Moneris の支払い処理サービスの間のインターフェイスとして機能します。コマンド setMode() 環境をテスト用に「qa」に設定するか、実稼働用に「live」に設定するかを指定します。これは開発段階で重要です。 「qa」を選択すると、開発者は実際のコストを発生させることなくトランザクションを複製でき、安全なテスト環境を作成できます。

チェックアウト インスタンスが構築されると、 setCheckoutDiv() コマンドは、Moneris チェックアウト フォームを特定の HTML div に接続します。ここは、ページ上の支払いフォームが表示される場所です。これにより、支払いフォームの視覚的描写が Web サイトの特定の領域に表示されることが保証され、手順がシームレスになり、既存のデザインに統合されます。この例では、Moneris フォームが ID「monerisCheckout」の div に挿入されます。この div は、クライアントの支払い入力フィールドとボタンを含む、Moneris の動的に読み込まれるコンテンツのプレースホルダーとして機能します。

その後、スクリプトが実行されます setCallback()これにより、開発者はチェックアウト プロセスの特定のイベント処理を構成できるようになります。具体的には、「page_loaded」のコールバックが関数にアタッチされます。 myPageLoadこれにより、ページが完全に読み込まれると、追加のカスタム アクション (データのログ記録など) が発生することが保証されます。この機能により、ユーザー エクスペリエンスを柔軟に処理できるようになります。の内容をログに記録する 中のオブジェクト myPageLoad() Moneris が返すデータに関するリアルタイムのフィードバックを提供することで、開発者のデバッグを支援します。

最後に、バックエンド スクリプトは、サーバー側での支払いデータの受信を処理します。使用する Express.js Node.js のルート app.post() トランザクションが完了すると、Moneris から POST リクエストを受信するように定義されています。このエンドポイントは、返された JSON を処理し、 応答コード 支払いが成功したかどうかを確認します。成功すると、トランザクション データ (チケット番号など) をログに記録したり、データベースに入力したりできます。適切なステータス コードとメッセージを返すことにより、バックエンドはフロントエンドとのスムーズな接続を可能にし、トランザクションが成功したか失敗したかなどの重要なフィードバックをユーザーに提供します。

Moneris Checkout と JavaScript の統合: フロントエンドおよびバックエンド ソリューション

JavaScript を利用して Moneris Checkout フォームを組み込み、トランザクション応答を処理するフロントエンド ソリューション。

// Front-end integration script
// This script embeds the Moneris checkout and processes the transaction result

<script src="https://gatewayt.moneris.com/chktv2/js/chkt_v2.00.js"></script>
<div id="monerisCheckout"></div>
<script>
var myCheckout = new monerisCheckout();
myCheckout.setMode("qa"); // Set environment to QA
myCheckout.setCheckoutDiv("monerisCheckout"); // Define div for checkout
// Add callback for when the page is fully loaded
myCheckout.setCallback("page_loaded", myPageLoad);
// Start the checkout process
myCheckout.startCheckout("");

// Function that gets triggered when the page is loaded
function myPageLoad(ex) {
    console.log("Checkout page loaded", ex);
}

// Function to handle the receipt after the payment
function myPaymentReceipt(ex) {
    if(ex.response_code === '00') {
        alert("Transaction Successful: " + ex.ticket);
    } else {
        alert("Transaction Failed: " + ex.message);
    }
}
</script>

Node.js と Express を使用したバックエンド ソリューション: 支払いデータの処理

Node.js と Express を利用して Moneris の後払いデータを管理するバックエンド ソリューション

// Node.js backend script for processing payment receipt data
// This backend handles the response from Moneris and processes it for database storage

const express = require('express');
const bodyParser = require('body-parser');

const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

// Endpoint to receive the payment result
app.post('/payment-receipt', (req, res) => {
    const paymentData = req.body;

    if (paymentData.response_code === '00') {
        console.log('Payment successful:', paymentData.ticket);
        // Insert into database or further process the payment
        res.status(200).send('Payment success');
    } else {
        console.error('Payment failed:', paymentData.message);
        res.status(400).send('Payment failed');
    }
});

app.listen(3000, () => {
    console.log('Server running on port 3000');
});

Mocha と Chai を使用したバックエンドの支払い処理の単体テスト

Mocha と Chai を使用したバックエンドの単体テストで金銭処理機能を検証する

// Unit test for the Node.js backend using Mocha and Chai
// This test checks if the backend properly handles successful and failed transactions

const chai = require('chai');
const chaiHttp = require('chai-http');
const app = require('../app'); 
const expect = chai.expect;
chai.use(chaiHttp);

describe('POST /payment-receipt', () => {
    it('should return 200 for successful payment', (done) => {
        chai.request(app)
            .post('/payment-receipt')
            .send({ response_code: '00', ticket: '123456' })
            .end((err, res) => {
                expect(res).to.have.status(200);
                expect(res.text).to.equal('Payment success');
                done();
            });
    });

    it('should return 400 for failed payment', (done) => {
        chai.request(app)
            .post('/payment-receipt')
            .send({ response_code: '01', message: 'Transaction Declined' })
            .end((err, res) => {
                expect(res).to.have.status(400);
                expect(res.text).to.equal('Payment failed');
                done();
            });
    });
});

カスタマイズ オプションによる Moneris Checkout の統合の強化

Moneris Checkout 統合を使用する場合、開発者はユーザー エクスペリエンスを向上させるためにチェックアウト プロセスをパーソナライズする方法を頻繁に探します。チェックアウトフォームの UIコンポーネント カスタマイズすることもできますが、これはあまり知られていない機能です。 Moneris を使用すると、企業はチェックアウト ページの外観とレイアウトをカスタマイズして、自社のブランドに合わせることができます。これには、ボタンのレイアウト、フォームフィールド、さらには文言を変更して、エンドユーザーにとってプロセスを容易にし、コンバージョンを増やすことが含まれます。

検討すべきもう 1 つの要素は、基本支払い以外の取引種類の使用です。 Moneris には、取引金額がカードに保存されますが、すぐには請求されない事前認証などの機能があります。この機能は、ホテルやレンタカーなど、最終料金が異なる可能性がある分野では特に重要です。統合では、同じものを使用して多くのトランザクション タイプを処理できます。 API、さまざまなユースケースに多用途に使用できます。

あらゆる支払い統合においてセキュリティは最優先事項であり、Moneris Checkout にはトークン化や不正行為防止などのテクノロジーが組み込まれています。トークン化により、機密性の高いカード情報がトークンに置き換えられるため、消費者データがシステム上に公開されることはありません。不正行為検出テクノロジーや PCI DSS 準拠などのセキュリティ対策を導入すると、オンライン取引に関連するリスクを大幅に軽減できます。

Moneris Checkout の統合に関するよくある質問

  1. モネリスチェックアウトとは何ですか?
  2. Moneris Checkout は、企業が Web サイトを通じて安全に支払いを受け取れるようにする支払いゲートウェイ ソリューションです。カスタマイズ可能なチェックアウト フォームを提供し、さまざまな支払い方法を受け入れます。
  3. Moneris チェックアウト フォームをカスタマイズするにはどうすればよいですか?
  4. Moneris API を使用すると、ボタンや入力フィールドなどの要素を変更して、チェックアウト フォームのデザインをカスタマイズできます。次のようなコマンドを使用します setCustomStyle() フォームにブランドのスタイルを追加します。
  5. 「qa」環境を整える重要性とは?
  6. 環境を「qa」に設定する setMode("qa") 実際の支払いを処理せずにトランザクションを安全にテストできます。
  7. 事前承認トランザクションはどのように処理すればよいですか?
  8. 事前承認を管理するには、 action: "preauth" JSON リクエストの引数。これにより、顧客のカードはすぐに請求されずに保留されます。
  9. Moneris Checkout が提供するセキュリティ対策は何ですか?
  10. Moneris は、クレジット カードの機密情報をトークンに置き換えるトークン化をサポートしています。の遵守 PCI DSS 統合が業界のセキュリティ要件を満たしていることを保証します。

Moneris Checkout 統合に関する最終的な考え

Moneris Checkout を JavaScript と正常に統合するには、フロントエンドとバックエンドのセットアップの両方を慎重に計画する必要があります。ユーザーに優れたチェックアウト エクスペリエンスを提供するには、チケット番号などのトランザクションの詳細が適切に取得されるようにする必要があります。

QA 環境でテストし、支払いフォームを適切に構成すると、問題を早期に発見するのに役立ちます。正しいテクニックを使えば、顧客の満足を保証しながら、会社の目標に合ったシームレスで安全な支払い手順を作成できます。

Moneris Checkout 統合に関する参考資料とリソース
  1. この記事は、Moneris Checkout Integration のドキュメントと API リファレンスに基づいています。詳細については、公式 Moneris GitHub リポジトリにアクセスしてください。 Moneris チェックアウト GitHub
  2. JavaScript ベースの支払い統合の設定に関する追加のガイダンスは、Moneris 開発者ポータルで参照できます。 Moneris 開発者ポータル
  3. JSON 呼び出しの処理とトランザクション応答のキャプチャに関するベスト プラクティスについては、JavaScript SDK ドキュメントを参照してください。 Moneris JavaScript SDK