• 検索結果がありません。

API_Guide_SCMP_ASP.book

N/A
N/A
Protected

Academic year: 2022

シェア "API_Guide_SCMP_ASP.book"

Copied!
32
0
0

読み込み中.... (全文を見る)

全文

(1)

CyberSource SCMP API ASP

開発者ガ イ ド

(2)

サイバー ソ ースについて

サイバー ソ ースの連絡先

http://www.cybersource.co.jp/

サ イ バー ソ ース株式会社の会社概要、 サービ ス の概要、FAQな ど を用意 し てお り ます。

[email protected] ま たは 03-3548-9873 営業グループ

サービ スや料金に関す る お問い合わせは こ ち ら ま で ど う ぞ。

http://www.cybersource.co.jp/supportcenter/

サ イ バー ソ ース サポー ト リ ン ク 一覧です。

[email protected]

ま たは03-3548-9874 (サポー ト 直通)

カ ス タ マーサポー ト

技術面に対す る お問い合わせは こ ち ら ま で ど う ぞ。

サ イ バー ソ ース株式会社

〒100-0004

東京都千代田区大手町2-1-1 tel: 03-3548-9873 (代表)

fax: 03-3548-9872

こ の文書について

お こ と わ り

• 当社の同意無 く 本ガ イ ド の全部ま たは一部の複写 ・ 複製 ・ 転載をす る こ と を固 く 禁 じ ます。

• 本ガ イ ド の内容は将来予告な し に更新 さ れ る こ と が ご ざ い ま すので、 ご留意下 さ い。

• 本ガ イ ド の記述内容については万全を期 し てお り ますが、 不備等、 お気づ き の点が ご ざい ま し た ら 、 お手数ですが上記の問い合わせ先ま で ご連絡下 さ い。

(3)

サイバー ソ ースについて

変更履歴

Copyright

Copyright (C) 2012 CyberSource K.K. All rights reserved.

(C)CyberSource Corporation. All rights reserved.CyberSource Corporation ( 以 下、

「CyberSource」 ) は、 本ガ イ ド お よ び本ガ イ ド で説明す る ソ フ ト ウ ェ ア を、 本ガ イ ド の 読者(以下、 「お客様」 ) と CyberSource 間の所定の契約書(以下、 「本契約書」 ) の下に 提供す る も の と し ます。 本ガ イ ド お よ び ソ フ ト ウ ェ アは、 本契約書の条項に従っ ての み使用す る こ と がで き ます。 本契約書で明示的に記述 さ れてい る 場合を除 き 、 本ガ イ ド に記載 さ れてい る 情報は、 予告な く 変更す る 場合があ る ため、CyberSource の一切の 保証を意味す る も のではあ り ません。CyberSource は、 本ガ イ ド に誤 り や不正確な記述 があ っ た場合に も 、 一切の責任を負い ま せん。 本ガ イ ド に付随す る 著作権のあ る ソ フ ト ウ ェ アは、 お客様が本契約書の条項を厳守す る 場合にのみ使用が許可 さ れ ます。 ソ フ ト ウ ェ ア を使用す る 前に、 必ず本契約書を慎重にお読み く だ さ い。 本契約書に よ り 許可 さ れてい る 場合を除 き 、 本ガ イ ド のいかな る 部分 も 、CyberSource の書面に よ る 事 前の許可な し に、 電子的、 機械的、 録音、 その他いかな る 手段に よ っ て も 、 検索シ ス テ ムへの保存、 ま たは伝送を行 う こ と はで き ません。

商標

CyberSource、the CyberSource logo、SmartCert、 お よ びPaylinX は、 米国CyberSource の 米国 お よ び そ の 他 の 国 に お け る 登録 商標 で す。The Power of Payment、CyberSource Payment Manager、CyberSource Risk Manager、CyberSource Decision Manager、 お よ び

CyberSource Connect は、 米国 CyberSource Corporation の商標ま たはサービ ス マー ク で

す。 その他の会社名ま たは製品名は、 それぞれの会社の商標ま たは登録商標です。

表 1: 変更履歴

変更月 内容

February 2012 • サイバー ソ ースの連絡先を更新

June 2008 • こ のガ イ ド の他に必要な他の文書を ア ッ プデー ト

• シ ス テム要件に 「32ビ ッ ト プ ロ セ ッ サのみ」 を追加 December 2006 • ICS2開発者ガ イ ド よ り 、 分冊 リ リ ース

(4)

商標

(5)

目次

サイバー ソ ースについて... ii

サ イ バー ソ ース の連絡先... ii

こ の文書について... ii

お こ と わ り... ii

変更履歴... iii

Copyright... iii

商標... iii

1

SDK for ASPの紹介... 1

CyberSource ICSサービ ス... 1

こ のガ イ ド の他に必要な他の文書... 1

基本的なASPの例... 2

2

SDK for ASPのイ ン ス ト ール... 5

シ ス テ ム要件... 5

SDKの イ ン ス ト ール... 5

SDKの内容... 6

証明書フ ァ イ ル と 秘密鍵フ ァ イ ルの生成... 6

鍵のパ ス指定... 7

COM コ ン ポーネ ン ト の登録... 8

SDK イ ン ス ト ールのテ ス ト... 8

本番環境への移行... 8

3

SDK for ASPの使用... 11

ICSサービ ス の リ ク エ ス ト... 11

リ ク エ ス ト の構築お よ び送信... 11

ICSオブジ ェ ク ト の作成... 11

ICSオブジ ェ ク ト のプ ロ パテ ィ 設定... 12

リ ク エ ス ト へのサービ ス の追加... 12

リ ク エ ス ト フ ィ ール ド の追加... 12

オ フ ァ ーフ ィ ール ド の追加... 13

リ ク エ ス ト フ ィ ール ド 値の取得... 14

リ ク エ ス ト の送信... 14

リ プ ラ イ の受信 と 処理... 14

オブジ ェ ク ト 内の フ ィ ール ド の ク リ ア... 16

プ ロ キ シサポー ト... 16

複数のサービ ス の リ ク エ ス ト... 17

タ イ ム ア ウ ト と 自動再試行... 17

再試行を行わない ト ラ ンザ ク シ ョ ンの動作... 18

再試行を行 う ト ラ ンザ ク シ ョ ン の動作... 18

再試行 リ プ ラ イ フ ィ ール ド の評価... 18

再試行お よ び タ イ ム ア ウ ト のパ ラ メ ー タ 設定... 19

再試行の有効化... 19

retry_start値の設定... 19

timeout値の設定... 19

シ ス テ ム エ ラ ー と 再試行... 19

4

API for the ASP SDK ... 21

ICSオブジ ェ ク ト... 21

(6)

AddToOffer ... 23

Clear ... 23

GetRequestValue ... 24

GetResponseValue ... 24

Send ... 24

SetValue ... 25

(7)

1

SDK for ASP の紹介

本章では、 CyberSourceR Software Development Kit (SDK) for ASP について説明 し ます。

本章は次のセ ク シ ョ ン で構成 さ れてい ます。

CyberSource ICSサービ ス

• こ のガ イ ド の他に必要な他の文書

• 基本的なASPの例

CyberSource ICS サービ ス

SDK の 目的 は、Active Server Pages (ASP) を 使用 し て すべ て の CyberSource Internet

Commerce SuiteSM (ICS) サービ ス にア ク セ ス で き る よ う にす る こ と です。ICSサービ

ス では、SCMP (Simple Commerce Messaging Protocol) と い う 名前/値(name/value) ペア のAPI を使用 し ます。 本ガ イ ド では、 その名前/値のペア を使用す る ための ASPペー

ジ と VBScriptの実装方法について説明 し ます。

Note 本章で説明す る 手順は、VBScript と ASP について熟知 し てい る こ と を前提 と し てい ます。

CyberSource ICS サービ ス のユーザは、 次の こ と が可能な グ ラ フ ィ カル イ ン タ ーフ ェ イ

ス を提供す る ビ ジネ ス セ ン タ ーを利用で き ます。

• ト ラ ンザ ク シ ョ ンに関す る 詳細の表示

• レ ポー ト の表示 と ダ ウ ン ロ ー ド

• 顧客の決済 と 返金の処理

サ イ バー ソ ー ス にマーチ ャ ン ト ID を登録 し た後、 テ ス ト 環境用の ビ ジ ネ ス セ ン タ ー

