以下の XML コードは、WebSphere Commerce が提供する、 Cassette for SET の標準キャッシャー・プロファイルです。 このキャッシャー・プロファイルでは、Merchant Initiated Authorization (MIA) SET 拡張機能を使用し、 カセットでサポートされている任意指定の購入カード・データをいくつか指定します。 購入カード・メソッドは、追加の購入カード・データを決済機関に送ります。 購入カードの詳細は、IBM WebSphere Payment Manager for Multiplatforms Cassette for SET 補足 バージョン 3.1 を参照してください。
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE Profile SYSTEM "../../../../xml/PaymentManager/profile.dtd">
<!--
//*==================================================================
//* Licensed Materials - Property of IBM
//*
//* 5724-A18
//*
//* (c) Copyright IBM Corp. 2001
//*
//* US Government Users Restricted Rights - Use, duplication or
//* disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
//*
//*================================================================== -->
<!-- ==================================================================
これは、Payment Manager
Cassette for SET (for Merchant Initiated Authorization) の標準 WC キャッシャー・プロファイルです。
このプロファイルでは、カセットでサポートされている任意指定の購入カード・データを指定します。
注: プロファイルの DEPOSITFLAG パラメーターを "1" に変更する場合、
$PCARD.* パラメーターをプロファイルの <CollectPayment> エレメントに移動する必要があります。
================================================================== -->
<Profile useWallet="false" enableTrace="true">
<!-- 以下の制限に注意してください。
1) カセットは整数値の入った QUANTITY 列だけをサポートします。 端数部分は除去されます。
2) OrderItems.CatEntry_id はヌルにしてはならず、CatEntry_id の CatEntShip および CatEntDesc エントリーは、
指定した language_id の CatEntDesc.SHORTDESCRIPTION 非ヌル値と共存する必要があります。
3) OrderItems の TAXAMOUNT、SHIPCHARGE および SHIPTAXAMOUNT 列は、ヌルにしてはなりません。
-->
<!-- 以下の 2 つの SelectStatement に注意してください。
* ACTION REQUIRED FOR ORACLE USER *
上の SelectStatement は DB2 用です。
下の SelectStatement は Oracle 用です。
ORACLE で実行している場合は、2 番目の SelectStatement をコメント解除し、
代わりに最初の SelectStatement をコメント化してください。
-->
<SelectStatement id="1" allowMultiples="true" >
SELECT PARTNUMBER, SHORTDESCRIPTION, integer(QUANTITY) as INT_QUANTITY, RTRIM(QUANTITYMEASURE) as QTYMEASURE, integer(PRICE*{currency_factor}) as UNITCOST,
integer( (TOTALPRODUCT+TAXAMOUNT+SHIPCHARGE+SHIPTAXAMOUNT+TOTALADJUSTMENT) * {currency_factor}) as TOTALCOST
FROM orderitems, catentry, catentship, catentdesc
WHERE orders_id = {orderId}
AND orderitems.catentry_id = catentry.catentry_id
AND orderitems.catentry_id = catentship.catentry_id
AND orderitems.catentry_id = catentdesc.catentry_id
AND catentdesc.language_id = {buyer_language_id}
</SelectStatement>
<!--
<SelectStatement id="1" allowMultiples="true" >
SELECT PARTNUMBER, SHORTDESCRIPTION, round(QUANTITY) as INT_QUANTITY, RTRIM(QUANTITYMEASURE) as QTYMEASURE, round(PRICE*{currency_factor}) as UNITCOST,
round( (TOTALPRODUCT+TAXAMOUNT+SHIPCHARGE+SHIPTAXAMOUNT+TOTALADJUSTMENT) * {currency_factor}) as TOTALCOST
FROM orderitems, catentry, catentship, catentdesc
WHERE orders_id = {orderId}
AND orderitems.catentry_id = catentry.catentry_id
AND orderitems.catentry_id = catentship.catentry_id
AND orderitems.catentry_id = catentdesc.catentry_id
AND catentdesc.language_id = {buyer_language_id}
</SelectStatement>
-->
<CollectPayment>
<!-- ==================================================================
オーダー作成のために必要な Payment Manager のパラメーター
================================================================== -->
<Parameter name="PAYMENTTYPE"><CharacterText>SET</CharacterText></Parameter>
<Parameter name="MERCHANTNUMBER"><CharacterText>{storeId}</CharacterText></Parameter>
<Parameter name="ORDERNUMBER"><CharacterText>{orderId}</CharacterText></Parameter>
<Parameter name="CURRENCY"><CharacterText>{CURRENCY}</CharacterText></Parameter>
<Parameter name="AMOUNT"><CharacterText>{AMOUNT}</CharacterText></Parameter>
<Parameter name="AMOUNTEXP10"><CharacterText>{AMOUNTEXP10}</CharacterText></Parameter>
<!-- オーダーの自動承認を試みる方法を指示します。
サポート値:
0 - 自動承認なし
1 - 同期自動承認 - Payment Manager がオーダー作成操作の一部として
承認をおこなう。 2 - 非同期自動承認 - Payment Manager がオーダー作成後の承認操作を
スケジュールする。
WCS は APPROVEFLAG を 2 に設定すると最適に動作します。 APPROVEFLAG を 1 に設定すると、Payment Manager がオーダーの承認を完了するまで、WCS
DoPayment コマンドがブロックされます。
この承認が完了するまで、
DoPayment コマンドによって変更される、同じ在庫レコードの読み取りまたは 更新を待機しているコマンドもブロックされます。
これは他のコマンドのスループットに影響を与えます。
-->
<Parameter name="APPROVEFLAG"><CharacterText>2</CharacterText></Parameter>
<!-- オーダー承認の際に使用される金額です。 通常
これはオーダー金額と同じです。 このフィールドは、APPROVEFLAG が 1 または 2 に
設定されている場合には必須です。 --> <Parameter name="PAYMENTAMOUNT"><CharacterText>{approval_amount}</CharacterText></Parameter>
<!-- オーダー承認の際に使用する必要がある決済番号です。
通常これは 1 になります。 このフィールドは、APPROVEFLAG が 1 または 2 に
設定されている場合には必須です。 -->
<Parameter name="PAYMENTNUMBER"><CharacterText>1</CharacterText></Parameter>
<!-- デポジットが自動的に行われるかどうかを指示します。
このフラグは APPROVEFLAG が 1 または 2 に設定されている場合だけ有効です。
サポート値:
0 - 自動デポジットを行う。
1 - 自動デポジットを行わない。
デフォルト値は 0 です。
注: DEPOSITFLAG パラメーターを "1" に変更する場合は、 <Command name="DEPOSIT">
エレメントのすべての
オプションの購入カード・データ・パラメーターを、 送信するパラメーターの <CollectPayment> エレメントに移動する必要があります。
-->
<Parameter name="DEPOSITFLAG"><CharacterText></CharacterText></Parameter>
<!-- 以下の 2 つのパラメーターはオプションです。 いずれか 1 つを使用して
バイヤー購入オーダー番号 を Payment Manager へ渡すことができます。 1 番目のパラメーターに使用できるのは
ASCII テキストのみです。 システムのバイヤー購入オーダー番号に ASCII 以外が含まれていることがある場合は
パラメーター ORDERDATA2 を使用してください。
-->
<Parameter name="TRANSACTIONID" maxBytes="128" encoding="ASCII"><CharacterText>{PONumber}</CharacterText></Parameter>
<Parameter name="ORDERDATA2"><CharacterText></CharacterText></Parameter>
<!-- ==================================================================
カセットに必要なパラメーター
================================================================== -->
<Parameter name="$PAN" sensitive="true"><CharacterText>{card_number}</CharacterText></Parameter>
<Parameter name="$BRAND"><CharacterText>{cardBrand}</CharacterText></Parameter>
<!-- 形式 YYYYMM の有効期限日付 -->
<Parameter name="$EXPIRY"><CharacterText>{card_expiry}</CharacterText></Parameter>
<!-- MIA (Merchant Initiated Authorization) 拡張機能へ渡される
TransMethod フィールド値の指定に使用されます。 WCS 拡張機能は
使用されるプロトコルにより 2 つの値を指定します。
0 (MIA_channelEncryption - HTTPS 使用の場合)
1 (MIA_unencryptedWWW - HTTP 使用の場合)
-->
<Parameter name="$TRANSMETHOD">
<ExtensionValue name="com.ibm.commerce.payment.extensions.GenericExtension" />
</Parameter>
<!-- このエンコード属性は
8859_1 文字エンコード方式が GenericExtension クラスがバイトをエンコードした方式であるため、
それを使用して戻されたストリングから
OrderDescription のバイトを取得できることをキャッシャーに示します。 結果のバイトは、リクエスターの言語で表されます。 -->
<Parameter name="$ORDERDESCRIPTION" encoding="8859_1" >
<ExtensionValue name="com.ibm.commerce.payment.extensions.GenericExtension" />
</Parameter>
<!-- ==================================================================
カセットのオプション・パラメーター
================================================================== -->
<!-- カード所有者の番地。 1 から 128 文字の ASCII 文字。 -->
<Parameter name="$AVS.STREETADDRESS" maxBytes="128" encoding="ASCII"><CharacterText>{billto_address1}</CharacterText></Parameter>
<!-- カード所有者の市区町村。 1 から 50 文字の ASCII 文字。 -->
<Parameter name="$AVS.CITY" maxBytes="50" encoding="ASCII"><CharacterText>{billto_city}</CharacterText></Parameter>
<!-- カード所有者の都道府県。 1 から 50 文字の ASCII 文字。 -->
<Parameter name="$AVS.STATEPROVINCE" maxBytes="50" encoding="ASCII"><CharacterText>{billto_state}</CharacterText></Parameter>
<!-- カード所有者の郵便番号。 1 から 14 文字の ASCII 文字。 -->
<Parameter name="$AVS.POSTALCODE" maxBytes="14" encoding="ASCII"><CharacterText>{billto_zipcode}</CharacterText></Parameter>
<!-- カード所有者の ISO 3166 (3 桁) 国別コード。 このフィールドは、
別の AVS データが渡される場合に必要です。 -->
<Parameter name="$AVS.COUNTRYCODE"><CharacterText>{billto_country_code}</CharacterText></Parameter>
<!-- その場所の 1 つを指定するためにマーチャントが使用する ID。
値はストリングとして指定されます。 1 から 10 文字の ASCII 文字。 -->
<Parameter name="$AVS.LOCATIONID" maxBytes="10" encoding="ASCII"><CharacterText></CharacterText></Parameter>
<!-- 同じ支払いカードは 1 つの検証コードで発行されます。 検証コードは
発行した銀行によって生成され、その銀行で検証されます。
3 または 4 桁の検証コードが続くアカウント番号が
カードの署名パネルに印刷されます。 値は 3 または 4 桁の
数字ストリングでなければなりません。 例: 1234 または 321 -->
<Parameter name="$CARDVERIFYCODE"><CharacterText>{cardVerificationCode}</CharacterText></Parameter>
<!-- $ORDERDESCRIPTION パラメーターのコンテンツ・タイプおよび
文字セットを指示します。 -->
<Parameter name="$CHARSET"><CharacterText></CharacterText></Parameter>
<!-- merchData 構造の 2 つのフィールドの内の 1 つです。指定すると
カセットがこれを使用します。 値は 4 桁の数字ストリングです。
注: このフィールドは、決済機関からの必要事項に使用されます。 -->
<Parameter name="$MERCHCATCODE"><CharacterText></CharacterText></Parameter>
<!-- merchData 構造の 2 つのフィールドの内の 1 つです。指定すると
カセットがこれを使用します。 値は
"1" と "8" の間の数値ストリングでなければなりません。 可能な値のセマンティクスは SET 仕様に説明されています。
注: このフィールドの使用は、決済機関からの要件によるものです。
-->
<Parameter name="$MERCHGROUP"><CharacterText></CharacterText></Parameter>
<!-- MerOrderNum フィールドは、CapReq および AuthReq (現在、資金化状態) メッセージ
の SalesDetail 構造にあります。 値は、最大長 24 文字の文字ストリングでなければなりません。
-->
<Parameter name="$MERORDERNUM"><CharacterText></CharacterText></Parameter>
<!-- マーチャントが追加の配送を承認するかどうかを指示します。
サポート値:
0-これがオーダーの最終支払いであることを指示する。
1-マーチャントが、オーダーに対して追加の分割支払いを
可能にすることを指示する。 -->
<Parameter name="$SPLITALLOWED"><CharacterText>0</CharacterText></Parameter>
</CollectPayment>
<Command name="DEPOSIT">
<!-- ==================================================================
DEPOSIT コマンドに必要な Payment Manager のパラメーター
================================================================== -->
<Parameter name="MERCHANTNUMBER"><CharacterText>{storeId}</CharacterText></Parameter>
<Parameter name="ORDERNUMBER"><CharacterText>{orderId}</CharacterText></Parameter>
<Parameter name="PAYMENTNUMBER"><CharacterText>{payment_number}</CharacterText></Parameter>
<Parameter name="AMOUNT"><CharacterText>{AMOUNT}</CharacterText></Parameter>
<!-- ==================================================================
購入カード・データのオプション・パラメーター
================================================================== -->
<Parameter name="$PCARD.TOTALTAXAMOUNT"><CharacterText>{total_tax_amount}</CharacterText></Parameter>
<Parameter name="$PCARD.SHIPPINGAMOUNT"><CharacterText>{total_shipping_amount}</CharacterText></Parameter>
<Parameter name="$PCARD.MERCHANTORDERNUMBER"><CharacterText>{orderId}</CharacterText></Parameter>
<Parameter name="$PCARD.CUSTOMERREFERENCENUMBER"><CharacterText></CharacterText></Parameter>
<!-- SelectStatement を機能させるために以下の制限に注意してください -->
<Parameter name="$ITEM.PRODUCTCODE" maxBytes="12" encoding="UTF8">
<DatabaseValue statementID="1" columnName="PARTNUMBER" />
</Parameter>
<Parameter name="$ITEM.DESCRIPTOR" maxBytes="35" encoding="UTF8">
<DatabaseValue statementID="1" columnName="SHORTDESCRIPTION" />
</Parameter>
<Parameter name="$ITEM.QUANTITY" encoding="ASCII">
<DatabaseValue statementID="1" columnName="INT_QUANTITY" />
</Parameter>
<Parameter name="$ITEM.UNITOFMEASURE" maxBytes="12" encoding="UTF8">
<DatabaseValue statementID="1" columnName="QTYMEASURE" />
</Parameter>
<Parameter name="$ITEM.UNITCOST" encoding="ASCII">
<DatabaseValue statementID="1" columnName="UNITCOST" />
</Parameter>
<Parameter name="$ITEM.TOTALCOST" encoding="ASCII">
<DatabaseValue statementID="1" columnName="TOTALCOST" />
</Parameter>
</Command>
</Profile>
WC51_SET_MIA_PCard.profile は次の場所にあります。
drive:\WebSphere\CommerceServer\instances\instance_name\xml\payment\
drive:\Program
Files\WebSphere\CommerceServer\instances\instance_name\xml\payment\
/usr/WebSphere/CommerceServer/instances/instance_name/xml/payment/
/opt/WebSphere/CommerceServer/instances/instance_name/xml/payment/
instance root
path/xml/payment/
instance root path は、インスタンス作成時に、
構成マネージャーの「インスタンス」パネルにある「Instance Root Path (インスタンスのルート・パス)」フィールドで指定したパスです。
デフォルト・パスは
/QIBM/UserData/WebCommerce/instances/instance_name/ です。
PAYMENTTYPE パラメーターは、このプロファイルのカセットの名前を指定します。
オプションの購入カード・データの値は、プロファイルで指定された SelectStatement を使用して、 WebSphere Commerce テーブルから集められることに注意してください。 これには、一定の制限があります。
WebSphere Commerce では、 キャッシャー・プロファイルの <BuyPageInformation> エレメントは使用しません。 それと同等の機能が、支払いポリシーの attrPageName プロパティーとして提供されています。
ご使用のストアでこのプロファイルを指定する支払いポリシー (たとえば、policy_id が 301 のポリシー) を使用する場合、
このキャッシャー・プロファイルは使用する前に多少変更する必要があります。
この説明については、
Cassette for SET のキャッシャー・プロファイルの更新 - 購入カード・データでの MIA (Oracle の場合) を参照してください。
SET カセットで必要となるパラメーターの詳細については、 IBM WebSphere Payment Manager for Multiplatforms Cassette for SET 補足 バージョン 3.1 を参照してください。
![]() |