Developer/接続方式/リンク型/EMV 3-Dセキュア認証システム

EMV 3-Dセキュア認証システム

 オンライン決済 ASP の EMV 3-D セキュアでは、リスクベースの認証をカード利用者の決済情報等を基に、取引の大半は追加認証なしに認証が完了とし、高リスクと判断される取引にのみワンタイムパスワード等の追加認証が実施されます。
 加盟店は、当社が提供する EMV 3-D セキュア認証の JavaScript を加盟店サイトに組み込むことで、カード利用者の決済情報等を認証機関に連携できます。

利用イメージ

利用可能な決済手段

クレジットカード決済
(本人認証サービス(EMV 3-D セキュア))

 カード利用者決済情報トークン取得から購入要求の流れは、以下のとおりです。カード利用者決済情報トークン取得後の決済の流れの詳細については、リンク型 購入要求リンク型 顧客決済情報登録要求 を参照ください。

 EMV 3-D セキュア認証システムのインターフェースは以下のとおりです。なお、フォーマットは XML フォーマットを使用します。
詳しくは、API型 基本仕様 を参照ください。

ファイルcom_sbps_system_tds2infotoken.js
関数名com_sbps_system_tds2.generateToken
接続先サービス開始時ご案内
オブジェクト名/関数名項目名説明備考
tokenRequestトークンリクエストカード利用者決済情報トークン生成で必要となるプロパティを指定したオブジェクト加盟店サイトで取得した顧客情報を設定
callbackコールバックカード利用者決済情報トークン取得後にコールバックする関数

カード利用者決済情報トークンリクエスト

≪型について≫9:数値型(1Byte の 0~9)、X:半角文字列、M:マルチバイト文字列(BASE64 エンコード不要)

SEQ タグエレメント名 項目名 桁数 必須 タイプ 設定内容 備考
1merchantIdマーチャントID59固定加盟店を識別するID当社で指定
2serviceIdサービスID39固定加盟店のサービスを識別するID当社で指定
3billingLastName請求先名前(姓)22X可変英字 (姓)
リダイレクト型または、API型を利用の場合必須
加盟店よりご連携頂くカード利用者決済情報等に対し、カード会社が追加認証の要否を判断しますので、より多く、正確な情報をご連携頂ければ、追加認証なしの可能性も高くなります。
4billingFirstName請求先名前(名)22X可変英字(名)
リダイレクト型または、API型を利用の場合必須
5billingPostalCode請求先郵便番号7X可変
6billingCity請求先都道府県50M可変
7billingAddress1請求先市区町村50M可変
8billingAddress2請求先住所丁目・番地50M可変
9billingAddress3請求先住所ビル・マンション名50M可変
10billingPhone請求先電話番号20X可変Emailアドレスを連携しない場合必須
11workPhone職場電話番号25X可変
12shippingPostalCodeお届先郵便番号7X可変
13shippingCityお届先都道府県50M可変
14shippingAddress1お届先市区町村50M可変
15shippingAddress2お届先住所丁目・番地50M可変
16shippingAddress3お届先住所ビル・マンション名50M可変
17emailEmailアドレス254X可変請求先電話番号を連携しない場合必須
オブジェクト名/関数名項目名説明備考
responseレスポンス結果カード利用者決済情報トークン情報結果オブジェクト当社で生成したカード利用者決済情報トークン情報を返却

レスポンス結果(正常時)

≪型について≫9:数値型(1Byte の 0~9)、X:半角文字列、M:マルチバイト文字列(BASE64 エンコード不要)

SEQ タグエレメント名 項目名 桁数 必須 タイプ 設定内容 備考
1result結果ステータス2X固定OK:要求処理 OK
2tokenResponseカード利用者決済情報トークンレスポンス可変カード利用者決済情報トークン結果オブジェクト
3tds2infoTokenカード利用者決済情報トークンX可変
4tds2infoTokenKeyカード利用者決済情報トークンキーX可変
5billingLastName請求先名前(姓)22X可変英字(姓)
6billingFirstName請求先名称(名)22X可変英字(名)
7billingPostalCode請求先郵便番号7X可変
8billingCity請求先都道府県50M可変
9billingAddress1請求先市区町村50M可変
10billingAddress2請求先住所丁目・番地50M可変
11billingAddress3請求書先ビル・マンション名50M可変
12billingPhone請求先電話番号20X可変
13workPhone職場電話番号25X可変
14shippingPostalCodeお届先郵便番号7X可変
15shippingCityお届先都道府県50M可変
16shippingAddress1お届先市区町村50M可変
17shippingAddress2お届先住所丁目・番地50M可変
18shippingAddress3お届先住所ビル・マンション名50M可変
19emailEmailアドレス254X可変

レスポンス結果(異常時)

≪型について≫9:数値型(1Byte の 0~9)、X:半角文字列、M:マルチバイト文字列(BASE64 エンコード不要)

SEQ タグエレメント名 項目名 桁数 必須 タイプ 設定内容 備考
1result結果ステータス2X固定NG:要求処理 NG
2errorCodeエラーコード5X固定エラーコード一覧参照

 返却されるエラーコード体系は、以下のとおりです。

 1-2 桁目 :種別を表します。※半角英数字 2 桁固定長
 3-5 桁目 :項目を表します。※半角英数字 3 桁固定長

 返却されるエラーコード体系は、以下のとおりです。

種別コード

