「Cassette for SET - 使用訂購卡資料的 MIA」的 Cashier 設定檔 (Business Edition)

下列 XML 程式碼是 WebSphere Commerce 中針對 Cassette for SET 所提供的標準 Cashier 設定檔。這個 Cashier 設定檔採用商家起始授權 (MIA) SET 延伸項, 並指定卡匣所支援的某些選用訂購卡資料。訂購卡方法可將其它的訂購卡資料傳給收單機構。有關訂購卡的進一步資訊, 請參閱 IBM WebSphere Payment Manager for Multiplatforms Cassette for SET 補充資料 3.1 版

<?xml version="1.0" encoding="UTF-8"?>
<!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 的標準 WebSphere Commerce
Cashier 設定檔(供商家起始授權使用)

這個設定檔會指定 Cassette 所支援的選用訂購卡資料。

附註:如果您將設定檔的 DEPOSITFLAG 參數改成 "1",則必須將
$PCARD.* 參數移至設定檔的 <CollectPayment> 元素中。
================================================================== -->

<Profile useWallet="false" enableTrace="true" >

<!-- 請注意下列限制:
1) Cassette 只支援含整數值的 QUANTITY 直欄。會除去分數部份。
2) OrderItems.CatEntry_id 不能是空值,CatEntry_id 的 CatEntShip 和 CatEntDesc 項目
必須與指定 language_id 不是空值的 CatEntDesc.SHORTDESCRIPTION 同時存在。
3) OrderItems 的 TAXAMOUNT、SHIPCHARGE 和 SHIPTAXAMOUNT 直欄不能是空值。
-->
<!-- 請注意下列 2 個 SelectStatement。
* Oracle 使用者必須執行此動作 *

頂端 SelectStatement 是針對 DB2,
底端 SelectStatement 是針對 Oracle。

如果您所執行的是 ORACLE,請取消第二個 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 將核准作業排在建立
訂單後執行

APPROVEFLAG 設為 2 時,WCS 的運作效率最佳。若將 APPROVEFLAG 設為 1, 則會暫停執行 WCS
DoPayment 指令,直到 Payment Manager 完成訂單的核准為止。
當完成核准時,凡任何等待要讀取/更新 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>

<!-- 下面兩個參數是選用的。其中任何一個參數都可用來將
買方訂購單號碼傳遞給 Payment Manager。第一個參數只到
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(商家起始授權)延伸項中之 TransMethod 欄位 
的值。WCS 延伸項會根據所用的通信協定,
來指定這兩個值之一。
0 (MIA_channelEncryption - 若使用的是 HTTPS)
1 (MIA_unencryptedWWW - 若使用的是 HTTP) 
--> 
<Parameter name="$TRANSMETHOD">
<ExtensionValue name="com.ibm.commerce.payment.extensions.GenericExtension" />
</Parameter>


<!-- 編碼屬性用以指示 Cashier 有關 OrderDescription
的位元組可從使用 8859_1 字元編碼的傳回字串得知,這
是因為此為 GenericExtension 類別編碼位元組的方式。
產生的位元組是採用要求端的語言。-->
<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 到 10 的 ASCII 字元。-->
<Parameter name="$AVS.LOCATIONID" maxBytes="10" encoding="ASCII"><CharacterText></CharacterText></Parameter>



<!-- 有些付款卡會連同驗證碼一起發出。驗證碼
是由發卡銀行產生,可供銀行驗證用。 
帳戶號碼加上後面的 3 到 4 碼驗證碼 
會印在卡片的簽名框中。此值必須是 3 或 4 
個字元長的數值字串。例如:1234 或 321。-->
<Parameter name="$CARDVERIFYCODE"><CharacterText>{cardVerificationCode}</CharacterText></Parameter>

<!-- 指出 $ORDERDESCRIPTION 參數的內容類型與 
字集。 -->
<Parameter name="$CHARSET"><CharacterText></CharacterText></Parameter> 

<!-- merchData 結構中的兩個欄位之一;若有指定,則 
卡匣會加以使用。此值必須是一個 4 個字元長的數值字串。 
注意事項:是否使用這個欄位,將由收單機構決定。-->
<Parameter name="$MERCHCATCODE"><CharacterText></CharacterText></Parameter> 

<!-- merchData 結構中的兩個欄位之一;若有指定,則 
卡匣會加以使用。值必須是 "1" 和 "8" 之間的
數值字串。可能值的相關語義,說明於 SET
規格中。 附註:是否使用此欄位, 
將由收單機構決定。 -->
<Parameter name="$MERCHGROUP"><CharacterText></CharacterText></Parameter> 

<!-- MerOrderNum 欄位位於 CapReq 與 AuthReq(目前帶有 capture) 
訊息的 SaleDetail 結構中。此值必須是一個 24 個字元以內的 
字串。 -->
<Parameter name="$MERORDERNUM"><CharacterText></CharacterText></Parameter> 

<!-- 指出商家可否核准額外的出貨。 
支援的值有: 
0-此為訂單的最終付款。
1-商家可核准訂單分批 
付款。-->
<Parameter name="$SPLITALLOWED"><CharacterText>0</CharacterText></Parameter> 

</CollectPayment>



<Command name="DEPOSIT">
<!-- ==================================================================
Payment Manager 的 DEPOSIT 指令所需要的參數
================================================================== -->
<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 是您在建立案例期間於架構管理程式之案例畫面的「案例根路徑」欄位中指定的路徑。 預設路徑為 /QIBM/UserData/WebCommerce/instances/instance_name/

PAYMENTTYPE 參數用以指定此設定檔卡匣的名稱。

請注意,選用訂購卡資料的值是利用設定檔所指定的 SelectStatement, 從 WebSphere Commerce 表格中收集來的。它有以下限制:

  1. 卡匣只支援含整數值的 QUANTITY 直欄。會除去分數部份。
  2. ORDERITEMS 表格中的 CATENTRY_ID 直欄不能是空值。 就指定的語言 ID 而言,如果 CATENTDESC 表格中存在 非空值的 SHORTDESCRIPTION 直欄, 則 CATENTSHIPCATENTDESC 表格中的 CATENTRY_ID 項目必須存在。
  3. ORDERITEMS 中的 TAXAMOUNT、SHIPCHARGE 與 SHIPTAXAMOUNT 不能是空值。

WebSphere Commerce 不會使用 Cashier 設定檔的 <BuyPageInformation> 元素。 付款原則的 attrPageName 內容能夠提供足以相較的功能。

在使用此 Cashier 設定檔前, 如果您想使用的付款原則指定您的商店使用此設定檔 (例如 policy_id 等於 301), 您必須進行些微的變更。 相關指示請參閱更新「Cassette for SET - 使用訂購卡資料的 MIA」的 Cashier 設定檔(適用於 Oracle)

有關 SET Cassette 所需參數的進一步資訊,請參閱 IBM WebSphere Payment Manager for Multiplatforms Cassette for SET 補充資料 3.1 版

相關概念(1275 個位元組)

相關參照(1275 個位元組)

IBM copyright