Professional Documents
Culture Documents
Anulacin de transaccin
Webpay Transbank S.A.
Transbank S.A.
10/10/2012
Contenido
1
Prefacio.................................................................................................................................. 2
2.1
2.2
Audiencia ....................................................................................................................... 2
2.3
3.2
3.2.1
3.2.2
Pgina 1
Ejemplo Java................................................................................................................... 7
1 Control de cambios
Fecha
12-12-12
20-11-14
30-04-15
Version
1.0
1.1
1.2
2 Prefacio
2.1 Acerca de esta gua
Esta gua describe los aspectos tcnicos que deben ser considerados en la integracin con Webpay
utilizando API SOAP, describe la operacin del servicio Web para Anulacin de transacciones y
cmo debe ser utilizado. Se incluye ejemplo Java.
2.2 Audiencia
Esta gua est dirigida a implementadores que realizan la integracin de Webpay en comercios
utilizando la API SOAP para soportar en estos la anulacin de transacciones Webpay.
Se recomienda que quin realice la integracin posea conocimiento tcnico de al menos en los
siguientes temas:
Servicios Web
WS-Security
Firma digital, generacin y validacin.
Pgina 2
3 Transaccin de anulacin
3.1 Descripcin de la anulacin
Este mtodo permite a todo comercio habilitado anular una transaccin que fue generada en
plataforma Webpay 3G. El mtodo contempla anular total o parcialmente una transaccin. Para
ello se deber indicar los datos asociados a la transaccin de venta en lnea que se desea anular y
los montos requeridos para anular. Se considera totalmente anulada una transaccin cuando el
monto anulado o el monto total de anulaciones cursadas alcancen el monto autorizado en la venta
en lnea.
Webpay soporta una sola anulacin parcial para la transaccin de venta en lnea. En caso de enviar
una segunda anulacin parcial se retornar una Exception.
Las ejecuciones con errores entregarn un SoapFault de acuerdo a la codificacin de errores
definida.
Descripcin general
Permite solicitar a Webpay la anulacin de una transaccin
realizada previamente y que se encuentra vigente.
El mtodo nullify debe ser invocado siempre indicando
el cdigo del comercio que realiz la transaccin. En el
caso de comercios MALL, el cdigo debe ser el cdigo
de la tienda virtual.
Pgina 3
3.2.1
Operacin nullify
Descripcin
xs:string
Cdigo de autorizacin de la transaccin que se requiere anular. Para el caso
que se est anulando una transaccin de captura en lnea, este cdigo
corresponde al cdigo de autorizacin de la captura.
authorizedAmount
Largo mximo: 6
xs:decimal
Monto autorizado de la transaccin que se requiere anular. Para el caso que se
est anulando una transaccin de captura en lnea, este monto corresponde al
monto de la captura.
buyOrder
Largo mximo: 10
xs:string
Orden de compra de la transaccin que se requiere anular
commerceId
Largo mximo: 26
xs:long
Cdigo de comercio o tienda mall que realiz la transaccin
nullifyAmount
Largo: 12
xs:decimal
Monto que se desea anular de la transaccin
Largo mximo:10
Pgina 4
Parmetros de salida
Campo
Token
Descripcin
xs:string
Token de la transaccin.
authorizationCode
xs:string
Cdigo de autorizacin de la anulacin
authorizationDate
xs:dateTime
Fecha y hora de la autorizacin
Balance
xs:decimal
Saldo actualizado de la transaccin (considera la venta
menos el monto anulado)
nullifiedAmount
xs:decimal
Monto anulado
3.2.2
Cdigos de error
Cdigo
304
Descripcin
Validacin de campos de entrada nulos
245
22
316
308
274
Transaccin no encontrada
16
292
284
310
311
312
315
Pgina 5
1. Generacin de cliente o herramienta para consumir los servicios Web, lo cual permite
abstraerse de la complejidad de mensajera SOAP asociada a los Webservice y hacer uso
de las operaciones del servicio.
Pgina 6
Apache CXF, es un framewok open source que ayuda a construir y consumir servicios
Web en Java. En este ejemplo se utilizar para:
o
Spring framewok 3.0, permite que CXF y WSS4J trabajen en conjunto, tambin se
utiliza para configurar WS Security en la firma del mensaje SOAP.
Pasos a seguir:
1. Generacin de cliente del Webservice.
Para generar el cdigo Java que implementar el cliente SOAP se utilizar wsdl2java de
CXF, el cual toma el WSDL del servicio y genera todas las clases necesarias para invocar el
servicio Web. Ms informacin en http://cxf.apache.org/docs/wsdl-to-java.html
Pgina 7
2. Configuracin de WS Security
Para configurar WS Security en CXF se deben habilitar y configurar los interceptores que
realizaran el trabajo de firmado del mensaje. La configuracin de los interceptores se
puede realizar a travs de la API de servicios Web o a travs del XML de configuracin de
Spring, en este caso se realizar a travs de Spring en el archivo applicationContext.xml de
la aplicacin.
Se deben habilitar y configurar 2 interceptores, uno para realizar la firma de los mensajes
enviados al invocar una operacin del servicio Web de Webpay y otro para validar la firma
de la respuesta del servicio Web.
Interceptor de salida
<bean class="org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor"
id="signOutRequestInterceptor">
<constructor-arg>
<map>
<entry key="signaturePropFile" value="signatureOut.properties"/>
<entry key="user" value="${alias.client}"/>
<entry key="action" value="Signature"/>
<entry key="passwordCallbackClass"
value="com.transbank.webpay.wsse.ClientCallBack"/>
<entry key="signatureParts"
value="{Element}{http://schemas.xmlsoap.org/soap/envelope/}Body"/>
</map>
</constructor-arg>
</bean>
Interceptor de entrada
<bean class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor"
id="signInRequestInterceptor">
<constructor-arg>
<map>
<entry key="action" value="Signature" />
<entry key="signaturePropFile" value="signatureIn.properties"/>
<entry key="passwordCallbackClass"
value="com.transbank.webpay.wsse.ServerCallBack"/>
<entry key="signatureParts"
value="{Element}{http://schemas.xmlsoap.org/soap/envelope/}Body"/>
</map>
</constructor-arg>
</bean>
LasclasesClientCallbacky
interfaz
javax.security.auth.callback.CallbackHandler, su implementacinpermite al
framework de seguridad recuperar la contrasea para acceder alalmacen de llaves de la
aplicacin (Java Key Store) que almacena los certificados digitales.
Pgina 8
ServerCallBackimplementan
la
import com.transbank.webpay.wswebpay.service.NullificationInput;
import com.transbank.webpay.wswebpay.service.NullificationOutput;
import com.transbank.webpay.wswebpay.service.WSCommerceIntegrationService;
import com.transbank.webpay.wswebpay.service.WSCommerceIntegrationServiceImplService;
import java.util.GregorianCalendar;
import javax.xml.datatype.XMLGregorianCalendar;
.
WSCommerceIntegrationServiceImplService client = new
WSCommerceIntegrationServiceImplService();
WSCommerceIntegrationService service = client.getWSCommerceIntegrationServiceImplPort();
NullificationInput input = new NullificationInput();
XMLGregorianCalendar TrxDate = getFecha("2012-10-23 21:14:23");
input.setAuthorizationDate(TrxDate);
input.setAuthorizationCode("188051");
input.setAuthorizedAmount(new BigDecimal("54556"));
input.setBuyOrder("344343434");
input.setCommerceId(4445556667L);
input.setNullifyAmount(new BigDecimal("23200"));
NullificationOutput output = service.nullify(input);
URL:
http://cxf.apache.org/docs/ws-security.html
http://ws.apache.org/wss4j/
http://cxf.apache.org/docs/wsdl-to-java.html
Pgina 9