Modulo para conexión con gateway de pago Todo Pago
######Instalación ######Versiones de Ruby soportadas ######Generalidades ######Uso ######[Datos adicionales para prevencion de fraude] (#datosadicionales) ######Ejemplo ######Modo test ######Status de la operación ######Tablas de referencia
Se debe descargar la última versión del SDK desde el botón Download ZIP y descomprimirlo. Se debe crear un archivo .gem que debe ser instalado para poder utilizarlo.
Abrir la consola tipear:
cd "ruta-del-sdk"
Donde ruta-del-sdk es la ruta donde se descomprimió el zip
Situarse en el directorio que contiene el archivo TodoPagoConector.gemspec, de esta forma:
cd sdk-ruby-master
Para crear el archivo .gem se debe ejecutar el comando gem build
..\sdk-ruby-master>gem build TodoPagoConector.gemspec
Successfully built RubyGem
Name: TodoPagoConector
Version: 1.1.0
File: TodoPagoConector-1.1.0.gem
Se debe obtener el archivo TodoPagoConector-1.1.0.gem
sdk-ruby-master>gem install ./TodoPagoConector-1.1.0.gem
Successfully installed TodoPagoConector-1.1.0
1 gem installed
Installing ri documentation for TodoPagoConector-1.1.0...
Installing RDoc documentation for TodoPagoConector-1.1.0...
Abrir el Interactive RuBy shell
..\sdk-ruby-master>irb
Tipear el siguiente comando para comprobar que está listo para ser utilizado
irb(main):004:0> require 'todo_pago_conector'
=> true
##Versiones soportadas de Ruby La versión implementada de la SDK, esta testeada para versiones de ruby desde 1.9.3 en adelante. Volver a inicio
##Genaralidades Esta versión soporta únicamente pago en moneda nacional argentina (CURRENCYCODE = 32). Volver a inicio
####1. Inicializar la clase correspondiente al conector (TodoPago).
- crear una estrucura como la del ejemplo con las wsdl suministradas por Todo Pago
j_wsdls = {
"Authorize"=>"https://developers.todopago.com.ar/services/Authorize?wsdl",
"PaymentMethods"=>"https://developers.todopago.com.ar/services/PaymentMethods?wsdl",
"Operations"=>"https://developers.todopago.com.ar/services/Operations?wsdl"}
- crear una estructura como la del ejemplo con los http header suministrados por todo pago
j_header_http = {
"Authorization"=>"PRISMA 912EC803B2CE49E4A541068D495AB570"
}
- crear una instancia de la clase TodoPago
conector = TodoPagoConector.new(j_header_http,
j_wsdls,
end_point) # End Point, wsdl y http_header provisto por TODO PAGO
####2.Solicitud de autorización En este caso hay que llamar a sendAuthorizeRequest().
response = conector.sendAuthorizeRequest(optionsSAR_comercio,optionsSAR_operacion)
Datos propios del comercio optionsSAR_comercio debe ser un Hash con la siguiente estructura:
optionsSAR_comercio = Hash.new
optionsSAR_comercio[:Security]="1234567890ABCDEF1234567890ABCDEF"
optionsSAR_comercio[:Merchant]= "350"
optionsSAR_comercio[:EncodingMethod]="XML"
optionsSAR_comercio[:URL_OK]="http://www.misitio.com/controller/success"
optionsSAR_comercio[:URL_ERROR]="http://www.misitio.com/controller/fail"
Datos propios de la operación optionsSAR_operacion debe ser un Hash con la siguiente estructura:
optionsSAR_operacion = Hash.new
optionsSAR_operacion[:MERCHANT] = "305"
optionsSAR_operacion[:OPERATIONID] = "ABCDEF-1234-12221-FDE1-00000200"
optionsSAR_operacion[:CURRENCYCODE] = "032"
optionsSAR_operacion[:AMOUNT] = "54.00"
La variable response contendrá una estuctura en la cual url_request nos dara la url del formulario de pago a la cual habra que redirigir al comprador y request_key será un datos que será requerido en el paso de la confirmación de la transacción a través del método getAuthorizeRequest ####3.Confirmación de transacción. En este caso hay que llamar a getAuthorizeRequest(), enviando como parámetro un Hash como se describe a continuación.
optionsAnwser=Hash.new
optionsAnwser[:Security]= "1234567890ABCDEF1234567890ABCDEF" #Token de seguridad, provisto por TODO PAGO. MANDATORIO.
optionsAnwser[:MERCHANT]= "305"
optionsAnwser[:RequestKey]= "8496472a-8c87-e35b-dcf2-94d5e31eb12f"
optionsAnwser[:AnswerKey]= "8496472a-8c87-e35b-dcf2-94d5e31eb12f"
response = conector.getAuthorizeRequest(optionsAnwser)
optionsSAR_operacion=Hash.new
...........................................................................
optionsSAR_operacion[:CSBTCITY] = "Villa General Belgrano" #Ciudad de facturación, MANDATORIO.
optionsSAR_operacion[:CSBTCOUNTR]="AR" #País de facturación. MANDATORIO. Código ISO. (http://apps.cybersource.com/library/documentation/sbc/quickref/countries_alpha_list.pdf)
optionsSAR_operacion[:CSBTCUSTOMERID]="453458" #Identificador del usuario al que se le emite la factura. MANDATORIO. No puede contener un correo electrónico.
optionsSAR_operacion[:CSBTIPADDRESS]="192.0.0.4" #IP de la PC del comprador. MANDATORIO.
optionsSAR_operacion[:CSBTEMAIL]="decidir@hotmail.com" #Mail del usuario al que se le emite la factura. MANDATORIO.
optionsSAR_operacion[:CSBTFIRSTNAME]="Juan" #Nombre del usuario al que se le emite la factura. MANDATORIO.
optionsSAR_operacion[:CSBTLASTNAME]="Perez" #Apellido del usuario al que se le emite la factura. MANDATORIO.
optionsSAR_operacion[:CSBTPHONENUMBER]="541160913988" #Teléfono del usuario al que se le emite la factura. No utilizar guiones, puntos o espacios. Incluir código de país. MANDATORIO.
optionsSAR_operacion[:CSBTPOSTALCODE]="C1010AAP" #Código Postal de la dirección de facturación. MANDATORIO.
optionsSAR_operacion[:CSBTSTATE]="B" #Provincia de la dirección de facturación. MANDATORIO. Ver tabla anexa de provincias.
optionsSAR_operacion[:CSBTSTREET1]="Cerrito 740" #Domicilio de facturación (calle y nro). MANDATORIO.
optionsSAR_operacion[:CSBTSTREET2]="Piso 8" #Complemento del domicilio. (piso, departamento). NO MANDATORIO.
optionsSAR_operacion[:CSPTCURRENCY]="ARS" #Moneda. MANDATORIO.
optionsSAR_operacion[:CSPTGRANDTOTALAMOUNT]="125.38" #Con decimales opcional usando el puntos como separador de decimales. No se permiten comas, ni como separador de miles ni como separador de decimales. MANDATORIO. (Ejemplos:$125,38-> 125.38 $12-> 12 o 12.00)
optionsSAR_operacion[:CSMDD7]="" # Fecha registro comprador(num Dias). NO MANDATORIO.
optionsSAR_operacion[:CSMDD8]="Y" #Usuario Guest? (Y/N). En caso de ser Y, el campo CSMDD9 no deberá enviarse. NO MANDATORIO.
optionsSAR_operacion[:CSMDD9]="asjhskajshiuyiquwyiqw" #Customer password Hash: criptograma asociado al password del comprador final. NO MANDATORIO.
optionsSAR_operacion[:CSMDD10]="5" #Histórica de compras del comprador (Num transacciones). NO MANDATORIO.
optionsSAR_operacion[:CSMDD11]="540111564893736" #Customer Cell Phone. NO MANDATORIO.
optionsSAR_operacion[:CSSTCITY]="rosario" #Ciudad de envío de la orden. MANDATORIO.
optionsSAR_operacion[:CSSTCOUNTRY]="" #País de envío de la orden. MANDATORIO.
optionsSAR_operacion[:CSSTEMAIL]="jose@gmail.com" #Mail del destinatario, MANDATORIO.
optionsSAR_operacion[:CSSTFIRSTNAME]="Jose" #Nombre del destinatario. MANDATORIO.
optionsSAR_operacion[:CSSTLASTNAME]="Perez" #Apellido del destinatario. MANDATORIO.
optionsSAR_operacion[:CSSTPHONENUMBER]="541155893737" #Número de teléfono del destinatario. MANDATORIO.
optionsSAR_operacion[:CSSTPOSTALCODE]="1414" #Código postal del domicilio de envío. MANDATORIO.
optionsSAR_operacion[:CSSTSTATE]="D" #Provincia de envío. MANDATORIO. Son de 1 caracter
optionsSAR_operacion[:CSSTSTREET1]="San Martín 123" #Domicilio de envío. MANDATORIO.
optionsSAR_operacion[:CSMDD12]="" #Shipping DeadLine (Num Dias). NO MADATORIO.
optionsSAR_operacion[:CSMDD13]="" #Método de Despacho. NO MANDATORIO.
optionsSAR_operacion[:CSMDD14]="" #Customer requires Tax Bill ? (Y/N). NO MANDATORIO.
optionsSAR_operacion[:CSMDD15]="" #Customer Loyality Number. NO MANDATORIO.
optionsSAR_operacion[:CSMDD16]="" #Promotional / Coupon Code. NO MANDATORIO.
#Datos a enviar por cada producto, los valores deben estar separado con #.
optionsSAR_operacion[:CSITPRODUCTCODE]="electronic_good" #Código de producto. CONDICIONAL. Valores posibles(adult_content;coupon;default;electronic_good;electronic_software;gift_certificate;handling_only;service;shipping_and_handling;shipping_only;subscription)
optionsSAR_operacion[:CSITPRODUCTDESCRIPTION]="NOTEBOOK L845 SP4304LA DF TOSHIBA" #Descripción del producto. CONDICIONAL.
optionsSAR_operacion[:CSITPRODUCTNAME]="NOTEBOOK L845 SP4304LA DF TOSHIBA" #Nombre del producto. CONDICIONAL.
optionsSAR_operacion[:CSITPRODUCTSKU]="LEVJNSL36GN" #Código identificador del producto. CONDICIONAL.
optionsSAR_operacion[:CSITTOTALAMOUNT]="1254.40" #CSITTOTALAMOUNT=CSITUNITPRICE*CSITQUANTITY "999999[.CC]" Con decimales opcional usando el puntos como separador de decimales. No se permiten comas, ni como separador de miles ni como separador de decimales. CONDICIONAL.
optionsSAR_operacion[:CSITQUANTITY]="1" #Cantidad del producto. CONDICIONAL.
optionsSAR_operacion[:CSITUNITPRICE]="1254.40" #Formato Idem CSITTOTALAMOUNT. CONDICIONAL.
...........................................................
Existe un ejemplo en la carpeta https://github.com/TodoPago/sdk-ruby/blob/master/TodoPago/test.rb que muestra los resultados de los métodos principales del SDK. Volver a inicio
##Modo test Para utlilizar el modo test se debe pasar un end point de prueba (provisto por TODO PAGO).
conector_test = TodoPagoConector.new(j_header_http_test, j_wsdls_test, end_point_test)
##Status de la Operación La SDK cuenta con un método para consultar el status de la transacción desde la misma SDK. El método se utiliza de la siguiente manera:
optionsOperations=Hash.new
optionsOperations[:MERCHANT]= merchant #merchant es una variable
optionsOperations[:OPERATIONID]= operationid #operationid es una variable (id de la opereacion)
conector.getOperations(optionsOperations)
######Códigos de Estado ######Provincias
Codigos de Estado
IdEstado | Descripción |
---|---|
1 | Ingresada |
2 | A procesar |
3 | Procesada |
4 | Autorizada |
5 | Rechazada |
6 | Acreditada |
7 | Anulada |
8 | Anulación Confirmada |
9 | Devuelta |
10 | Devolución Confirmada |
11 | Pre autorizada |
12 | Vencida |
13 | Acreditación no cerrada |
14 | Autorizada * |
15 | A reversar |
16 | A registar en Visa |
17 | Validación iniciada en Visa |
18 | Enviada a validar en Visa |
19 | Validada OK en Visa |
20 | Recibido desde Visa |
21 | Validada no OK en Visa |
22 | Factura generada |
23 | Factura no generada |
24 | Rechazada no autenticada |
25 | Rechazada datos inválidos |
28 | A registrar en IdValidador |
29 | Enviada a IdValidador |
32 | Rechazada no validada |
38 | Timeout de compra |
50 | Ingresada Distribuida |
51 | Rechazada por grupo |
52 | Anulada por grupo |
Provincias
Solo utilizado para incluir los datos de control de fraude
Provincia | Código |
---|---|
CABA | C |
Buenos Aires | B |
Catamarca | K |
Chaco | H |
Chubut | U |
Córdoba | X |
Corrientes | W |
Entre Ríos | R |
Formosa | P |
Jujuy | Y |
La Pampa | L |
La Rioja | F |
Mendoza | M |
Misiones | N |
Neuquén | Q |
Río Negro | R |
Salta | A |
San Juan | J |
San Luis | D |
Santa Cruz | Z |
Santa Fe | S |
Santiago del Estero | G |
Tierra del Fuego | V |
Tucumán | T |