(https://ebctest.cybersource.com) を使用で き ま す。 本番環境への移行後は、 本番環境用

(https://ebc.cybersource.com) も 使用で き ます。 いずれのWebサ イ ト に ロ グ イ ンす る 場合 も 、 貴社がサ イ バー ソ ース にマーチ ャ ン ト IDを登録 し た と き に設定 し たマーチ ャ ン ト ID と パ ス ワー ド を、 ユーザ名 と パ ス ワー ド と し て使用 し ます。

ビ ジネ ス セ ン タ ーに ロ グ イ ン し た後は、 ど のページで も [Help] ボ タ ン を ク リ ッ ク す る と オ ン ラ イ ンヘルプが表示 さ れ ます。

こ のガ イ ド の他に必要な他の文書

こ のセ ク シ ョ ン では、 サ イ バー ソ ース と の統合に必要な文書について説明 し ます。

• 『 ク レ ジ ッ ト カー ド 決済サービ ス導入ガ イ ド 』:CyberSource ICS ク レ ジ ッ ト カー ド 決 済サービ ス を使用す る ための API について説明 し てい ます。 こ のガ イ ド を読む と

き は必ず、 「シ ン プルAPI」 の章ではな く 、 「SCMP API」 の章を参照 し て く だ さ い。

• 利用予定のその他ICSサービ ス に関す る 実装ガ イ ド 。

(8)

基本的なASPの例

基本的な ASP の例

VBScriptを使用 し てICSサービ ス にア ク セ スす るASPページは、簡単に作成で き ます。

次の例は、 ク レ ジ ッ ト カー ド 与信の リ ク エ ス ト を送信 し て リ プ ラ イ を処理す る ために ASPページで必要 と さ れ る 基本的なVBScriptコ ー ド を示 し てい ます。 コ ー ド の記述方 法に関す る 詳細については、11 ページの「SDK for ASPの使用」を参照 し て く だ さ い。

例 ク レ ジ ッ ト カー ド 与信の リ ク エ ス ト

<%@ Language=VBScript %>

<% Response.Buffer = True %>

<%

// CyberSource ASPコ ンポーネ ン ト のイ ン ス タ ン ス を作成 し ます dim oICS

set oICS = Server.CreateObject("CyberSource.ICS.3")

// オブ ジ ェ ク ト のプ ロパテ ィ を設定 し ます oICS.ServerHost = "ics2test.ic3.com"

oICS.Merchant = "infodev"

oICS.Log = True

oICS.LogPath = "C:\TEMP\"

oICS.LogSize = 10

// リ ク エス ト フ ィ ール ド を設定 し ます

oICS.SetValue "ics_applications", "ics_auth"

oICS.SetValue "merchant_ref_number", "123"

oICS.SetValue "customer_firstname", "ス テ フ ァ ニー"

oICS.SetValue "customer_lastname", "南"

oICS.SetValue "customer_email", "[email protected]"

oICS.SetValue "customer_phone", "88-8555-1212"

oICS.SetValue "customer_cc_number", "4111111111111111"

oICS.SetValue "customer_cc_expmo", "12"

oICS.SetValue "customer_cc_expyr", "2006"

// こ のほかに も必要な フ ィ ール ド があれば追加 し ます // ( こ こ にあげ られている以外に も フ ィ ール ド はあ り ます)

// オ フ ァ ー フ ィ ール ド を設定 し ます

oICS.AddToOffer 0, "amount", "1.00"

oICS.AddToOffer 0, "quantity", "1"

// リ ク エス ト の送信 oICS.Send

(9)

SDK for ASPの紹介

// リ プ ラ イ コ ー ド と リ プ ラ イ フ ラ グの受信 と 処理

rcode = CInt(oICS.GetResponseValue("ics_rcode")) rflag = oICS.GetResponseValue("ics_rflag")

rmsg = oICS.GetResponseValue("ics_rmsg") if (rcode < 0) then

Response.Write "Error: " & rmsg

// ユーザにエ ラ ーが発生 し たので再試行する よ う 通知 し ます elseif (rcode = 0) then

Response.Write "Request declined<br>"

Response.Write "ics_rmsg=" & rmsg if (rflag = "DINVALIDDATA") then

// ユーザにデー タ に不正な値が含まれていた こ と を通知 し ます elseif (rflag = "DMISSINGFIELD") then

// ユーザに必須 フ ィ ール ド が設定 さ れていなか っ た こ と を通知 し ます elseif (rflag = "DCARDREFUSED") then

// カ ー ド 会社が与信を拒否 し ま し た。 ユーザに カ ー ド が受付け // で き ない こ と を通知 し ます

else

// 他のエ ラ ーの リ プ ラ イ フ ラ グに関 し て も 同様に処理を記述 し ます end if

else

Response.Write "Request successful<br>"

authCode = oICS.GetResponseValue("auth_auth_code") Response.Write "Auth Code: " & authCode

// ト ラ ンザク シ ョ ン成功。 その後の処理に進みます // ユーザには取引が成功 し た こ と を通知 し ます end if

Response.End

%>

(10)

基本的なASPの例

(11)

2

SDK for ASP のイ ン ス ト ール

本章では、SDK for ASPの イ ン ス ト ール、 登録、 お よ びテ ス ト 方法について説明 し ます。

本章は次のセ ク シ ョ ン で構成 さ れてい ます。

• シ ス テム要件

SDKのイ ン ス ト ール

COM コ ンポーネ ン ト の登録

SDKイ ン ス ト ールのテ ス ト

• 本番環境への移行

シ ス テム要件

使用す る シ ス テ ム が次の最小要件を満た し てい る 必要があ り ます。

• Windows NTR Server 4.0ま たはWindowsR 2000

• Microsoft Internet Information Server (IIS) 4.0以降

• 1.2 MBの空 き デ ィ ス ク 容量

• 32ビ ッ ト プ ロ セ ッ サ

SDKでは、 シ フ ト JISエ ン コ ーデ ィ ン グのみを サポー ト し てい ます。

重要 ク ラ イ ア ン ト A P I ホ ス ト に一意なパブ リ ッ ク IPア ド レ ス を設定 し ない と 、 一 貫性のない ト ラ ンザ ク シ ョ ン結果が生 じ ます。

ク ラ イ ア ン ト A P I ホ ス ト に一意なパブ リ ッ クIPア ド レ ス を設定す る こ と を サ イ バー ソ ース は強 く お勧め し ます。 設定 し ない と 、 一貫性のない ト ラ ンザ ク シ ョ ン結果が生 じ ます。 ク ラ イ ア ン ト APIの リ ク エ ス ト IDアルゴ リ ズ ム では、IPア ド レ ス と シ ス テ ム時 刻、 お よ びその他の値の組み合わせを使用 し ます。 一部のアーキ テ ク チ ャ では、 こ の組 み合わせに よ っ て一意なIDが生成 さ れない可能性があ り ます。 コ ン ピ ュ ー タ に一意な IP ア ド レ ス を設定す る こ と が不可能な場合、 サ イ バー ソ ー ス はホ ス ト を容易に識別す る た めの ク ラ イ ア ン ト 設定パ ラ メ ー タ を 提供 し ま す。CyberSource SCMP API SDK for ASPでは、 こ の設定パ ラ メ ー タ はHostIDです。 こ れはICSオブジ ェ ク ト プ ロ パテ ィ で

す。 127.0.0.1の値は使用で き ません。

SDK のイ ン ス ト ール

1 最新の ASP COM SDK パ ッ ケージ を サ イ バー ソ ース サポー ト セ ン タ ーか ら ダ ウ ン

ロ ー ド し ます。

2 実行フ ァ イ ルを実行 し 、InstallShield(R) ウ ィ ザー ド の手順に従い ます。

重要 すでに旧バージ ョ ンのASP SDKが イ ン ス ト ール さ れてい る 場合は、 InstallShield

Wizard に よ っ て旧バージ ョ ン がア ン イ ン ス ト ール さ れ ます。 実行フ ァ イ ルを再実行 し

て、 新バージ ョ ン を イ ン ス ト ールす る 必要があ り ます。

(12)

SDKのイ ン ス ト ール

3 指示に従い、 コ ン ポーネ ン ト の イ ン ス ト ール先デ ィ レ ク ト リ を選択 し ます。

デフ ォ ル ト のデ ィ レ ク ト リ は、

C:\Program Files\CyberSource Corporation\CyberSource SDK for ASPです。

4 指示に従い、Start Menuア イ テ ム を格納す る プ ロ グ ラ ム フ ォ ルダ を選択 し ます。

デフ ォ ル ト のプ ロ グ ラ ム フ ォ ルダはCyberSource SDK for ASPです。

SDK の内容

Program Files\CyberSource Corporation\CyberSource SDK for ASP\ デ ィ レ ク ト リ には、 表 2に示 し た フ ァ イ ルが含ま れてい ます。

証明書 フ ァ イル と 秘密鍵フ ァ イルの生成

サ イ バー ソ ー ス は、 イ ン タ ーネ ッ ト 上で安全に情報をや り と り す る ために公開鍵暗号 方式を使用 し ます。 ト ラ ンザ ク シ ョ ン を サ イ バー ソ ース に送信す る には、SDKに付属 し てい る ECert アプ リ ケーシ ョ ン を使用 し て、 公開証明書 と 秘密鍵を あ ら か じ め生成 し てお く 必要があ り ます。

重要 機密情報が脅威に さ ら さ れない よ う に、秘密鍵は各自の責任において厳重に保護 す る 必要があ り ます。

証明書フ ァ イ ル と 鍵フ ァ イ ルは、 次の フ ァ イ ルで構成 さ れ ます。

• merchant_id.crt -証明書フ ァ イ ル

• merchant_id.pvt - 秘密鍵フ ァ イ ル

表 2SDKの内容 デ ィ レ ク ト リ または

フ ァ イル 説明

ASP Example\ ASPサン プル コ ー ド です。

Docs\ SDKの旧バージ ョ ンから の変更点が記載 さ れているReadme.txtフ ァ

イルが含まれます。

keys\ ECert を実行 し た後の証明書 フ ァ イル と 秘密鍵 フ ァ イルが含まれま

す。

VB Sample\ テ ス ト ト ラ ンザク シ ョ ン を実行する Visual Basicサン プルプ ロ グ ラ ムが含まれます。

CreateVDirApp.dll IIS 仮想デ ィ レ ク ト リ を作成す る ために イ ン ス ト ールプ ロ グ ラ ムに よ っ て使用 さ れます。

ecert.exe マーチ ャ ン ト の証明書フ ァ イル と 鍵フ ァ イルを作成するECertア プ リ ケーシ ョ ン。

ics2api.dll ICS2ク ラ イ ア ン ト ラ イ ブ ラ リ 。 ics2com.dll ICS2 COMラ イ ブ ラ リ 。

ics2comtest.exe テ ス ト ト ラ ンザ ク シ ョ ン をサイバー ソ ース テ ス ト サーバに送信する コ マ ン ド ラ イ ン プ ログ ラ ム。

regsvr32.exe Windowsシ ス テムにCOMコ ンポーネ ン ト を登録 し ます。

(13)

SDK for ASPのイ ン ス ト ール

• merchant_id.pwd -パ ス ワー ド フ ァ イ ル

• CyberSource_SJC_US.crt - サ イ バー ソ ース証明書フ ァ イ ル

証明書フ ァ イ ル と 秘密鍵フ ァ イ ルを生成す る には、 次の手順に従い ます。

1 コ マ ン ド ラ イ ン か ら デ ィ レ ク ト リ を、SDK を イ ン ス ト ール し たデ ィ レ ク ト リ に変 更 し ま す。 デ フ ォ ル ト の デ ィ レ ク ト リ は、 C : \ P r o g r a m F i l e s \ C y b e r S o u r c e Corporation\CyberSource SDK for ASP\です。

2 ECert <merchant_id>を入力 し ます。

こ こ で、<merchant_id>は、 マーチ ャ ン ト IDです。

デフ ォ ル ト では、ECertアプ リ ケーシ ョ ンに よ っ て証明書フ ァ イ ル と 秘密鍵フ ァ イ ルはSDKを イ ン ス ト ール し たkeys\デ ィ レ ク ト リ に書 き 込まれ ます。

3 生成 し た フ ァ イ ルを、ASP SDKを イ ン ス ト ール し た任意のサーバのkeys\デ ィ レ ク ト リ に コ ピー し ます。 証明書 (.crt) フ ァ イ ル と 秘密鍵 (.pvt) フ ァ イ ルは、1組で 使用す る 必要があ り ます。

ECertを実行す る には、 次の構文 と オプシ ョ ン を使用 し ます。

ECert <merchant_id>

[ -help ] [ -version ] [ -noprompt ] [ -update ] [ -display ] [ -debug ] [ -path <keys_directory> ]

[ -proxyurl <url> [ <username> <password> ] ] [ -server <ics_server_host> <ics_server_port> ]

• help: ECert構文を返 し ます。

• version: イ ン ス ト ール し たEcertのバージ ョ ン を報告 し ます。

• noprompt: ユーザに対 し て確認を行わずにEcertが実行 し ます。

• update: 証明書 と 秘密鍵を更新 し ます。 こ のオプシ ョ ンは、 サ イ バー ソ ース証明書

の コ ピー も 更新 し ま す。 証明書がすでにサ イ バー ソ ー ス サーバに存在 し 、 サ イ ト が本番環境へ移行済みの場合にのみ、 こ のオプシ ョ ン を使用で き ます。

• display: 証明書 と 秘密鍵の情報 (有効期限な ど) を表示 し ます。

• debug: ECertアプ リ ケーシ ョ ン でエ ラ ーが発生 し た場合に、デバ ッ グ情報を提供 し

ます。

• path <keys_directory>: Ecert に よ る 鍵の書 き 込み先デ ィ レ ク ト リ のパ ス を指定 し ま す。

• proxyurl <proxy_url> [ <username> <password> ]: ICSサーバに接続す る 前にECertは プ ロ キ シ接続を使用 し ます。 ユーザ名 と パ ス ワ ー ド は省略す る こ と が可能ですが、

使用す る 場合は1組で使用す る 必要があ り ます。

• serverhost <ics_server_host> <ics_server_port>: ECert はサーバ <ics_server_host> と

ポー ト <ics_server_port> を使用 し てサ イ バー ソ ース に接続 し ます。 デフ ォ ル ト の

ホ ス ト サ ー バ は、setup.ic3.com で す。 サ イ バ ー ソ ー ス の テ ス ト サ ー バ は

ics2test.ic3.com、 サ イ バー ソ ース の本番サーバは ics2.ic3.com です。 デフ ォ ル ト の

ポー ト は80です。サ イ バー ソ ース カ ス タ マーサポー ト か ら 特別に指示がない限 り 、 サ イ バー ソ ース のテ ス ト サーバ ま たは本番サーバを使用 し ないで く だ さ い。

鍵のパス指定

ICS リ ク エ ス ト を送信す る と 、 ク ラ イ ア ン ト が次の よ う に鍵フ ァ イ ルを検索 し ます。

1 ICSPATH\keysで、ICSPATHは、 設定 し たWindows環境変数を示 し ます。 こ の環境

(14)

COMコ ンポーネ ン ト の登録

ICSPATH\keys内で鍵を検索 し ます。 た と えば、ICSPATH をmyDirectoryに設定 し

た場合、 ク ラ イ ア ン ト がmyDirectory\keys内で鍵を検索 し ます。

2 ICSPATH変数を設定 し ない場合、ク ラ イ ア ン ト はSDKを イ ン ス ト ール し たデ ィ レ

ク ト リ 内で鍵デ ィ レ ク ト リ を検索 し ます。

3 鍵デ ィ レ ク ト リ がそ こ に存在 し ない場合、 ク ラ イ ア ン ト は次のデフ ォ ル ト デ ィ レ ク ト リ 内を検索 し ます。C:\Program Files\CyberSource Corporation\CyberSource SDK for ASP\

COM コ ンポーネ ン ト の登録

イ ン ス ト ールプ ロ グ ラ ム に よ っ て、SDKのCOMコ ン ポーネ ン ト はWindowsシ ス テ ム に自動登録 さ れ ます。SDKま たはSDKの レ ジ ス ト リ 設定が破損 し た場合は、次のいず れか を実行す る こ と でCOMコ ン ポーネ ン ト を再登録で き ます。

• Windows の [ス タ ー ト ] メ ニ ュ ーか ら 次の順に選択 し 、 登録プ ロ グ ラ ム を実行 し

ます。[ス タ ー ト ] > [Programs] > [CyberSource SDK for ASP] > [Register the COM Component]

• コ マ ン ド プ ロ ン プ ト で次の よ う に入力 し て、 手動で登録 し ます。

regsvr32 installpath\ics2com.dll

登録が完了す る と 、 ダ イ ア ロ グ ボ ッ ク ス に次の メ ッ セージが表示 さ れ ます。

DllRegisterServer in installpath\ics2com.dll succeeded.

SDK イ ン ス ト ールのテ ス ト

1 [ス タ ー ト ]、 [Programs]、 [CyberSource SDK for ASP]、 [VB Tester App] の順に選 択 し 、 テ ス ト アプ リ ケーシ ョ ン を実行 し ます。

テ ス ト ト ラ ンザ ク シ ョ ン ウ ィ ン ド ウ が開 き ます。

2 その ウ ィ ン ド ウ で、マーチ ャ ン トIDをICS2Testか ら 貴社のマーチ ャ ン ト IDに変更 し ます。

3 [Run Test] を ク リ ッ ク し ます。

ウ ィ ン ド ウ に、 テ ス ト 結果を示す リ ク エ ス ト お よ び リ プ ラ イ 情報が表示 さ れ ます。

テ ス ト に成功す る と 、ics_rflagフ ィ ール ド でSOK と い う 値が返 さ れ ます。

イ ン ス ト ールが完全でない場合は、 次の メ ッ セージが表示 さ れ ます。

Error: ActiveX component can’ t create object.

本番環境への移行

すべてのシ ス テ ム テ ス ト が完了 し て、 顧客か ら 実際の ト ラ ン ザ ク シ ョ ン を受け入れ る 準備が整っ た ら 、 本番環境に移行で き ます。

本番環境への移行につ き ま し ては、 弊社営業グループにご連絡 く だ さ い。

本番環境へ移行 し た こ と が サ イ バー ソ ー ス に よ っ て 確認 さ れ た ら 、 テ ス ト サーバ

(ics2test.ic3.com) ではな く 本番サーバ (ics2.ic3.com) に リ ク エ ス ト を送信す る よ う に、

シ ス テ ム を更新 し ます。

本番環境への移行後、 実際のカー ド 番号やその他デー タ を使用 し て、 貴社でサポー ト す る すべてのカー ド の種類を テ ス ト し ます。 こ のテ ス ト は自分で自分の会社か ら 購入 す る 実際の ト ラ ンザ ク シ ョ ン であ る ため、100円な ど の少額でテ ス ト を実行 し て く だ さ

(15)

SDK for ASPのイ ン ス ト ール

い。 与信、 与信の売上処理、 現金の払戻 し を順に処理 し ます。 複数のサ イ バー ソ ー ス マーチ ャ ン ト IDを持っ てい る 場合は、 それぞれ個別にテ ス ト し て く だ さ い。

(16)

本番環境への移行

(17)

3

SDK for ASP の使用

本章では、 ASP SDKを使用 し てICSサービ ス を リ ク エ ス ト す る 方法について説明 し ま す。 本章は次のセ ク シ ョ ン で構成 さ れてい ます。

ICSサービ スの リ ク エ ス ト

• タ イ ムアウ ト と 自動再試行

• シ ス テムエ ラ ー と 再試行

ICS サービ スの リ ク エ ス ト

CyberSource ICSサービ ス を リ ク エ ス ト す る には、 次の こ と を実行す る 必要があ り ます。

• 使用す る ICSサービ ス に必要な情報を収集す る シ ス テ ム を作成す る

• 次の こ と を実行す る ASPページ を作成す る

• 注文情報を リ ク エ ス ト に組み込む

• リ ク エ ス ト をCyberSource ICSサーバに送信す る

• リ プ ラ イ 情報を処理す る

ICSサービ ス はSCMP APIを使用 し ます。SCMP APIは、 名前/値のペアのAPIフ ィ ー ル ド で構成 さ れてい ます。ク レ ジ ッ ト カー ド 注文に使用す る 名前/値のペアのAPIフ ィ ー ル ド については、 『 ク レ ジ ッ ト カー ド 決済サービ ス導入ガ イ ド 』 で説明 し てい ます。 本 章で説明す る 手順は、SCMP APIの名前/値のペア を正 し く 使用す る ASPページの記述 方法を示 し てい ます。

リ ク エ ス ト の構築および送信

ICSサービ ス にア ク セ スす る には、必要な情報を含めた リ ク エ ス ト を作成 し て送信す る 必要があ り ます。

ICS オブ ジ ェ ク ト の作成

コ ン ポーネ ン ト のprogidは、CyberSource.ICS.3です。 オブジ ェ ク ト を作成す る には、 次 のいずれか を実行 し ます。

• ASP組み込みオブジ ェ ク ト Serverか ら 公開 さ れ るCreateObject関数を呼び出す。

オブジ ェ ク ト の メ ソ ッ ド と プ ロ パテ ィ を呼び出すには、オブジ ェ ク ト に設定 し た変 数を使用 し ます。 こ の例では、oICSです。

• <OBJECT>タ グ を使用す る 。

オブジ ェ ク ト の メ ソ ッ ド と プ ロ パテ ィ を呼び出すには、<OBJECT>タ グのIDに指 定 さ れてい る 値を使用 し ます。

Set oICS = Server.CreateObject("CyberSource.ICS.3")

<OBJECT RUNAT=SERVER PROGID="CyberSource.ICS.3" ID=oICS>

</OBJECT>

(18)

ICSサービ スの リ ク エ ス ト

ICS オブ ジ ェ ク ト のプ ロパテ ィ 設定

次に、 オブジ ェ ク ト のプ ロ パテ ィ を設定 し ます。ICS オブジ ェ ク ト に よ っ て公開 さ れ る プ ロ パテ ィ の一覧については、 「ICS Object」 を参照 し て く だ さ い。

Note プ ロ パテ ィ に値を割 り 当て る と 、 それ ま で設定 さ れていた値は上書 き さ れ ます。

Merchantプ ロ パテ ィ を使用す る 代わ り に、SetValue メ ソ ッ ド を使っ てmerchant_id リ ク

エ ス ト フ ィ ール ド の値を設定す る こ と も で き ます。 フ ィ ール ド に対 し て SetValue を呼 び出す こ と に よ り 、 対応す る プ ロ パテ ィ が更新 さ れ ます。

リ ク エ ス ト へのサービ スの追加

次に、SetValue メ ソ ッ ド を使っ て、 使用す る サービ ス を追加 し ます。

各サービ ス名を カ ン マで区切っ て複数のサービ ス を リ ク エ ス ト で き ます。た と えば、次 の コ ー ド を使用 し て、 ク レ ジ ッ ト カー ド 与信 と 売上処理を同時に リ ク エ ス ト で き ます

(「同時売上」 と 呼ばれ ます)。

リ ク エ ス ト フ ィ ール ド の追加

次に、SetValue メ ソ ッ ド を使っ て リ ク エ ス ト フ ィ ール ド を追加 し ます。 こ れ ら の フ ィ ー ル ド には、 顧客お よ び貴社に関す る 基本情報が含ま れ ます。

oICS.ServerHost = "ics2test.ic3.com"

oICS.Merchant = "infodev"

oICS.Log = True

oICS.LogPath = "C:\TEMP\"

oICS.LogSize = 10 Dim Version

Version = oICS.Version Dim arr, elem

arr = oICS.RequestArray ' or oICS.ResponseArray for each elem in arr

response.write elem & "<BR>"

next

oICS.SetValue "merchant_id", "infodev"

oICS.SetValue "ics_applications", "ics_auth"

oICS.SetValue "ics_applications", "ics_auth,ics_bill"

oICS.SetValue "bill_city", Request.Form("City") oICS.SetValue "bill_state", Request.Form("State") oICS.SetValue "bill_zip", Request.Form("Zip")

oICS.SetValue "bill_country", Request.Form("Country")

(19)

SDK for ASPの使用

上記の例は、 リ ク エ ス ト に必要な フ ィ ール ド 一覧の一部のみを示 し てい ま す。 ICS ク レ ジ ッ ト カー ド サービ ス の リ ク エ ス ト フ ィ ール ド の完全な一覧については、 『 ク レ ジ ッ

ト カー ド 決済サービ ス導入ガ イ ド 』 を参照 し て く だ さ い。

オ フ ァ ー フ ィ ール ド の追加

次に、AddToOffer メ ソ ッ ド を使っ て、 リ ク エ ス ト にオ フ ァ ー情報 (個々の購入ア イ テ

ム に関す る 情報) を追加 し ます。

ICS ク レ ジ ッ ト カー ド サービ ス のオ フ ァ ーフ ィ ール ド の完全な一覧については、 『 ク レ ジ ッ ト カー ド 決済サービ ス導入ガ イ ド 』 を参照 し て く だ さ い。

買い物か ご に複数のア イ テ ム があ る 場合は、 リ ク エ ス ト に複数のオ フ ァ ーを追加 し ま す。 次の コ ー ド は、 買い物かごの各ア イ テ ム を BasketItemN と い う セ ッ シ ョ ン プ ロ パ テ ィ に保存 さ れたオブジ ェ ク ト と し て実装す る こ と を前提 と し てい ま す。 こ こ で、 N は、 ア イ テ ム を一意に識別す る 整数です。

AddToOfferを使用す る 代わ り に、次の よ う にSetValueを直接呼び出す こ と も で き ます。

各名前 / 値のペアはキ ャ レ ッ ト (^) で区切 り 、 名前 と それに対応す る 値は コ ロ ン (:) で区切 り ます。

Note 注意 AddToOffer と SetValue は情報を互いに上書 き し ます。 つま り 、offerN で

SetValue を呼び出す と 、AddToOfferに よ っ て追加 さ れたア イ テ ム Nのすべての フ ィ ー

ル ド が変更 さ れ ます。 その逆 も 同様です。

AddToOffer を 使用す る と 重複が避け ら れ、 連結処理が行われ る 利点が あ り ま すが、

AddToOffer で追加 し たすべて を何 ら かの理由で消去す る 必要があ る 場合は、SetValue

oICS.AddToOffer offer0, "product_name", oItem.product_name oICS.AddToOffer offer0, "amount", oItem.amount

oICS.AddToOffer offer0, "quantity", oItem.quantity

Dim i, nNumItems, oItem

nNumItems = Session("BasketCount") for i = 0 to nNumItems - 1

set oItem = Session("BasketItem" & i)

oICS.AddToOffer i, "product_name", oItem.product_name oICS.AddToOffer i, "merchant_product_sku",

oItem.merchant_product_sku

oICS.AddToOffer i, "product_code", oItem.product_code oICS.AddToOffer i, "amount", oItem.amount

oICS.AddToOffer i, "quantity", oItem.quantity

oICS.AddToOffer i, "packer_code", oItem.packer_code next

oICS.SetValue "offer0", "product_name:widgets^quantity:2"

(20)

ICSサービ スの リ ク エ ス ト

が便利です。 こ の場合は、 オ フ ァ ーア イ テ ム に対 し て SetValue を呼び出 し 、 値を空の 文字列""な ど に設定 し ます。

空の文字列は、 次のAddToOffer呼び出 し 時に新 し い値に上書 き さ れ ます。

リ ク エ ス ト フ ィ ール ド 値の取得

リ ク エ ス ト メ ッ セ ー ジ に 追加 さ れ た フ ィ ール ド 値 を 判断す る 必要 が あ る 場合 は、

GetRequestValue メ ソ ッ ド を使用 し ます。 フ ィ ール ド がなければ、 空の文字列が返 さ れ

ます。

"Mountain View"が返 さ れ ます。

オ フ ァ ー と 共にGetRequestValueを使用す る と 、 こ れ ま でに追加 さ れたオ フ ァ ーレベル の名前/値のペアすべてが返 さ れ ます。 各ペアはキ ャ レ ッ ト (^) で区切 ら れ、 名前 と 値は コ ロ ン (:) で区切 ら れ ます。

"product_name:widgets^quantity:2"が返 さ れ ます。

リ ク エ ス ト の送信

次に、Send メ ソ ッ ド を使用 し て リ ク エ ス ト を サ イ バー ソ ース サーバに送信 し ます。

リ プ ラ イの受信 と 処理

サ イ バー ソ ース ICS サーバに よ っ て リ ク エ ス ト の処理後、 名前/ 値のペアか ら 成 る リ プ ラ イ が返 さ れ ます。 リ ク エ ス ト し たサービ ス や リ ク エ ス ト 結果に応 じ て フ ィ ール ド は異な り ます。

リ プ ラ イ 情報を使用す る には、 それを自分のシ ス テ ムやそのデー タ を使用す る 他のシ ス テ ム に統合す る 必要があ り ます。 こ れにはデー タ の保管処理お よ び情報を必要 と す る 他のサービ スへのデー タ の受け渡 し 処理が含まれ ます。

サ イ バー ソ ー ス か ら 受信 し た リ プ ラ イ フ ラ グお よ びエ ラ ー メ ッ セージ を処理す る ため のエ ラ ーハン ド ラ を記述す る 必要があ り ます。 フ ラ グ ま たはエ ラ ー メ ッ セージ を顧客 に直接見せ る のではな く 、 顧客に結果を伝え る 適切な応答を返 し て く だ さ い。

重要 リ プ ラ イ フ ィ ール ド お よ び理由 コ ー ド はサ イ バー ソ ー ス において新たに追加 さ れ る こ と も あ り ますので、 リ プ ラ イ デー タ を解析す る 際はそのデー タ の順番ではな く フ ィ ール ド 名に基づいて解析 し て く だ さ い。

各 ICS サービ ス には、 処理す る 必要があ る リ プ ラ イ フ ラ グ と エ ラ ー応答の固有の一覧 が あ り ま す。 ク レ ジ ッ ト カー ド サー ビ ス の フ ィ ール ド 一覧につい ては、 『 ク レ ジ ッ ト

oICS.SetValue "offer0", ""

oICS.SetValue "bill_city", "Mountain View"

Response.Write oICS.GetRequestValue("bill_city")

oICS.AddToOffer 0, "product_name", "widgets"

oICS.AddToOffer 0, "quantity", "2"

Response.Write oICS.GetRequestValue("offer0")

oICS.Send

(21)

SDK for ASPの使用

カー ド 決済サービ ス 導入ガ イ ド 』 を参照 し て く だ さ い。 リ ク エ ス ト に対す る 評価す る べ き 主要な リ プ ラ イ フ ィ ール ド は、 次の と お り です。

ics_rcode - リ ク エ ス ト 全体が成功 し たか ど う か を示す 1 桁の コ ー ド 。 コ ー ド は、

次のいずれかにな り ます。

• 1: リ ク エ ス ト が成功 し た場合

• 0: リ ク エ ス ト が拒否 さ れた場合

• -1: エ ラ ーが発生 し た場合

ics_rflag - リ ク エ ス ト 全体の結果を表す1単語。 フ ラ グは、 次のいずれかにな り ます。

• SOK: リ ク エ ス ト が成功 し た場合

• Dの文字で始ま る フ ラ グ (た と えば、DMISSINGFIELD) : リ ク エ ス ト が拒否 さ れた場合

• Eの文字で始ま る フ ラ グ (た と えば、ESYSTEM) : エ ラ ーが発生 し た場合

ics_rmsg - リ プ ラ イ フ ラ グ を説明す る メ ッ セージ。 こ の メ ッ セージ を顧客に見せ た り 、 エ ラ ーハン ド ラ の記述に使用 し ないで く だ さ い。

ま た、 リ ク エ ス ト し た各サービ ス について、 サービ ス 結果を示す同様の フ ィ ール ド を 受信 し ます。 フ ィ ール ド 名は、<サービ ス>_rcode、<サービ ス>_rflag、 お よ び<サー

ビ ス >_rmsg です。 た と えば、 ク レ ジ ッ ト カー ド 与信サービ ス (ics_auth) を リ ク エ ス

ト し た場合、auth_rcode、auth_rflag、 お よ びauth_rmsgが返 さ れ ます。

重要 重要サ イ バー ソ ー ス はいつで も 新 し い リ プ ラ イ フ ラ グ を追加す る 権利を留保 し ます。 新 し い リ プ ラ イ フ ラ グ を問題な く 処理で き る よ う に、 エ ラ ーハン ド ラ を記述 し て く だ さ い。

GetResponseValue メ ソ ッ ド を使用 し て、サーバが返 し た フ ィ ール ド 値を取得 し ます。次

の例では、 ク レ ジ ッ ト カー ド 与信サービ ス ics_auth の リ ク エ ス ト に対す る 応答を受信 し ます。

if (CInt(oICS.GetResponseValue("ics_rcode")) < 0) then Response.Write "Error:<BR>"

' ユーザにエ ラ ーが発生 し たので、 あ と で再試行する よ う 通知 し ます

elseif (CInt(oICS.GetResponseValue("ics_rcode")) = 0) then Response.Write "Request declined"

if (CInt(oICS.GetResponseValue("ics_rflag") = "DINVALIDDATA") then

' デー タ に不正な値が含まれていま し た

elseif (CInt(oICS.GetResponseValue("ics_rflag") =

"DMISSINGFIELD")

' 必須フ ィ ール ド に抜けがあ り ま し た

elseif (CInt(oICS.GetResponseValue("ics_rflag") =

"DCARDREFUSED")

' 与信が拒否 さ れま し た。 注文は受け付け ら れない こ と をユーザに通知 し ます

(22)

ICSサービ スの リ ク エ ス ト

オブ ジ ェ ク ト 内のフ ィ ール ド のク リ ア

Clear メ ソ ッ ド は、 すべての リ ク エ ス ト お よ び応答の フ ィ ール ド を ク リ ア し ます。 こ れ

に よ り 、 オブジ ェ ク ト を削除、 再作成す る こ と な く 、 新 し いオブジ ェ ク ト を得 る こ と がで き ます。 セ ッ シ ョ ン ス コ ープで作成 さ れたオブジ ェ ク ト では、 こ の方法が特に有 効です。

オブジ ェ ク ト は ロ グ情報を残 し ます。 ロ グ情報は、propertiesLog、LogPath、LogSizeな ど の値 と し て保持 さ れ ます。 ロ グ情報を生成す る 場合は、Log をTrueに設定す る 必要 があ り ます。ClearのたびにLogをTrueに設定す る 必要はあ り ません。

例 フ ィ ール ド の ク リ ア

こ の時点で、ics_applications フ ィ ール ド は、 他の フ ィ ール ド と 共に削除 さ れてい ま す が、LogはTrueの ま ま です。 し たがっ て、 以降の ト ラ ンザ ク シ ョ ン について も ロ グが 記録 さ れ ます。

プ ロキシサポー ト

サ イ バー ソ ース ク ラ イ ア ン ト では、HTTP プ ロ ト コ ルを使用 し て ICS サービ ス と 通信 し ま す。HTTP プ ロ キ シ を 使用す る 必要 が あ る 場合は、 リ ク エ ス ト メ ッ セ ー ジ で

http_proxyフ ィ ール ド を設定 し ます。

else

' 他の リ プ ラ イ フ ラ グに関 し て も 同様に処理 し ます

' サイバー ソ ースが新 し い リ プ ラ イ フ ラ グ を追加 し た ら 、 その処理も 加え ます

else

Response.Write "Request successful"

' ト ラ ンザ ク シ ョ ンは成功 し ま し た。 次の処理に進みます。

' ユーザには ト ラ ンザ ク シ ョ ンが成功 し た こ と を通知 し ます Response.End

end if

oICS.Log = True

oICS.SetValue "ics_applications",

"ics_score,ics_auth,ics_bill,ics_elc"

' 他のフ ィ ール ド を設定する コ ー ド を追加 し ます

oICS.Send

' リ プ ラ イの処理をする コ ー ド を記述 し ます oICS.Clear

oICS.SetValue "http_proxy", "http://yourserver.com"

(23)

SDK for ASPの使用

複数のサービ スの リ ク エ ス ト

1つの リ ク エ ス ト で複数のサービ ス を リ ク エ ス ト す る と 、サ イ バー ソ ース に よ っ て特定 の順序でサービ ス が処理 さ れ ます。1つのサービ ス に失敗 し た場合、 リ ク エ ス ト 内の後 続のサービ ス は処理 さ れ ません。

た と えば、 同時売上 ( ク レ ジ ッ ト カー ド 与信 と 売上処理を同時に リ ク エ ス ト ) につい ては、 与信サービ ス に失敗 し た場合、 売上処理サービ ス は処理 さ れ ま せん。 受信す る

リ プ ラ イ には、 与信の リ プ ラ イ フ ィ ール ド のみが含ま れ ます。

多 く のICSサービ ス には 「ignore」 フ ィ ール ド が含まれ ます。 こ の フ ィ ール ド は、 最初 のサービ ス の結果を無視 し て後続のサービ ス を実行す る よ う にサ イ バー ソ ー ス に伝え る も のです。例えば本人認証サービ ス の検証ics_pa_valiadate と ク レ ジ ッ ト カー ド 決済 与信 ics_auth を同時に リ ク エ ス ト す る 場合、 ビ ジネ ス ニーズに応 じ て、 検証サービ ス がエ ラ ー と な っ た場合で も 与信を実行 さ せ る こ と を選択で き ま す。 検証 と 与信を組み 合わせた リ ク エ ス ト で、 ignore_validate_redultフ ィ ール ド を 「yes」 に設定で き ます。

こ の設定に よ り 、 サ イ バー ソ ー ス は本人認証の検証に失敗 し た場合で も 、 与信を実行 す る よ う にな り ます。 こ の場合、 リ プ ラ イ で検証 と 与信の両方の リ プ ラ イ フ ィ ール ド

を取得 し ます。

Note サ イ バー ソ ー ス に よ っ て実行 さ れ る サービ ス についてのみ、 料金が課金 さ れ ま す。

タ イムアウ ト と 自動再試行

リ ク エ ス ト の一部について リ プ ラ イ を受信 し ていない こ と に気付いた場合は、 コ ー ド に よ る 再試行 と タ イ ム ア ウ ト の処理方法 を 調整す る こ と で、 問題 を ト ラ ブルシ ュ ー テ ィ ン グで き ます。

再試行 と タ イ ム ア ウ ト では、 ク ラ イ ア ン ト が リ ク エ ス ト の送信後にサ イ バー ソ ー ス サーバか ら の リ プ ラ イ を待機す る 時間、 お よ び リ ク エ ス ト を自動的に再送信 (再試行

と 呼ぶ) す る か ど う か と 再送信を行 う 時間を制御 し ます。

Note ク ラ イ ア ン ト が再試行を行 う と き 、 再試行 リ ク エ ス ト の リ ク エ ス ト IDは元の リ ク エ ス ト と 同 じ も のです。

• 次の 3 つのパ ラ メ ー タ を使用 し て、 再試行 リ ク エ ス ト と タ イ ム ア ウ ト の動作を制 御で き ます。

• retry_enabled - 最初に リ プ ラ イ を取得で き なか っ た場合に再試行 リ ク エ ス ト

を送信す る か ど う か を指定 し ます。再試行 リ ク エ ス ト はデフ ォ ル ト では無効に な っ てい ます。

• retry_start - 最初に リ ク エ ス ト を サ イ バー ソ ース に送信 し てか ら リ プ ラ イ を受

信す る ま での待機時間 (秒単位) を制御 し ます。 こ こ で設定 し た時間内に リ プ ラ イ が返 さ れなか っ た場合に、 再試行 リ ク エ ス ト が再送信 さ れ ます。 デフ ォ ル

ト 値は30です。

• timeout - (再試行の有無を問わず) タ イ ム ア ウ ト エ ラ ーが返 さ れ る ま で応答

を待機す る 総時間 (秒単位) を制御 し ます。 デフ ォ ル ト 値は110です。

oICS.SetValue "ignore_validate_result", "yes"

(24)

タ イ ムアウ ト と 自動再試行

重要 timeout値 と retry_start値の差が3秒未満の場合は、 再試行は行われ ません。

再試行を行わない ト ラ ンザ ク シ ョ ンの動作

再試行が無効にな っ てい る 場合、SDK for ASPは次の よ う に動作 し ます。

1 リ ク エ ス ト を暗号化 し て送信 し ます。timeoutク ロ ッ ク は0秒か ら カ ウ ン ト を開始 し ます。

2 ICSサーバか ら の応答を受信す る ま で、 (timeoutパ ラ メ ー タ で設定 さ れた) 指定の 時間待機 し ます。

指定の時間内にICS サーバか ら 応答がなか っ た場合、 タ イ ム ア ウ ト エ ラ ーが返 さ れ ます。

再試行を行 う ト ラ ンザ ク シ ョ ンの動作

再試行が有効にな っ てい る 場合、SDK for ASPは次の よ う に動作 し ます。

1 リ ク エ ス ト を暗号化 し て送信 し ます。timeoutク ロ ッ ク と retry_startク ロ ッ ク はど ち ら も 0秒か ら カ ウ ン ト を開始 し ます。

2 応答を受信す る ま でretry_startの指定の時間待機す る か、受信 し た場合は応答を返 し ます (いずれか早いほ う )。

3 retry_startの指定の時間内に応答がなか っ た場合、 ク ラ イ ア ン ト は リ ク エ ス ト を再

度暗号化 し て送信 し ま す。 こ の と き 、 最初に送信 し た リ ク エ ス ト と 同 じ リ ク エ ス ト IDを使用 し ます。timeout ク ロ ッ ク はその ま ま カ ウ ン ト を継続 し ます。

リ ク エ ス ト (お よ び受信 し た場合は応答) には、 こ の リ ク エ ス ト が再試行で あ る こ と を示す追加フ ィ ール ド が自動的に含ま れ ます。

4 ク ラ イ ア ン ト は、 応答を受信す る ま でtimeoutの総時間待機す る か、 受信 し た場合 は応答を返 し ます。 (timeout ク ロ ッ ク は最初の リ ク エ ス ト の送信時か ら カ ウ ン ト を開始 し て継続 さ れ ます。)

5 timeoutの総時間内に応答が無か っ た場合、 タ イ ム ア ウ ト エ ラ ーが返 さ れ ます。

た と えば、retry_startが30秒に設定 さ れてお り 、30秒内に応答がなか っ た場合、 ク ラ イ ア ン ト は再試行 リ ク エ ス ト を送信 し ます。

その後、 残 り の タ イ ム ア ウ ト 時間 (timeout か ら retry_start を差 し 引いた時間) 待機 し ます。 た と えば、timeoutが110秒に設定 さ れてい る 場合、 ク ラ イ ア ン ト は110秒か ら 30秒を差 し 引いた時間、 待機 し ます。 その80秒内に応答がなか っ た場合、 タ イ ム ア ウ

ト エ ラ ーが返 さ れ ます。

再試行 リ プ ラ イ フ ィ ール ド の評価

ics_retry フ ィ ール ド を使用 し て再試行 リ ク エ ス ト に成功 し たか ど う か を評価 し ま す。

フ ィ ール ド で、 次のいずれかの値が返 さ れ ます。

• 1 - 元のデー タ で再試行 リ ク エ ス ト に成功 し ま し た。 再処理の必要はあ り ません で し た。

ICS サーバはデー タ ベー ス に応答の記録を保持 し てい ま す。 サ イ バー ソ ー ス は リ ク エ ス ト を再処理す る 必要な く 、 単に元の応答を マーチ ャ ン ト に送信 し ます。

• 0 - リ ク エ ス ト を再処理 し たデー タ か ら 再試行 リ ク エ ス ト に成功 し ま し た。

ICS サーバは リ ク エ ス ト の記録を保持 し てい ま せん。 サ イ バー ソ ー ス は リ ク エ ス ト を再処理 し て応答を マーチ ャ ン ト に送信 し ます。

(25)

SDK for ASPの使用

• -1 -処理のエ ラ ーに よ り 再試行 リ ク エ ス ト に失敗 し ま し た。

ICS サーバは リ ク エ ス ト の記録を保持 し てい ますが、 デー タ ベース に応答の記録 を保持 し てい ません。 サ イ バー ソ ー ス は リ ク エ ス ト の再処理を行い ま せん。 ト ラ ンザ ク シ ョ ンの重複を避け る ため、 リ ク エ ス ト を再送信 し ないで く だ さ い。

ト ラ ン ザ ク シ ョ ン の検索や利用可能なデー タ の判断 を す る には、 ビ ジ ネ ス セ ン タ ーの [ ト ラ ンザ ク シ ョ ン検索] 画面を使用 し て く だ さ い。

再試行および タ イ ムアウ ト のパラ メ ー タ 設定

再試行の有効化

retry_enabled値に よ っ て、最初の応答が無か っ た場合に ク ラ イ ア ン ト が再試行 リ ク エ ス

ト を送信す る か ど う か を制御 し ます。 再試行はデフ ォ ル ト では無効にな っ てい ます。

次の コ ー ド を使用 し てretry_enabled を有効に し ます。

こ こ で、 "yes"は大文字 と 小文字を区別 し ます。

retry_start 値の設定

retry_start値に よ っ て、 再試行 リ ク エ ス ト を送信す る ま での待機時間を制御 し ます。 デ

フ ォ ル ト 値は30秒です。 最小値は3秒です。 ただ し 、 こ の値はテ ス ト ト ラ ンザ ク シ ョ ン では受け入れ ら れ ますが、本番環境の ト ラ ンザ ク シ ョ ン では受け入れ ら れ ません。デ フ ォ ル ト 値の30秒か ら 開始 し て く だ さ い。 ど う し て も 30秒以下に設定す る 必要があ る 場合には、 15秒 と 設定 し て く だ さ い。

次の コ ー ド を使用 し てretry_start値を設定で き ます。

timeout 値の設定

timeout値に よ っ て、 リ ク エ ス ト を送信 し 応答を受信す る ま で待機す る 最大時間を制御

し ます。 こ の時間は、 ク ラ イ ア ン ト が最初の リ ク エ ス ト を送信す る 時点か ら カ ウ ン ト を開始 し ます。 デフ ォ ル ト 値は 110 秒です。 再試行が有効にな っ てい る 場合は最小値 であ る6秒未満には設定で き ません。

次の コ ー ド を使用 し てtimeout値を設定で き ます。

重要 再試行が有効にな っ てい る 場合は、timeout値を6秒未満には設定で き ません。 ま

た、timeout値はretry_start値 よ り も 最低3秒以上高 く 設定す る 必要があ り ます。timeout

値ま たはretry_start値が低すぎ る か無効な場合は、 エ ラ ーが返 さ れ、 再試行 リ ク エ ス ト は送信 さ れ ません。

シ ス テムエ ラ ー と 再試行

oICS.SetValue "retry_enabled", "yes"

oICS.SetValue "retry_start", "15"

oICS.SetValue "timeout", "90"

(26)

シス テムエ ラ ー と 再試行

はあ り ま せん。 サ イ バー ソ ー ス シ ス テ ム エ ラ ーを正 し く 処理す る 方法を組み込んで ト ラ ンザ ク シ ョ ン管理シ ス テ ム を設計す る 必要があ り ます ( リ プ ラ イ を正常に受信 し 、そ の リ プ ラ イ がics_rflag=ESYSTEMの場合です。ics_rflagに関す る 詳細については、 リ プ ラ イの受信 と 処理を参照 し て く だ さ い)。

ト ラ ン ザ ク シ ョ ン を処理す る 決済プ ロ セ ッ サに応 じ て、 ESYSTEM は有効なサ イ バー ソ ー ス シ ス テ ム エ ラ ー を 示す場合 も あ れば、 一種の無効なデー タ を 原因 と し た プ ロ セ ッ サ拒否を示す場合 も あ り ま す。 いずれの場合 も 、ESYSTEM の発生時に ト ラ ン ザ ク シ ョ ン の送信を無限に再試行す る よ う にシ ス テ ム を設計 し ない こ と を サ イ バー ソ ー ス はお勧め し ます。

リ ク エ ス ト の送信を2、3回のみ再試行 し 、 連続す る 再試行の待機間隔を長 く 設定す る こ と をお勧め し ます。 た と えば、 最初のシ ス テ ム エ ラ ーの応答後、 短時間 (30秒間ほ ど) 待機 し て再度 リ ク エ ス ト の送信を試行 し ま す。 その後同 じ エ ラ ーを受信す る 場合 には、 よ り 長い時間 (1分ほ ど) 待機 し 、 再度 リ ク エ ス ト の送信を試行 し ます。 状況に 応 じ て、 さ ら に長い時間 (2分ほ ど) 待機 し てか ら 再試行す る よ う に設定す る こ と も 可 能です。 自社の ビ ジネ ス状況に最 も 適 し た設定を判断す る 必要があ り ます。

再試行を数回繰 り 返 し て も シ ス テ ム エ ラ ーを受信す る 場合は、 サ イ バー ソ ー ス シ ス テ ム エ ラ ーではな く 、 実際にはプ ロ セ ッ サ拒否に よ っ て発生 し てい る エ ラ ーの可能性が あ り ます。 その場合は、 サ イ バー ソ ース カ ス タ マーサポー ト にご連絡 く だ さ い。

(27)

4

API for the ASP SDK

本章では、ICS リ ク エ ス ト と リ プ ラ イ を送受信す る ために使用す る ICSオブジ ェ ク ト と メ ソ ッ ド について説明 し ます。 本章は次のセ ク シ ョ ン で構成 さ れてい ます。

ICSオブ ジ ェ ク ト

API メ ソ ッ ド

重要 サ イ バー ソ ース と の統合に必要な他の文書に関す る 情報について、 こ のガ イ ド の 他に必要な他の文書を必ず参照 し て く だ さ い。

ICS オブ ジ ェ ク ト

ICSオブジ ェ ク ト は、 次の表に一覧 し たプ ロ パテ ィ を公開 し ます。

表 3ICSオブ ジ ェ ク ト のプ ロパテ ィ

プ ロパテ ィ 説明 読み取 り/

書き込み HostID request_idの生成に使用するIPア ド レ ス。 デ フ ォル ト で

は、 ク ラ イ ア ン ト は コ ン ピ ュ ー タ のロー カルIPア ド レ ス を使用 し ます。127.0.0.1の値は使用で き ません。 別の 方法 と し て、 フ ィ ール ド 名にhost_idを入れる こ と で SetValueメ ソ ッ ド を呼び出す こ と も 可能です。

読み取 り / 書き込み

Log ト ラ ンザ ク シ ョ ンのログを記録するかど う かを示すブー ル フ ラ グ。

重要  問題の ト ラ ブルシ ュ ーテ ィ ン グ を行 う と き にのみ ロ グ記録を使用 し て く だ さ い。 本番環境で ロ グ を使用す る と 、 カ ー ド 番号やセキ ュ リ テ ィ コ ー ド (CVV、CVC2、

CVV2、CID、CVN) はマス ク さ れる よ う にな っ ているの で、Payment Card Industry(PCI) デー タ セキ ュ リ テ ィ 順 守 条 件 を 満 た さ な く な り ま す (詳 細 に つ い て は、

www.visa.com/cisp を参照 し て く だ さ い) 。 また、 次のガ イ ド ラ イ ンに従 っ て く だ さ い。

• 一時的かつ診断のみを目的 と し て ロ グ記録を 使用する こ と

• 可能な限 り ロ グ記録ではテ ス ト 用 ク レ ジ ッ ト カ ー ド 番号を使用する こ と

• 暗号化 さ れていないサイバー ソ ースに ロ グ フ ァ イルを電子 メ ールで送信 し ない こ と

• ロ グ フ ァ イルは不要にな っ た ら速やかに削除 する こ と

読み取 り / 書き込み

LogPath ログ フ ァ イルの場所を示すパス。 必要に応 じ て自動的に

バ ッ ク ス ラ ッ シ ュ (\) が付加 さ れ、 さ ら にicscom.log が付加 さ れて完全なパス名が作成 さ れます。 このパス は、 すでに存在する必要があ り ます。 このパスが存在 し ない と 、 ログ フ ァ イルは作成 さ れません。

読み取 り / 書き込み

(28)

APIメ ソ ッ ド

例 ICSオブジ ェ ク ト のプ ロ パテ ィ 設定

API メ ソ ッ ド

次の表は、APIで使用す る メ ソ ッ ド の概略です。

LogSize ロ グ フ ァ イルの最大サイ ズ ( メ ガバイ ト 単位)。 ログ フ ァ イルが最大サイ ズに達する と 、icscom.logは icscomold.logに コ ピー さ れ、 新 し い空のicscom.logが 作成 さ れます。

読み取 り/ 書き込み

Merchant 証明書 フ ァ イル と 秘密鍵 フ ァ イルの特定に使用 さ れる

マーチ ャ ン ト ID。 読み取 り/

書き込み RequestArray こ れま でに追加 さ れた リ ク エ ス ト の名前/値のペアの配

列。 各要素は 「name=value」 の形式で示 さ れます。

読み取 り

ResponseArra

y 応答の名前/値のペアの配列。 各要素は 「name=value」

の形式で示 さ れます。 ホス ト か ら応答がない場合は、 空 の配列が返 さ れます。

読み取 り

ServerHost リ ク エ ス ト 先のホス ト 名またはIPア ド レ ス。 こ のプ ロ パテ ィ を指定 し ない と 、 デ フ ォル ト のテ ス ト サーバ ics2test.ic3.comが使用 さ れます。

読み取 り/ 書き込み

Version オブ ジ ェ ク ト の現在のバージ ョ ン 読み取 り

oICS.ServerHost = "ics2test.ic3.com"

oICS.Merchant = "infodev"

oICS.Log = True

oICS.LogPath = "C:\TEMP\" ' または "C:\TEMP"

oICS.LogSize = 10 ' 10 MB Dim Version

Version = oICS.Version Dim arr, elem

arr = oICS.RequestArray ' または oICS.ResponseArray for each elem in arr

response.write elem & "<BR>"

next

表 4APIメ ソ ッ ド の一覧

メ ソ ッ ド 説明

AddToOffer オ フ ァ ーに名前/値のペア を追加 し ます。

Clear オブ ジ ェ ク ト か ら すべての リ ク エ ス ト と 応答

を削除 し ます。

表 3ICSオブ ジ ェ ク ト のプ ロパテ ィ

プ ロパテ ィ 説明 読み取 り/

書き込み

(29)

API for the ASP SDK

AddToOffer

例 AddToOfferを使用 し てオ フ ァ ーフ ィ ール ド を リ ク エ ス ト に追加す る

Clear

例 Clearを使用 し て フ ィ ール ド を ク リ アす る

GetRequestValue リ ク エ ス ト フ ィ ール ド の値を返 し ます。

GetResponseValue ICSサーバから 返 さ れた応答のフ ィ ール ド 値 を返 し ます。

Send ICSサーバに リ ク エス ト フ ィ ール ド を送信 し ます。

SetValue オブ ジ ェ ク ト に名前/値のペア を追加 し ます。

表 5AddToOfferメ ソ ッ ド

構文 AddToOffer LineItem, "Name", "Value"

説明 リ ク エ ス ト でオ フ ァ ーに名前/値ペア を追加 し ます。

フ ィ ール ド 名がすでに存在する場合は、 指定 し た新 し い値で上書き さ れます。

戻 り 値 な し

パラ メ ー タ • LineItem:オ フ ァ ー番号。 各オ フ ァ ーは0以 上の整数イ ンデ ッ ク ス で表 さ れます。

• Name:フ ィ ール ド 名。

• Value:フ ィ ール ド に設定する値。

oICS.AddToOffer i, "product_name", oItem.product_name

表 6Clearメ ソ ッ ド

構文 Clear

説明 オブ ジ ェ ク ト か ら すべての リ ク エ ス ト と 応答を削除 し ます。

戻 り 値 な し

パラ メ ー タ な し

oICS.Clear

表 4APIメ ソ ッ ド の一覧

メ ソ ッ ド 説明

(30)

APIメ ソ ッ ド

GetRequestValue

例 GetRequestValueを使用 し て リ ク エ ス ト フ ィ ール ド の値を取得す る

"Mountain View"が返 さ れます。

GetResponseValue

例 GetResponseValueを使用 し て応答フ ィ ール ド の値を取得す る

Send

表15 Send メ ソ ッ ド

例 Sendを使用 し て リ ク エ ス ト を送信す る

表 7GetRequestValueメ ソ ッ ド

構文 GetRequestValue("Name") 説明 リ ク エ ス ト フ ィ ール ド の値を返 し ます。

戻 り 値 フ ィ ール ド 値。

パラ メ ー タ ? Name:フ ィ ール ド 名。

oICS.SetValue "bill_city", "Mountain View"

Response.Write oICS.GetRequestValue("bill_city")

表 8GetResponsetValueメ ソ ッ ド

構文 GetRequestValue("Name") 説明 リ ク エ ス ト フ ィ ール ド の値を返 し ます。

戻 り 値 フ ィ ール ド 値。

パラ メ ー タ Name:フ ィ ール ド 名。

Response.Write oICS.GetResponseValue("ics_rmsg")

表 9

構文 Send

説明 ICSサーバに リ ク エ ス ト を送信 し ます。

戻 り 値 な し

パラ メ ー タ な し

oICS.Send

(31)

API for the ASP SDK

SetValue

SetValueを使用 し て フ ィ ール ド を リ ク エ ス ト に追加す る

表 10SetValueメ ソ ッ ド

構文 SetValue "Name", "Value"

説明 オブ ジ ェ ク ト に名前/値ペア を追加 し ます。 名前がす でに存在する場合は、 指定 し た新 し い値で上書き さ れます。

戻 り 値 な し

パラ メ ー タ • Name:フ ィ ール ド 名。

• Value:フ ィ ール ド に設定する値。

oICS.SetValue "bill_city", Request.Form("City")

(32)

APIメ ソ ッ ド

表 6 : Clear メ ソ ッ ド 構文 Clear 説明 オブ ジ ェ ク ト か ら すべての リ ク エ ス ト と 応答を削除 し ます。 戻 り 値 な し パラ メ ー タ な し oICS.Clear表 4:API メ ソ ッ ド の一覧メ ソ ッ ド 説明
表 10 : SetValue メ ソ ッ ド

参照

関連したドキュメント

Copyright (C) Qoo10 Japan All Rights Reserved... Copyright (C) Qoo10 Japan All

The Farrell–Jones Conjecture for algebraic K –theory for the trivial family TR consisting of the trivial subgroup only is true for infinite cyclic groups and regular rings R

The Arratia, Goldstein and Gordon result essentially tells us that if the presence of one small component in a subregion of area O(log n) does not greatly increase the chance of

In the third section of the paper, we analyze some generation results for q- exponentially equicontinuous (a, k)-regularized C-resolvent families in com- plete locally convex

F rom the point of view of analysis of turbulent kineti energy models the result.. presented in this paper an be onsidered as a natural ontinuation of

If the category P (C) of small presheaves on C is finitely complete, then its K-canonical topology is K-ary and induces the trivial K-ary topology on C, while every small presheaf

副校長の配置については、全体を統括する校長1名、小学校の教育課程(前期課

DORMANT OR DELAYED DORMANT: For Scale Insects, European Red Mite, Leaf Curl, Silver Mites, Peach Twig Borers, Coryneum Blight (Shot Hole), Brown Mites, Red Mites and Aphids; Apply