コード 種別 説明
リクエスト情報に関するエラー
03必須エラー必須項目に値が指定されていない
04属性エラー許容文字属性不正
05桁数エラー許容桁数(バイト数)範囲外
07定義値エラー定義値外の値が指定されている
サーバーで発生するエラー
99システムエラー内部処理エラーが発生しました

項目コード

コード 種別 説明
個人情報ワンタイムトークン生成
001マーチャント ID
002サービス ID
003請求先名前(姓)
004請求先名前(名)
005請求先郵便番号
006請求先都道府県
007請求先市区町村
008請求先住所丁目・番地
009請求先住所ビル・マンション名
010請求先電話番号
011連絡先電話番号
012お届先郵便番号
013お届先都道府県
014お届先市区町村
015お届先住所丁目・番地
016お届先住所ビル・マンション名
017Emailアドレス
999(該当項目無し)
※指定不備があった場合に該当の項目に対応するコード値が返却されます。

 カード利用者決済情報トークン取得時のイメージは、以下のとおりです。
 ※開発中のため、サンプルコードについて変更になる可能性があります。

HTML&JavaScript
                     <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0.1//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html lang="ja"> 
<head> 
    <script type="text/javascript" src="http://example.co.jp/token/js/com_sbps_system_ 	tds2infotoken.js"></script> 
    <script type="text/javascript"> 	    上記URLはサンプルとなります。 
    <!-- 	                            サービス開始時に別途ご案内いたします
    function doSubmit(){ 
        // トークン生成ロジック呼び出し 
       com_sbps_system_tds2.generateToken({
            merchantId : document.getElementById('merchant_id').value,
            serviceId : document.getElementById('service_id').value,
            billingLastName : document.getElementById('billingLastName').value,
            billingFirstName : document.getElementById('billingFirstName').value,             
            billingPostalCode : document.getElementById('billingPostalCode').value,
            billingCity : document.getElementById('billingCity').value,
            billingAddress1 : document.getElementById('billingAddress1').value,
            billingAddress2 : document.getElementById('billingAddress2').value,
            billingAddress3 : document.getElementById('billingAddress3').value,
            billingPhone : document.getElementById('billingPhone').value,
            workPhone : document.getElementById('workPhone').value,
            shippingPostalCode : document.getElementById('shippingPostalCode').value,
            shippingCity : document.getElementById('shippingCity').value,
            shippingAddress1 : document.getElementById('shippingAddress1').value,
            shippingAddress2 : document.getElementById('shippingAddress2').value,
            shippingAddress3 : document.getElementById('shippingAddress3').value,
            email : document.getElementById('email').value 
        }, afterGenerateToken); 
    } 
 
    var afterGenerateToken = function(response) {
        if (response.result == "OK") {
            document.getElementById('token').value = response.tokenResponse.3ds2infoToken;             
            document.getElementById('tokenKey').value = response.tokenResponse.3ds2infoTokenKey; 
 
            if(window.confirm('トークン取得しました。決済を実施します。')){ 
                document.getElementById('frm').submit(); 
            } else { 
                alert("キャンセルしました。"); 
            } 
        } else { 
            alert('トークン取得に失敗しました。'); 
        } 
    } 
    // --> 
    </script> 
</head> 
<body> 
    <h1>トークン生成サンプル</h1> 
    <form name="frm" id="frm" method="POST" action="Confirm.jsp"> 
 
    <dl> 
        <dt>マーチャントID</dt> 
        <dd><input type="text" id="merchant_id" name="merchant_id" maxlength="5" value="12345"></dd>         <dt>サービスID</dt> 
        <dd><input type="text" id="service_id" name="service_id" maxlength="3" value="001"></dd> 
        <dt>請求先名前(姓)</dt> 
        <dd><input type="text" id="billingLastName" name="billingLastName" maxlength="22" value="決済"></dd> 
 
     ・・・・・(略) 
 
        <dt>お届先住所ビル・マンション名</dt> 
        <dd><input type="text" id="shippingAddress3" name="shippingAddress3" maxlength="50" value=""></dd>         <dt>Emailアドレス</dt> 
        <dd><input type="text" id="email" name="email" maxlength="254" value="exsampl@exsample.com"></dd> 
    </dl> 
    <dl> 
        <dt>トークン</dt> 
        <dd><input type="text" id="3ds2infoToken" name="token" value="" disabled></dd> 
        <dt>トークンキー</dt> 
        <dd><input type="text" id="3ds2infoTokenKey" name="tokenKey" value="" disabled></dd> 
    </dl> 
        <table> 
            <tr><td> 
            <input type="button" name="btnSend" id="btnSend" value="送信" onClick="doSubmit()">             
            <input type="reset" name="btnReset" id="btnReset" value="リセット"> 
            </td></tr> 
        </table> 
    </form> 
</body> 
</html>
                

カード利用者決済情報トークンの有効期間
 カード利用者決済情報トークン発行から一定時間経過すると利用不可となるため、決済要求時直前にカード利用者決済情報トークン取得することを推奨します。使用不可となった場合は、改めて取得ください。

ブラウザ設定について
 JavaScript の動作するブラウザを前提としています。JavaScript の動作しない環境については動作保証しません。

利用可能な暗号化プロトコルについて
 当社が準拠する PCI DSS の定めにより「SSL 3.0」「TLS 1.0」は利用できません。
 また、「TLS 1.1」に関しても暗号化方式としての脆弱性に指摘があり、将来的に使用を禁止される可能性が高いため、加盟店においては「TLS 1.2」を利用ください。

このページは役に立ちましたか?