Skip to content

maleal/SDK-.NET

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

sdk-net

Modulo para conexión con gateway de pago Todo Pago

######Instalación ######Versiones de .net soportadas ######Generalidades ######Uso ######[Datos adicionales para prevencion de fraude] (#datosadicionales) ######Ejemplo ######Modo test ######Status de la operación ######Tablas de referencia

Instalación

Se debe descargar la última versión del SDK desde el botón Download ZIP, branch master. Una vez descargado y descomprimido, se debe agregar a las librerias del proyecto y en el codigo se debe agregar siguiente using.

using TodoPagoConnector;

[Volver a inicio](#inicio)

Versiones de .net soportadas

La versión implementada de la SDK, esta testeada para versiones desde .net 4.X C#.
Volver a inicio

Generalidades

Esta versión soporta únicamente pago en moneda nacional argentina (CURRENCYCODE = 32). Volver a inicio

Uso

####1.Inicializar la clase correspondiente al conector (TodoPago).

  • crear un String con el Endpoint suministrados por Todo Pago
String endpoint = "https://developers.todopago.com.ar/services/";
  • crear un Dictionary<String, String> con los http header suministrados por Todo Pago
var headers = new Dictionary<String, String>();
headers.Add("Authorization", "PRISMA 912EC803B2CE49E4A541068D495AB570");
  • crear una instancia de la clase TodoPago
TPConnector tpc = new TPConnector(endpoint, headers);	

####2.Solicitud de autorización En este caso hay que llamar a sendAuthorizeRequest(). Este metodo devuelve Dictionary<string, object>

var res = connector.SendAuthorizeRequest(request, payload);		

datos propios del comercio

request y payload deben ser un Dictionary<string, string> con la siguiente estructura:

var request = new Dictionary<string, string>();
request.Add(SECURITY, "1234567890ABCDEF1234567890ABCDEF");
request.Add(SESSION, String.Empty);
request.Add(MERCHANT, "305");
request.Add(URL_OK, "www.google.com.ar");
request.Add(URL_ERROR, "www.google.com.ar");
request.Add(ENCODING_METHOD, "XML");

var payload = new Dictionary<string, string>();
payload.Add("MERCHANT", "305");
payload.Add("OPERATIONID", "01");
payload.Add("CURRENCYCODE", "032");
payload.Add("AMOUNT", "54");
payload.Add("EMAILCLIENTE", "prueba@visa.com.ar");		

####3.Confirmación de transacción. En este caso hay que llamar a getAuthorizeAnswer(), que retorna Dictionary<string, object>, enviando como parámetro un Dictionary<String, String> como se describe a continuación.

var request = new Dictionary<String, String>();
request.Add(SECURITY, "1234567890ABCDEF1234567890ABCDEF");
request.Add(SESSION, null);
request.Add(MERCHANT, "305");
request.Add(REQUESTKEY, "8496472a-8c87-e35b-dcf2-94d5e31eb12f");
request.Add(ANSWERKEY, "8496472a-8c87-e35b-dcf2-94d5e31eb12f");

var res = connector.GetAuthorizeAnswer(request);

*Importante:El campo AnswerKey se adiciona en la redireccion que se realiza a alguna de las direcciones ( URL ) epecificadas en el servicio SendAurhorizationRequest, esto sucede cuando la transaccion ya fue resuelta y es necesario regresar al Site para finalizar la transaccion de pago, tambien se adiciona el campo Order, el cual tendra el contenido enviado en el campo OPERATIONID. para nuestro ejemplo: http://susitio.com/paydtodopago/ok?Order=27398173292187&Answer=1111-2222-3333-4444-5555-6666-7777

Este método devuelve el resumen de los datos de la transacción.

Volver a inicio

Datos adicionales para control de fraude

Parámetros Adicionales en el post inicial comunes a todos los rubros:
//Example
var parameters = new Dictionary<string, string>();		
request.Add("CSBTCITY", "Villa General Belgrano"); //Ciudad de facturación, MANDATORIO.		
parameters.Add("CSBTCOUNTRY", "AR");//País de facturación. MANDATORIO. Código ISO.
parameters.Add("CSBTCUSTOMERID", "453458"); //Identificador del usuario al que se le emite la factura. MANDATORIO. No 
			//puede contener un correo electrónico.		
parameters.Add(CSBTIPADDRESS", "192.0.0.4"); //IP de la PC del comprador. MANDATORIO.		
parameters.Add(CSBTEMAIL", "decidir@hotmail.com"); //Mail del usuario al que se le emite la factura. MANDATORIO.
parameters.Add(CSBTFIRSTNAME", "Juan");//Nombre del usuario al que se le emite la factura. MANDATORIO.		
parameters.Add(CSBTLASTNAME", "Perez");//Apellido del usuario al que se le emite la factura. MANDATORIO.
parameters.Add(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.		
parameters.Add(CSBTPOSTALCODE", " C1010AAP");//Código Postal de la dirección de facturación. MANDATORIO.
parameters.Add(CSBTSTATE", "B");//Provincia de la dirección de facturación. MANDATORIO. Ver tabla anexa de provincias.
parameters.Add(CSBTSTREET1", "Cerrito 740");//Domicilio de facturación (calle y nro). MANDATORIO.		
parameters.Add(CSBTSTREET2", "Piso 8");//Complemento del domicilio. (piso, departamento). NO MANDATORIO.
parameters.Add(CSPTCURRENCY", "ARS");//Moneda. MANDATORIO.		
parameters.Add(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)		
parameters.Add(CSMDD7", "");// Fecha registro comprador(num Dias). NO MANDATORIO.		
parameters.Add(CSMDD8", "Y"); //Usuario Guest? (Y/N). En caso de ser Y, el campo CSMDD9 no deberá enviarse. NO 
			//MANDATORIO.		
parameters.Add(CSMDD9", "");//Customer password Hash: criptograma asociado al password del comprador final. NO 	
			//MANDATORIO.		
parameters.Add(CSMDD10", "");//Histórica de compras del comprador (Num transacciones). NO MANDATORIO.		
parameters.Add(CSMDD11", "");//Customer Cell Phone. NO MANDATORIO.		

Parámetros Adicionales en el post inicial para el rubro RETAIL
//Example
var parameters = new Dictionary<string, string>();		
parameters.Add("CSSTCITY", "rosario");//Ciudad de enví­o de la orden. MANDATORIO.		
parameters.Add("CSSTCOUNTRY", "");//País de envío de la orden. MANDATORIO.		
parameters.Add("CSSTEMAIL", "jose@gmail.com");//Mail del destinatario, MANDATORIO.		
parameters.Add("CSSTFIRSTNAME", "Jose");//Nombre del destinatario. MANDATORIO.		
parameters.Add("CSSTLASTNAME", "Perez");//Apellido del destinatario. MANDATORIO.		
parameters.Add("CSSTPHONENUMBER", "541155893737");//Número de teléfono del destinatario. MANDATORIO.		
parameters.Add("CSSTPOSTALCODE", "1414");//Código postal del domicilio de envío. MANDATORIO.		
parameters.Add("CSSTSTATE", "D");//Provincia de envío. MANDATORIO. Son de 1 caracter		
parameters.Add("CSSTSTREET1", "San Martín 123");//Domicilio de envío. MANDATORIO.		
parameters.Add("CSMDD12", "");//Shipping DeadLine (Num Dias). NO MADATORIO.		
parameters.Add("CSMDD13", "");//Método de Despacho. NO MANDATORIO.		
parameters.Add("CSMDD14", "");//Customer requires Tax Bill ? (Y/N). NO MANDATORIO.		
parameters.Add("CSMDD15", "");//Customer Loyality Number. NO MANDATORIO. 		
parameters.Add("CSMDD16", "");//Promotional / Coupon Code. NO MANDATORIO. 		
	//Retail: datos a enviar por cada producto, los valores deben estar separado con #:		
parameters.Add("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)		
parameters.Add("CSITPRODUCTDESCRIPTION", "NOTEBOOK L845 SP4304LA DF TOSHIBA");//Descripción del producto. CONDICIONAL.		
parameters.Add("CSITPRODUCTNAME", "NOTEBOOK L845 SP4304LA DF TOSHIBA");//Nombre del producto. CONDICIONAL.	
parameters.Add("CSITPRODUCTSKU", "LEVJNSL36GN");//Código identificador del producto. CONDICIONAL.		
parameters.Add("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.		
parameters.Add("CSITQUANTITY", "1");//Cantidad del producto. CONDICIONAL.		
parameters.Add("CSITUNITPRICE", "1254.40");//Formato Idem CSITTOTALAMOUNT. CONDICIONAL.	

Volver a inicio

Ejemplo

Existe un ejemplo en la carpeta https://github.com/TodoPago/SDK-.NET/tree/master/Ejemplo que muestra los resultados de los métodos principales del SDK.

Volver a inicio

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:

TPConnector tpc = new TPConnector(endpoint, headers);
String merchant = "305";
String operationID = "01";
var res = connector.GetStatus(merchant, operationID);// Merchant es el id site y operationID es el id operación que se envio en el array a través del método sendAuthorizeRequest() 

El siguiente método retornara el status actual de la transacción en Todopago, y devuelve List<Dictionary<string, object>>. Volver a inicio

Tablas de Referencia

######Códigos de Estado ######Provincias

Codigos de Estado

IdEstadoDescripción
1Ingresada
2A procesar
3Procesada
4Autorizada
5Rechazada
6Acreditada
7Anulada
8Anulación Confirmada
9Devuelta
10Devolución Confirmada
11Pre autorizada
12Vencida
13Acreditación no cerrada
14Autorizada *
15A reversar
16A registar en Visa
17Validación iniciada en Visa
18Enviada a validar en Visa
19Validada OK en Visa
20Recibido desde Visa
21Validada no OK en Visa
22Factura generada
23Factura no generada
24Rechazada no autenticada
25Rechazada datos inválidos
28A registrar en IdValidador
29Enviada a IdValidador
32Rechazada no validada
38Timeout de compra
50Ingresada Distribuida
51Rechazada por grupo
52Anulada por grupo

Provincias

Solo utilizado para incluir los datos de control de fraude

ProvinciaCódigo
CABAC
Buenos AiresB
CatamarcaK
ChacoH
ChubutU
CórdobaX
CorrientesW
Entre RíosR
FormosaP
JujuyY
La PampaL
La RiojaF
MendozaM
MisionesN
NeuquénQ
Río NegroR
SaltaA
San JuanJ
San LuisD
Santa CruzZ
Santa FeS
Santiago del EsteroG
Tierra del FuegoV
TucumánT
[Volver a inicio](#inicio)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages