- インテグレーションガイドライン
- サポートされている機能(セキュリティ)
- 3D セキュア認証
- 3DS JavaScript API を使用した 3DS インテグレーションの実装
3DS JavaScript API を使用した 3DS インテグレーションの実装
このガイドは、3DS JavaScript (JS) API を使用して、ゲートウェイのインテグレーションに 3DS を追加するよう求められるすべての手順について説明します。この手順には、支払いを処理する上で認証結果をどのように使用すればよいかが含まれています。
手順 1: セッションの作成と更新
3DS JS は、セッションベースの認証を使用します。最初のステップとしてセッションを作成する必要があります。その後、セッションに保存するリクエストフィールドと値を更新できます。
Create Session コールを使用して、セッションを作成できます。これはサーバ側 API コールで、JS API とのインテグレーションの前提条件です。以下のフィールドを返します。
session.id
:一意のセッション識別子で、セッションの内容を参照するために後続のリクエストで提供する必要があります。session.authenticationLimit
:支払者のブラウザが送信できる、取引リクエストの上限数。リクエストで値を提供するか、ゲートウェイのデフォルト値を使用することができます。デフォルトでは、ゲートウェイは 5 に設定していますが、25 までの値を指定できます。この制限は、悪意のあるユーザーが潜在的なカード攻撃として認証リクエストを使用するのを防ぎ、さらにサイトで大量の (潜在的に請求可能な) 取引を送信することによるサービス拒否 (DoS) 攻撃の実行を防ぎます。
開始された認証再試行は、認証の上限に対して照合されることに注意してください。session.aes256Key
:支払者のブラウザやモバイル機器を経由して Web サイトに伝達された機密認証データを復号するために使用できる鍵。session.version
:このフィールドを使用して、セッションの内容のオプティミスティックロック機能を実装できます。session.updateStatus
:セッションの変更を最後に試みた結果の概要。
Update Session コールを使用して、セッション内のフィールドを追加または更新できます。支払いと支払者データをセッションに追加すると、後に入力情報として、認証操作で支払者に関連するリスクを決定する際に使用することができます。セッションの中で、以下のフィールドが必要になります。
パラメータ | 有無 | 説明 |
---|---|---|
session.id または sourceOfFunds.provided.card.* または sourceOfFunds.token |
必須 | 支払いに使用されるカードの詳細。 支払認証で、ネットワークトークンと機器による支払トークンも資金のソースとして使用できることに注意してください。詳細については、「よくある質問」を参照してください。 |
order.amount |
必須 | 注文の総額。 |
order.currency |
必須 | 注文の通貨。 |
transaction.id |
必須 | この支払認証用の一意の識別子。 |
order.id |
必須 | この注文用の一意の識別子。 |
authentication.channel |
必須 | 認証リクエストが開始したチャネル。以下のうち 1 つを指定できます。
|
authentication.redirectResponseUrl |
任意指定 | 支払者認証プロセスが完了した後に支払者をリダイレクトする URL。支払者とのインタラクションがないことが確実でない限り、この URL を提供する必要があります。 |
authentication.purpose |
任意指定 | デフォルトでは、このフィールドは "PAYMENT_TRANSACTION" に設定されており、カードの支払いを処理する時に実行される認証を示します。ただし、支払いを伴わない認証を示すために、異なる目的を指定することができます。「支払いを伴わない認証リクエストの送信」を参照してください。 |
authentication.acceptVersions |
任意指定 | この支払いを受け入れる 3DS のバージョン。バージョンを指定しない場合、3DS1 および 3DS2 の両方が受け入れられます。ゲートウェイは 3DS2 を使用し (イシュアー (カード発行会社) およびカードによってサポートされている場合)、3DS2 が使用できない場合にのみ 3DS1 に戻ります。両方が使用できない場合、認証は処理されません。なお、フォールバックシナリオは、3DS1 の拡張子を持つ市場にのみ適用されます。 |
order.merchantCategoryCode |
任意指定 | アクワイアラーリンクに設定したデフォルト値を上書きする場合に、加盟店カテゴリーコードを指定します。 |
手順 2:API の初期化
ゲートウェイサーバから 3DS JS API (threeDS.js
) を照会します。これで、ThreeDS
オブジェクトはウィンドウ/グローバルなネームスペースに配置されます。
セッションの作成後、configure( )
メソッドを使用して API を初期化します。このメソッドは、ページのロード中、または DOM が準備完了の状態の時に行われる必要があります。これはページロードで 1 回だけ起動されなければなりません。このメソッドの起動後、3DS JS はメンバー変数として設定値を入力します。
3DS JS API は、configure() メソッドで呼び出すことによって初期化できます。以下の必須フィールドがマップオブジェクトで引数になります。
merchantId
:ゲートウェイでの加盟店の識別子。sessionId
:Create Session コールを使用して、作成したセッション ID。containerId
:API が非表示の iframe を入れる HTML の中の <div> ID。callback
:API が初期化した後に起動する機能。configuration
:ユーザー言語 (オプション)、REST API バージョン (wsVersion) など、JSON 値がサポートするデータ要素。
<html> <head> <script src="https://qnbalahli.test.gateway.mastercard.com/static/threeDS/1.3.0/three-ds.min.js" data-error="errorCallback" data-cancel="cancelCallback"> </script> <script type="text/javascript"> //The output of this call will return 'false', since the API is not configured yet console.log(ThreeDS.isConfigured()); /** Configure method with the configuration{} parameter set and demonstrates the state change of the ThreeDS object before and after the configure method is invoked. */ ThreeDS.configure({ merchantId: {merchantId}, sessionId: {sessionId}, containerId: "3DSUI", callback: function () { if (ThreeDS.isConfigured()) console.log("Done with configure"); }, configuration: { userLanguage: "en-AU", //Optional parameter wsVersion: 72 } }); //The output of this call will return 'true', since the API is configured console.log(ThreeDS.isConfigured()); //The output of the following code might look like "ThreeDS JS API Version : 1.2.0" console.log("ThreeDS JS API Version : " + ThreeDS.version); </script> </head> <body> <div id="3DSUI"></div> </body> </html>
手順 3: 認証開始
すべての支払者と支払データがセッションに収集された後に、initiateAuthentication()
メソッドを起動することによって認証を初期化できます。特定のカードについて、利用可能な支払者認証のバージョンを判断します。これは、以下に基づいて行われます。
- 加盟店プロファイルで設定された 3DS バージョン
- カードのタイプ
- リクエストの中で示したプリファレンス
- カードが登録されている 3DS のバージョン
- ユーザーまたは your payment service provider が設定した、3DS 取引フィルターのルール。
この操作は、追加の支払者データを収集して後続の authenticatePayer()
メソッドのサポートを行う場合などの目的を実行するバックグラウンドアクティビティ (3DS2 ACS コールなど) についてもできるようになります。
authenticatePayer()
メソッドを試行する前に ACS コール処理を完了できるようにするには、チェックアウト処理でできるだけ早く initiateAuthentication() メソッドを起動し、直ちにレスポンスに対応することをお勧めします。これは通常、支払者がチェックアウト画面でカード番号を入力し終わった場合 (カード番号入力フィールドの 'onBlur' イベント)、またはウェブサイトにカードオンファイル機能がある場合に、アカウントに保存されたカードから選択する場合が該当します。ACS メソッドコールが完了するまで少なくとも 10 秒お待ちください。initiateAuthentication()
メソッドの次の必須フィールドを指定することで、認証を開始できます。
- transactionId:この支払認証用の一意の識別子。
- orderId:この注文用の一意の識別子。
- コールバック:コールバック機能。
- optionalParams:(オプション) correlationId など、追加の Initiate Authentication REST API リクエストフィールドにある引数。
支払者の 3DS 認証を利用できる場合、コールバック機能の data
引数で以下のフィールドを返します。それ以外の場合は、応答にはエラーが含まれます。
data.restApiResponse
:Initiate Authentication REST API コールからの生のレスポンスを含みます。data.correlationId
:Initiate Authentication REST API コールを行う時に使用された、最後の相関 ID。レスポンスをリクエストに一致できるようになります。data.gatewayRecommendation
data.authenticationVersion
:認証が利用できる場合に、3DS1 または 3DS2 を返します。なお、フォールバックシナリオは、3DS1 の拡張子を持つ市場にのみ適用されます。
次の手順を決定するには、gatewayRecommendation フィールドに示されているゲートウェイの推奨事項を確認します。この推奨事項は、ユーザーまたは your payment service provider が設定した 3DS 取引フィルターのルールのみに基づいています。ご注意ください。
gatewayRecommendation |
次の手順 |
---|---|
PROCEED | authenticatePayer( ) メソッドコールを使用して、支払者の認証に進むことができます。 |
RESUBMIT_WITH_ALTERNATIVE_PAYMENT_DETAILS | 支払者に別の支払い方法(新しいカードや別の支払い方法など)を尋ね、新しい内容でリクエストを再度送信してください。同じリクエストを再度送信しないでください。 |
var optionalParams = { sourceOfFunds: { type: "CARD" }, order: { walletProvider: "MASTERPASS_ONLINE" } }; ThreeDS.initiateAuthentication({orderId}, {transactionId}, function (data) { if (data && data.error) { var error = data.error; //Something bad happened, the error value will match what is returned by the Authentication API console.error("error.code : ", error.code); console.error("error.msg : ", error.msg); console.error("error.result : ", error.result); console.error("error.status : ", error.status); } else { console.log("After Initiate 3DS ", data); //data.response will contain information like gatewayRecommendation, authentication version, etc. console.log("REST API raw response ", data.restApiResponse); console.log("Correlation Id", data.correlationId); console.log("Gateway Recommendation", data.gatewayRecommendation); console.log("HTML Redirect Code", data.htmlRedirectCode); console.log("Authentication Version", data.authenticationVersion); switch (data.gatewayRecommendation) { case "PROCEED": authenticatePayer();//merchant's method break; case "RESUBMIT_WITH_ALTERNATIVE_PAYMENT_DETAILS": tryOtherPayment();//Card does not support 3DS and transaction filtering rules require 3DS on this transaction: Ask the payer to select a different payment method. break; } } }, optionalParams);
{ "authentication":{ "3ds2":{ "methodCompleted":false, "methodSupported":"SUPPORTED" }, "redirect":{ "customized":{ "3DS":{ "methodPostData":"eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiaHR0cHM6Ly9xYTA0LmdhdGV3YXkubWFzdGVyY2FyZC5jb20vY2FsbGJhY2tJbnRlcmZhY2UvZ2F0ZXdheS80ZjNmMGQyMjM5NzQwODE2OWIwMWFiYzg2OTQyZTY5NzBmODA2M2M0MDU4ZjAzNjNlOTFlMmJiOTNkOTA0NzU3IiwidGhyZWVEU1NlcnZlclRyYW5zSUQiOiJhYWY5YjU5ZC0yZTA0LTRjZDUtOTQzOC01OGU4MGEzNzBiNWEifQ==", "methodUrl":"<method_url>" } } }, "redirectHtml":"<div id=\"initiate3dsSimpleRedirect\" xmlns=\"http://www.w3.org/1999/html\"> <iframe id=\"methodFrame\" name=\"methodFrame\" height=\"100\" width=\"200\" > </iframe> <form id =\"initiate3dsSimpleRedirectForm\" method=\"POST\" action=\"https://<host_name>/acs/v2/method\" target=\"methodFrame\"> <input type=\"hidden\" name=\"threeDSMethodData\" value=\"eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiaHR0cHM6Ly9xYTA0LmdhdGV3YXkubWFzdGVyY2FyZC5jb20vY2FsbGJhY2tJbnRlcmZhY2UvZ2F0ZXdheS80ZjNmMGQyMjM5NzQwODE2OWIwMWFiYzg2OTQyZTY5NzBmODA2M2M0MDU4ZjAzNjNlOTFlMmJiOTNkOTA0NzU3IiwidGhyZWVEU1NlcnZlclRyYW5zSUQiOiJhYWY5YjU5ZC0yZTA0LTRjZDUtOTQzOC01OGU4MGEzNzBiNWEifQ==\" /> </form> <script>document.getElementById(\"initiate3dsSimpleRedirectForm\").submit();</script> </div>", "version":"3DS2" }, "order":{ "currency":"AUD", "status":"AUTHENTICATION_INITIATED" }, "response":{ "gatewayCode":"AUTHENTICATION_IN_PROGRESS", "gatewayRecommendation":"PROCEED" }, "result":"SUCCESS", "sourceOfFunds":{ "provided":{ "card":{ "number":"512345xxxxxx0008" } }, "type":"CARD" }, "transaction":{ "authenticationStatus":"AUTHENTICATION_AVAILABLE" }, "version":"72" }
手順 4: 支払者の認証
Initiate Authentication レスポンスが、認証を利用できることを示している場合 (transaction.authenticationStatus=AUTHENTICATION_AVAILABLE)、authenticatePayer()
メソッドを起動できます。これは、支払者がチェックアウトページで [今すぐお支払い] ボタンをクリックしたときに起動します。
次の必須フィールドを指定することによって、authenticatePayer()
メソッドを起動する必要があります。
orderId
:前に行われたinitiateAuthentication()
メソッドと同じ orderId。transactionId
:前に行われたinitiateAuthentication()
メソッドと同じ transactionId。callback
:コールバック機能。optionalParams
:(オプション) 請求先と発送先など、追加の Authenticate Payer REST API リクエストフィールドにある引数。
コールバック機能の data
引数で以下のフィールドを返します。
data.restApiResponse
:支払者の認証 REST API コールからの生のレスポンスを含みます。data.correlationId
:支払者の認証 REST API コールを行う時に使用された、最後の相関 ID。レスポンスをリクエストに一致できるようになります。data.gatewayRecommendation
data.htmlRedirectCode
:ゲートウェイは、支払者に表示した画面の入力用にこのフィールドを常に返します。
次の手順を決定するには、コールバックで返された gatewayRecommendation
フィールドに示されているゲートウェイの推奨事項を確認します。この推奨事項は、ユーザーまたは your payment service provider が設定した 3DS 取引フィルターのルールのみに基づいています。ご注意ください。
gatewayRecommendation |
次の手順 |
---|---|
PROCEED | 認証プロセスを完了するよう続行し (検証フロー)、または支払いを完了するよう続行することができます (円滑フロー)。支払いの承認が正常に行われた場合、資金の決済請求を処理し、該当する場合は商品を発送します。 |
DO_NOT_PROCEED_ABANDON_ORDER | 同じリクエストを再び送信しないでください。決済代行会社、スキーム、イシュアー (カード発行会社) が、注文を放棄するよう求めています。 |
RESUBMIT_WITH_ALTERNATIVE_PAYMENT_DETAILS | 支払者に別の支払い方法(新しいカードや別の支払い方法など)を尋ね、新しい内容でリクエストを再度送信してください。同じリクエストを再度送信しないでください。 |
ゲートウェイによって PROCEED
が推奨されている場合、支払者に表示されているページに htmlRedirectCode
レスポンスフィールドの内容を貼り付けます。
円滑フロー
支払者のブラウザを、ユーザーのウェブサイトに直接リダイレクトします。ゲートウェイへの後続の支払いの送信に進むことができます。ゲートウェイは、支払いに関連する認証データを取得し、すべての 3DS 取引フィルタルール (加盟店または your payment service provider によって設定) を満たした場合にのみ、支払いが処理されるようにします。
検証フロー
支払者のブラウザを、イシュアー (カード発行会社) の検証 UI が表示される ACS にリダイレクトします。その後、支払者は加盟店のウェブサイトにリダイレクトされます。支払者のブラウザから Web サイトに戻ると、コールバックで次のフィールドが返されます。
- orderId
- transactionId
- gatewayRecommendation
- restApiResponse
gatewayRecommendation
フィールドに返された値を使用して、認証の結果を判断できます。この推奨事項は、ユーザーまたは your payment service provider が設定した 3DS 取引フィルターのルールのみに基づいています。ご注意ください。
gatewayRecommendation |
次の手順 |
---|---|
PROCEED | 認証が付与されるため、支払いを続行できます。支払いの承認が正常に行われた場合、資金の決済請求を処理し、該当する場合は商品を発送します。 |
DO_NOT_PROCEED_ABANDON_ORDER | 同じリクエストを再び送信しないでください。決済代行会社、スキーム、イシュアー (カード発行会社) が、注文を放棄するよう求めています。 |
RESUBMIT_WITH_ALTERNATIVE_PAYMENT_DETAILS | 支払者に別の支払い方法(新しいカードや別の支払い方法など)を尋ね、新しい内容でリクエストを再度送信してください。同じリクエストを再度送信しないでください。 |
restApiResponse
で返されるフィールドは、有効なフロー (円滑または検証)、そして認証リクエストがどのように開始したか (authentication.channel) によって異なります。
セッション認証リクエストについて、レスポンスは支払者に関連しないデータを削除するようフィルタ処理され、ホワイトリストのフィールドのみが返されます。詳細については、「セッション認証操作」を参照してください。
高度なインテグレーション
authenticatePayer()
メソッドの終了時に支払者のブラウザからユーザーのブラウザに送信されたリクエストは、認証結果を決定できるようパラメータ化されます。個別の認証パラメータ (authentication.3ds2.transactionStatus.data
など) は、高度なインテグレーションや、別のゲートウェイを経由して支払いを処理する際に認証データを提供する必要がある場合に役立つことがあります。「高度な支払セッションのインテグレーション」を参照してください。
var optionalParams = { fullScreenRedirect: true, billing: { address: { city: "London", country: "GBR" } } }; ThreeDS.authenticatePayer({orderId}, {transactionId}, function (data) { if (!data.error) { //data.response will contain all the response payload from the AUTHENTICATE_PAYER call. console.log("REST API response ", data.restApiResponse); console.log("HTML redirect code", data.htmlRedirectCode); displayReceipt(data); } }, optionalParams); function displayReceipt(apiResponse) { var responseBody = { "apiResponse": apiResponse }; var xhr = new XMLHttpRequest(); xhr.open('PUT', '3dsreceipt', true); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.onreadystatechange = function () { if (xhr.readyState == XMLHttpRequest.DONE) { document.documentElement.innerHTML = this.response; } } xhr.send(JSON.stringify(responseBody)); }
{ "authentication":{ "3ds":{ "transactionId":"6dfa4509-1bf2-425b-965b-d44dd11f5f91" }, "3ds2":{ "3dsServerTransactionId":"8c4a911c-289a-46c2-a615-887e1cc01a6a", "acsTransactionId":"2a8234c9-e8ac-449d-a693-97a113b491fc", "directoryServerId":"A000000004", "dsTransactionId":"6dfa4509-1bf2-425b-965b-d44dd11f5f91", "methodCompleted":false, "methodSupported":"SUPPORTED", "protocolVersion":"2.1.0", "requestorId":"test2ID", "requestorName":"test2Name", "transactionStatus":"C" }, "method":"OUT_OF_BAND", "payerInteraction":"REQUIRED", "redirect":{ "customized":{ "3DS":{ "acsUrl":"https://<host_name>/acs/v2/prompt", "cReq":"eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImNhODM1ZDQxLTBlMDktNGI3OC1hNmUyLWQwZjJiNjFlZjBjOCJ9" } }, "domainName":"<domain_name>" }, "redirectHtml":"<div id=\"threedsChallengeRedirect\" xmlns=\"http://www.w3.org/1999/html\"> <form id =\"threedsChallengeRedirectForm\" method=\"POST\" action=\"https://<host_name>/acs/v2/prompt\" target=\"challengeFrame\"> <input type=\"hidden\" name=\"creq\" value=\"eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImNhODM1ZDQxLTBlMDktNGI3OC1hNmUyLWQwZjJiNjFlZjBjOCJ9\" /> </form> <iframe id=\"challengeFrame\" name=\"challengeFrame\" width=\"100%\" height=\"100%\" ></iframe> <script id=\"authenticate-payer-script\"> var e=document.getElementById(\"threedsChallengeRedirectForm\"); if (e) { e.submit(); e.remove(); } </script> </div>", "version":"3DS2" }, "correlationId":"test", "device":{ "browser":"MOZILLA", "ipAddress":"127.0.0.1" }, "merchant":"TEST_3DS2-1", "order":{ "amount":100, "authenticationStatus":"AUTHENTICATION_PENDING", "creationTime":"2021-04-13T02:22:59.113Z", "currency":"AUD", "id":"807a01b6-e6c8-4aa7-b8da-799bfff89496", "lastUpdatedTime":"2021-04-13T02:44:07.161Z", "merchantCategoryCode":"1234", "status":"AUTHENTICATION_INITIATED", "totalAuthorizedAmount":0, "totalCapturedAmount":0, "totalRefundedAmount":0, "valueTransfer":{ "accountType":"NOT_A_TRANSFER" } }, "response":{ "gatewayCode":"PENDING", "gatewayRecommendation":"PROCEED" }, "result":"PENDING", "sourceOfFunds":{ "provided":{ "card":{ "expiry":{ "month":"1", "year":"39" }, "number":"512345xxxxxx0008", "scheme":"MASTERCARD" } }, "type":"CARD" }, "timeOfLastUpdate":"2021-04-13T02:44:07.161Z", "timeOfRecord":"2021-04-13T02:22:59.113Z", "transaction":{ "acquirer":{ "merchantId":"99554411" }, "amount":100, "authenticationStatus":"AUTHENTICATION_PENDING", "currency":"AUD", "id":"42090084", "type":"AUTHENTICATION" }, "version":"60" }
手順 5: 支払操作での認証結果の使用
authenticatePayer()
メソッドの結果が、支払いを続行できることを示している場合 (gatewayRecommendation=PROCEED)、Authorize または Pay 操作を開始できます。標準のフィールドに加えて以下のフィールドを指定する必要があります。
- order.id:
initiateAuthentication()
およびauthenticatePayer()
メソッドで入力したorderId
を入力します。 - authentication.transactionId:
initiateAuthentication()
およびauthenticatePayer()
メソッドで入力したtransactionId
を入力します。認証を実行するように要求すると、ゲートウェイは authentication.transactionId を使用して認証結果を探すので、認証パラメータグループのフィールドを含める必要はありません。ゲートウェイは必要な情報をアクワイアラーに渡します。
URL | https://qnbalahli.test.gateway.mastercard.com/api/rest/version/<version>/merchant/<your_merchant_ID>/order/<your_order_ID>/transaction/<your_transaction_ID> |
HTTP メソッド | PUT |
{ "apiOperation":"PAY", "authentication":{ "transactionId":"<your_transaction_ID>" }, "order":{ "amount":"100", "currency":"AUD", "reference":"<your_order_ID>" }, "sourceOfFunds":{ "provided":{ "card":{ "number":"<card_number>", "expiry":{ "month":"1", "year":"39" } } }, "type":"CARD" }, "transaction":{ "reference":"<your_order_ID>" } }
{ "authentication":{ "3ds":{ "acsEci":"02", "authenticationToken":"kHyn+7YFi1EUAREAAAAvNUe6Hv8=", "transactionId":"39c25b96-7bc3-4586-bee8-056479fed3af" }, "3ds2":{ "dsTransactionId":"39c25b96-7bc3-4586-bee8-056479fed3af", "protocolVersion":"2.1.0", "transactionStatus":"Y" }, "transactionId":"249213216", "version":"3DS2" }, "authorizationResponse":{ "posData":"1605S0100130", "transactionIdentifier":"TidTest" }, "device":{ "browser":"MOZILLA", "ipAddress":"127.0.0.1" }, "gatewayEntryPoint":"WEB_SERVICES_API", "merchant":"TEST_3DS2-1", "order":{ "amount":100.00, "authenticationStatus":"AUTHENTICATION_SUCCESSFUL", "chargeback":{ "amount":0, "currency":"AUD" }, "creationTime":"2021-04-13T02:11:06.102Z", "currency":"AUD", "id":"807a01b6-e6c8-4aa7-b8da-799bfff89496", "lastUpdatedTime":"2021-04-13T02:11:57.049Z", "merchantAmount":100.00, "merchantCategoryCode":"1234", "merchantCurrency":"AUD", "reference":"807a01b6-e6c8-4aa7-b8da-799bfff89496", "status":"CAPTURED", "totalAuthorizedAmount":100.00, "totalCapturedAmount":100.00, "totalRefundedAmount":0.00 }, "response":{ "acquirerCode":"00", "gatewayCode":"APPROVED" }, "result":"SUCCESS", "sourceOfFunds":{ "provided":{ "card":{ "brand":"MASTERCARD", "expiry":{ "month":"1", "year":"39" }, "fundingMethod":"CREDIT", "issuer":"<issuer>", "number":"512345xxxxxx0008", "scheme":"Mastercard", "storedOnFile":"NOT_STORED" } }, "type":"CARD" }, "timeOfLastUpdate":"2021-04-13T02:11:57.049Z", "timeOfRecord":"2021-04-13T02:11:56.973Z", "transaction":{ "acquirer":{ "batch":1, "id":"<acquirer_id>", "merchantId":"99554411" }, "amount":100.00, "authenticationStatus":"AUTHENTICATION_SUCCESSFUL", "authorizationCode":"028941", "currency":"AUD", "id":"1", "receipt":"1908266016", "reference":"807a01b6-e6c8-4aa7-b8da-799bfff89496", "source":"INTERNET", "stan":"496", "terminal":"1234", "type":"PAYMENT" }, "version":"60" }
よくある質問
3D セキュアに関するよくある質問については、「認証についてのよくある質問」を参照してください。
インテグレーションのテスト
インテグレーションをテストするには、テスト用加盟店プロファイルを本番環境で使用できます。「インテグレーションをテストする」を参照してください。