El código XML siguiente es el perfil de cajero estándar que se proporciona en WebSphere Commerce para el casete para SET. Este perfil de cajero utiliza la extensión SET Merchant Initiated Authorization (MIA) y especifica algunos de los datos de tarjeta de compras opcionales soportados por el casete. El método de tarjeta de compras envía datos de tarjeta de compras adicionales al Adquirente. Para obtener más información sobre las tarjetas de compras, consulte la publicación IBM WebSphere Payment Manager for Multiplatforms, Cassette for SET Supplement, Version 3.1.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Profile SYSTEM "../../../../xml/PaymentManager/profile.dtd">
<!--
//*==================================================================
//* Material bajo licencia - Propiedad de IBM
//*
//* 5724-A18
//*
//* (c) Copyright IBM Corp. 2001
//*
//* Derechos restringidos de los usuarios del Gobierno de EE.UU. - Utilización,
//* duplicación o divulgación restringida por el GSA ADP Schedule Contract con IBM Corp.
//*
//*================================================================== -->
<!-- ==================================================================
Este es el perfil de cajero WebSphere Commerce estándar para el casete para SET
de Payment Manager (para Merchant Initiated Authorization)
Este perfil especifica los datos de tarjeta de compras opcionales soportados por el casete.
Nota: Si cambia el parámetro DEPOSITFLAG del perfil a "1", debe mover los
parámetros $PCARD.* al elemento <CollectPayment> del perfil.
================================================================== -->
<Profile useWallet="false" enableTrace="true" >
<!-- Tenga en cuenta las siguientes limitaciones:
1) El casete soporta la columna QUANTITY sólo con valores enteros. Las partes fraccionarias se eliminan.
2) OrderItems.CatEntry_id no debe ser nulo y las entradas CatEntShip y CatEntDesc para CatEntry_id
deben existir con CatEntDesc.SHORTDESCRIPTION no nulo para el language_id especificado.
3) Las columnas TAXAMOUNT, SHIPCHARGE y SHIPTAXAMOUNT de OrderItems no deben ser un nulo.
-->
<!-- Nota sobre las dos sentencias SelectStatement siguientes.
* ACCIÓN NECESARIA PARA USUARIOS DE ORACLE *
La primera SelectStatement es para DB2,
La segunda SelectStatement es para Oracle.
Si está ejecutando ORACLE, descomente la segunda SelectStatement
y comente en su lugar la primera 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>
<!-- ==================================================================
Los parámetros que necesita Payment Manager para la creación de pedidos
================================================================== -->
<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>
<!-- Indica cómo se debe intentar la aprobación automática del pedido
Los valores soportados son:
0 - sin aprobación automática
1 - aprobación automática síncrona - Payment Manager intenta la aprobación
como parte de la operación de creación de pedidos
2 - aprobación automática asíncrona - Payment Manager planifica una operación
de aprobación una vez creado el pedido
WCS funciona mejor si APPROVEFLAG se establece en 2. Cuando APPROVEFLAG se establece en 1, el
mandato DoPayment de WC se bloquea hasta que Payment Manager finaliza la aprobación del pedido.
Hasta que no finaliza la aprobación, los mandatos que deseen leer/actualizar los mismos
registros de inventario modificados por el mandato DoPayment permanecerán bloqueados. Esto
afectará el rendimiento del resto de los mandatos.
-->
<Parameter name="APPROVEFLAG"><CharacterText>2</CharacterText></Parameter>
<!-- El importe que debe utilizarse cuando se aprueba un pedido. Generalmente,
será igual al importe del pedido. Este campo es necesario
si el parámetro APPROVEFLAG se establece en 1 ó 2. -->
<Parameter name="PAYMENTAMOUNT"><CharacterText>{approval_amount}</CharacterText></Parameter>
<!-- El número de pago que debe utilizarse cuando se aprueba un pedido.
Generalmente será 1. Este campo es obligatorio si APPROVEFLAG
se establece en 1 ó 2. -->
<Parameter name="PAYMENTNUMBER"><CharacterText>1</CharacterText></Parameter>
<!-- Indica si el depósito debe intentarse automáticamente.
Este distintivo sólo es válido si APPROVEFLAG se establece en 1 ó 2.
Los valores soportados son:
0 - Los fondos no deben depositarse automáticamente.
1 - Los fondos deben depositarse automáticamente.
El valor por omisión es 0.
Nota: Si cambia el parámetro DEPOSITFLAG a "1", debe mover todos los
parámetros de datos de tarjeta de compras opcionales del elemento <Command name="DEPOSIT">
al elemento <CollectPayment> para los parámetros que se han de enviar.
-->
<Parameter name="DEPOSITFLAG"><CharacterText></CharacterText></Parameter>
<!-- Los dos parámetros siguientes son opcionales. Puede utilizarse cualquiera de
los dos para pasar el número de orden de compra del comprador a Payment Manager. El
primer parámetro sólo acepta texto ASCII. Si los números de orden de compra de su
sistema pueden contener series no ASCII, utilice entonces el parámetro ORDERDATA2.
-->
<Parameter name="TRANSACTIONID" maxBytes="128" encoding="ASCII"><CharacterText>{PONumber}</CharacterText></Parameter>
<Parameter name="ORDERDATA2"><CharacterText></CharacterText></Parameter>
<!-- ==================================================================
Los parámetros que necesita el casete
================================================================== -->
<Parameter name="$PAN" sensitive="true"><CharacterText>{card_number}</CharacterText></Parameter>
<Parameter name="$BRAND"><CharacterText>{cardBrand}</CharacterText></Parameter>
<!-- La fecha de caducidad con el formato MMAAAA -->
<Parameter name="$EXPIRY"><CharacterText>{card_expiry}</CharacterText></Parameter>
<!-- Se utiliza para especificar el valor del campo TransMethod que se ha pasado
en la extensión MIA (Merchant Initiated Authorization). La extensión WCS
especifica uno de los dos valores siguientes según el protocolo utilizado.
0 (MIA_channelEncryption - si se ha utilizado HTTPS)
1 (MIA_unencryptedWWW - si se ha utilizado HTTP)
-->
<Parameter name="$TRANSMETHOD">
<ExtensionValue name="com.ibm.commerce.payment.extensions.GenericExtension" />
</Parameter>
<!-- El atributo de codificación indica al cajero que los bytes para
OrderDescription pueden obtenerse de la Serie devuelta utilizando la
codificación de caracteres 8859_1 ya que así es cómo la clase GenericExtension
ha codificado los bytes. Los bytes resultantes están en el idioma del peticionario. -->
<Parameter name="$ORDERDESCRIPTION" encoding="8859_1" >
<ExtensionValue name="com.ibm.commerce.payment.extensions.GenericExtension" />
</Parameter>
<!-- ==================================================================
Parámetros opcionales para el casete
================================================================== -->
<!-- La dirección del titular de la tarjeta. De 1 a 128 caracteres ASCII.-->
<Parameter name="$AVS.STREETADDRESS" maxBytes="128" encoding="ASCII"><CharacterText>{billto_address1}</CharacterText></Parameter>
<!-- La ciudad del titular de la tarjeta. De 1 a 50 caracteres ASCII.-->
<Parameter name="$AVS.CITY" maxBytes="50" encoding="ASCII"><CharacterText>{billto_city}</CharacterText></Parameter>
<!-- El estado o provincia del titular de la tarjeta. De 1 a 50 caracteres ASCII.-->
<Parameter name="$AVS.STATEPROVINCE" maxBytes="50" encoding="ASCII"><CharacterText>{billto_state}</CharacterText></Parameter>
<!-- El código postal del titular de la tarjeta. De 1 a 14 caracteres ASCII. -->
<Parameter name="$AVS.POSTALCODE" maxBytes="14" encoding="ASCII"><CharacterText>{billto_zipcode}</CharacterText></Parameter>
<!-- El código de país ISO 3166 (3 dígitos) del titular de la tarjeta. Este campo es
necesario si se pasan otros datos AVS. -->
<Parameter name="$AVS.COUNTRYCODE"><CharacterText>{billto_country_code}</CharacterText></Parameter>
<!-- Un identificador que utiliza el comerciante para especificar una de sus ubicaciones.
El valor se especifica como una serie. De 1 a 10 caracteres ASCII. -->
<Parameter name="$AVS.LOCATIONID" maxBytes="10" encoding="ASCII"><CharacterText></CharacterText></Parameter>
<!-- Algunas tarjetas de pago se emiten con un código de verificación. El código
de verificación lo genera el banco emisor y éste puede comprobarlo.
El número de cuenta seguido por el código de verificación de tres o cuatro dígitos
se imprime en el panel de firma de la tarjeta. El valor debe ser una serie numérica
de tres o cuatro caracteres. Por ejemplo, los valores: 1234 ó 321. -->
<Parameter name="$CARDVERIFYCODE"><CharacterText>{cardVerificationCode}</CharacterText></Parameter>
<!-- Indica el tipo de contenido y el juego de caracteres del parámetro
$ORDERDESCRIPTION. -->
<Parameter name="$CHARSET"><CharacterText></CharacterText></Parameter>
<!-- Uno de los dos campos de la estructura merchData; cuando se especifica,
el casete lo utilizará. El valor debe ser una serie numérica de cuatro caracteres.
Nota: El requisito de utilizar este campo provendrá del adquirente.-->
<Parameter name="$MERCHCATCODE"><CharacterText></CharacterText></Parameter>
<!-- Uno de los dos campos de la estructura merchData; cuando se especifica,
el casete lo utilizará. El valor debe ser una serie numérica entre
"1" y "8". La semántica de los valores posibles se describe en la especificación
SET. Nota: El requisito de utilizar este campo provendrá
del adquirente. -->
<Parameter name="$MERCHGROUP"><CharacterText></CharacterText></Parameter>
<!-- El campo MerOrderNum está en la estructura SaleDetail de los mensajes
CapReq y AuthReq (ahora con capturas). El valor debe ser una serie de
caracteres con una longitud máxima de 24 caracteres. -->
<Parameter name="$MERORDERNUM"><CharacterText></CharacterText></Parameter>
<!-- Indica si un comerciante puede aprobar o no envíos adicionales.
Los valores soportados son:
0-Indica que este es el pago final del pedido.
1-Indica que el comerciante puede aprobar pagos aplazados
adicionales para el pedido. -->
<Parameter name="$SPLITALLOWED"><CharacterText>0</CharacterText></Parameter>
</CollectPayment>
<Command name="DEPOSIT">
<!-- ==================================================================
Los parámetros que necesita Payment Manager para el mandato 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>
<!-- ==================================================================
Parámetros opcionales para los datos de Tarjeta de compras
================================================================== -->
<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>
<!-- Tenga en cuenta las limitaciones listadas para que SelectStatement funcione -->
<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>
Este perfil, WC51_SET_MIA_PCard.profile, puede encontrarlo en:
unidad:\WebSphere\CommerceServer\instances\nombre_instancia\xml\payment\
unidad:\Archivos
de programa\WebSphere\CommerceServer\instances\nombre_instancia\xml\payment\
/usr/WebSphere/CommerceServer/instances/nombre_instancia/xml/payment/
/opt/WebSphere/CommerceServer/instances/nombre_instancia/xml/payment/
vía de acceso
raíz de instancia/xml/payment/
donde vía de acceso raíz de instancia es la vía de acceso que ha especificado
en el campo Vía de acceso raíz de la instancia del panel Instancia del Gestor de
configuración durante la creación de la instancia. La vía de acceso por omisión
es /QIBM/UserData/WebCommerce/instances/nombre_instancia/.
El parámetro PAYMENTTYPE especifica el nombre del casete de este perfil.
Tenga en cuenta que los valores para los datos de tarjeta de compras opcionales se recopilan de las tablas de WebSphere Commerce utilizando la SelectStatement especificada en el perfil. Existen ciertas limitaciones:
WebSphere Commerce no utiliza el elemento <BuyPageInformation> del perfil de cajero. Se proporciona una función equiparable con la propiedad attrPageName de la política de pago.
Antes de
utilizar este perfil de cajero,
tendrá que realizar un pequeño cambio si desea utilizar la política de pago que
especifica este perfil con sus tiendas
(por ejemplo, policy_id igual a 301). Consulte Actualizar
el perfil de cajero para el casete para SET - MIA con datos de tarjeta de compras
(para Oracle) para obtener instrucciones.
Para obtener más información sobre los parámetros que necesita el Casete para SET, consulte la publicación IBM WebSphere Payment Manager for Multiplatforms, Cassette for SET Supplement, Version 3.1.
![]() |