Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-11-2016
fabianmk fabianmk is offline
Miembro
 
Registrado: jul 2004
Posts: 38
Poder: 0
fabianmk Va por buen camino
MercadoPago y RadStudio XE3

Hola. Tengo un Punto de Venta desarrollado con RadStudio XE3 / Firebird 2.5 (Windows XP/7/8.1) desearia integrar el pago de Tarjetas de Credito/Debito a travez de MercadoPago. Ademas tengo los teclados programables con lectora de banda magnetica y con Impresoras Fiscales Epson TM-U220AF para imprimir los boucher de tarjeta.
Que experiencia tienen al respecto? Y si alguien sabe como seria para darme un orientacion o si tiene un ejemplo como se podria hacer la integracion?
Desde ya muchas gracias.
Saludos

Última edición por fabianmk fecha: 09-11-2016 a las 21:49:23.
Responder Con Cita
  #2  
Antiguo 09-11-2016
fabianmk fabianmk is offline
Miembro
 
Registrado: jul 2004
Posts: 38
Poder: 0
fabianmk Va por buen camino
Vivo en Argentina y si conocen alguna otra opcion recomendable seria bueno escucharla
Responder Con Cita
  #3  
Antiguo 10-11-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Al parecer todas las API de Mercado Libre se pueden acceder mediante REST. Lamentablemente no hay, a menos no que yo sepa, alguna solucion o SDK ya hecho, y hay que implementar todo a pulmon

Lo bueno es que la documentacion es razonablemente buena. Este es el sitio especifico para Mercado Pago

Tambien le pegaria una ojeada este articulo de Mercado Libre, Build your SDK, si bien es para la API de Mercado Libre y no Mercado Pago, supongo que la parte de autorizacion y autenticacion y el protocolo en general va a ser muy similar

En mi firma hay un link a un repositorio en GitHub donde empece a desarrollar la API de Mercado Libre. Apenas esta en pañales pero si queres le podes pegar un vistazo. El proceso de autenticacion esta casi terminado
Responder Con Cita
  #4  
Antiguo 12-05-2018
softarg softarg is offline
Miembro
 
Registrado: may 2018
Posts: 16
Poder: 0
softarg Va por buen camino
Hola Fabianmk. Estoy exactamente en la misma situacion que vos con MercadoPago. Lograste avanzar con el tema?
Responder Con Cita
  #5  
Antiguo 15-05-2018
(MAJ) (MAJ) is offline
Miembro
 
Registrado: abr 2007
Posts: 71
Poder: 17
(MAJ) Va por buen camino
En realidad no es muy complicado poder utilizar las api de mercado pago, las estuve viendo, y son llamadas que con indy tranquilamente podes hacerlo, incluso las ultimas versiones de delphi ya vienen con un trio de componentes rest que te simplifican aun mas la vida, lo que tenes que hacer es ver cual api es la que querés utilizar hacer la llamada al servidor pasando los datos que requiera la api y esperar la respuesta, en la respuesta te dice si la transacción fue aceptada o rechazada, obviamente si no querés introducir los datos manualmente tenes que capturarlos del lector de bandas magneticas.
Responder Con Cita
  #6  
Antiguo 02-03-2019
Chaja Chaja is offline
No confirmado
 
Registrado: ago 2004
Ubicación: Mar del Plata
Posts: 238
Poder: 0
Chaja Va por buen camino
Hola.... Me llamo luis soy de Mar del plata. Pudistes avanzar en algo con esto de mercado pago? Yo uso por ahora xe5 pero si tenes o para orientarne estaria agradecido
Responder Con Cita
  #7  
Antiguo 20-12-2019
xebas123 xebas123 is offline
Registrado
 
Registrado: dic 2019
Posts: 4
Poder: 0
xebas123 Va por buen camino
Hola colegas, tengo hecha una integración a mercadolibre y mercadopago con Delphi XE. Estoy usando una vesión modificada de superobject para convertir de json a clases y viceversa y la última versión de Indy. Contactenme y les doy una mano.
Saludos, Sebas
Responder Con Cita
  #8  
Antiguo 25-12-2019
hsbelli72 hsbelli72 is offline
Registrado
 
Registrado: dic 2019
Posts: 4
Poder: 0
hsbelli72 Va por buen camino
hola xsebas123. por favor podrias compartir un breve ejemplo de como usaste la api de mercado pago en delphi. lo necesito para una aplicacion mobile en delphi que estoy desarrollando. Gracias!


saludos
Responder Con Cita
  #9  
Antiguo 31-12-2019
xebas123 xebas123 is offline
Registrado
 
Registrado: dic 2019
Posts: 4
Poder: 0
xebas123 Va por buen camino
Durante la semana que viene publico los pasos.

Saludos
Responder Con Cita
  #10  
Antiguo 31-12-2019
hsbelli72 hsbelli72 is offline
Registrado
 
Registrado: dic 2019
Posts: 4
Poder: 0
hsbelli72 Va por buen camino
muchas gracias!

saludos
Responder Con Cita
  #11  
Antiguo 11-01-2020
hsbelli72 hsbelli72 is offline
Registrado
 
Registrado: dic 2019
Posts: 4
Poder: 0
hsbelli72 Va por buen camino
Cita:
Empezado por xebas123 Ver Mensaje
Durante la semana que viene publico los pasos.

Saludos

Hola como estas?. Cuando podras publicar los pasos para usar la Api del MercadoPago?
Saludos
Responder Con Cita
  #12  
Antiguo 16-01-2020
xebas123 xebas123 is offline
Registrado
 
Registrado: dic 2019
Posts: 4
Poder: 0
xebas123 Va por buen camino
Pasos para integrar MercadoPago y Mercadolibre con Delphi XE1, XE2 y espero que XE3

Para integrar mi aplicación Delphi XE/XE2 con MercadoLibre/MercadoPago yo seguí estos pasos.
Parece que aún no soy digno de postear links, armadlos vosotros.

Ingredientes:
-Indy versión Indy10_5461 o superior (buscar IndyProject Indy10Installation)
-OpenSSL versión (buscar indy fulgan barra SSL)
-ISuperObject tuneado (github |xebas123|superobject)
-JsonToDelphiClass 0.65 (PKGeorgiev|Delphi-JsonToDelphiClass|releases)

Configuraciones:
-ISuperObject:
Tuve que tocar ISuperObject para que me funque como yo quería.
Por defecto, al convertir un TObject a json lista las todos los "fields" que no es lo mismo que properties, sino que son todas las variables de la clase.
Esto me sirve, lo cambié para que trabaje solo sobre las Properties.
En teoría XSuperObject (otro proyecto de sourceforge) funcionaría bien, pero sólo es para XE2 en adelante y yo uso principalmente XE1.

-Uso de JsonToDelphiClass:
Ajuste del Json:
Los campos que pueden venir como "null" tienen que ser string en la clase que vayamos a generar y en todo caso se agregan funciones para obtener lo que se necesite necesitamos (ej: datetimes, boolean o números).
Usar Json Simples, si hay un array, que tenga un solo elemento (así no repite clases delphi)
No puede haber null ni arrays vacíos en el json de ejemplo. Sacarlos, o convertirlos en array de strings o info dummy.

Usando la aplicación:
1- Pegar a la derecha el json válido!
2- Presionar Visualize para armar el arbol a la izquierda.
3- El arbol permite renombrar las clases (al menos la Root conviene renombrarla).
También permite renombrar los tipos de dato (pero todo termina con Class) yo prefiero hacer busca/reemplaza en el .pas final.
Hay algunos "extended" que en realidad son long o longword. de nuevo, ojo que si son opcionales puede que haya que ponerlos como string.
4- [opcional] Ingresar el nombre de la unit
5- Presionar PreviewUnit
6- MUY IMPORTANTE: el botón Save no hace nada!!! hay que copiar el texto y guardarlo en un .pas
7- Abrir la Unit y ajustarla para que use ISuperObject modificado por mi. (ver sección de ISuperObject)
7a- Cambiar referencia a Rest.Json por SuperObject
7b- Los métodos "ToJsonString" se cambian por exactamente esto:
Result := Self.ToJson().AsJSon(false, false);
7c- Los métodos "FromJsonString" se cambian por exactamente esto:
Result := Self.FromJson(AJsonString);

8- Las fechas vienen como string con formato 2017-11-04T12:51:51-04:00, para obtener una fecha delphi hay que:
8a- Agregar funciones tipo GetFechaCreacion en cada clase y dentro poner:
if not ISO8601DateToDelphiDateTime( created_at , Result) then Result := 0;
8b- sino, hay que usar esa función en cada lugar que se necesite.
8c- Algo similar para las funciones Setters.

9- Con el .pas acomodar nombres de clases, sacar clases repetidas.

-Indy:
Se puede instalar o se puede dejar en un directorio a mano.
Para XE y XE2 no es posible instalarlo porque hay dependencias en el core de Delphi, conviene descomprimirlo en algún directorio y configurar el proyecto para que Search Path referencie al directorio donde hayamos dejado los .dcu (luego de haber compilado todo el paquete de Indy).

Inicializando componentes:
Código Delphi [-]
    FIdHTTP1 := TIdHTTP.Create(nil);
    FIdSSLIOHandlerSocketOpenSSL1 := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
    FIdCompressorZLib1 := TIdCompressorZLib.Create(nil);

    FIdHTTP1.AllowCookies := True;
    FIdHTTP1.Request.ContentLength := -1;
    FIdHTTP1.Request.ContentRangeEnd := -1;
    FIdHTTP1.Request.ContentRangeStart := -1;
    FIdHTTP1.Request.ContentRangeInstanceLength := -1;
    FIdHTTP1.Request.Accept := 'application/json';
    FIdHTTP1.Request.ContentType := 'application/json';
    FIdHTTP1.Request.AcceptEncoding := 'gzip';
    FIdHTTP1.Request.BasicAuthentication := True;
    FIdHTTP1.Request.UserAgent := 'Mozilla/3.0 (compatible; Indy Library)';
    FIdHTTP1.Request.Ranges.Units := 'bytes';
    FIdHTTP1.HandleRedirects := False;    //OJO Si es true algunos PUT pueden fallar y va a loopear 15 veces para nada
    FIdHTTP1.HTTPOptions := [hoForceEncodeParams];

    FIdSSLIOHandlerSocketOpenSSL1.Port := 0;
    FIdSSLIOHandlerSocketOpenSSL1.DefaultPort := 0;
    FIdSSLIOHandlerSocketOpenSSL1.SSLOptions.Mode := sslmUnassigned;
    FIdSSLIOHandlerSocketOpenSSL1.SSLOptions.VerifyMode := [];
    FIdSSLIOHandlerSocketOpenSSL1.SSLOptions.VerifyDepth := 0;
    FIdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method  := sslvTLSv1_2;
    FIdSSLIOHandlerSocketOpenSSL1.SSLOptions.Mode := sslmUnassigned;
    FIdSSLIOHandlerSocketOpenSSL1.OnStatus := .(...);  //muy util para ver hasta dónde llega con SSL cuando hay errores.

    Result.FIdHTTP1.IOHandler := Result.FIdSSLIOHandlerSocketOpenSSL1;
    {$IFNDEF VER230}
    Result.FIdHTTP1.Compressor := Result.FIdCompressorZLib1; //En Delphi XE 2 (VER230) falla el descompresor.
    {$ENDIF}
//    Result.FIdHTTP1.OnWorkEnd := Result.IdHttp1WorkEnd; //Esto sirve para obtener el mensaje real que llegó antes del parseo de códigos de error de Indy

function xxxx.GETSample(const PaymentId: cardinal): string;
var
  reqURL, rsp: string;
  rspStream: TMemoryStream;
begin
    reqURL := 'aca va la url segura de mercadopago /v1/payments/' + IntToStr(PaymentId) + '?access_token=' + ACCESS_TOKEN
    if FIdHTTP1.Compressor <> nil then begin
        rsp := FIdHTTP1.Get(reqURL);
    end else begin
        rspStream := TMemoryStream.Create; //stream comprimido de respuesta
        try
            FIdHTTP1.Get(reqURL, rspStream);
            rsp := UngzipStream(rspStream);
        finally
            rspStream.Free;
        end;
    end;
    SetLastResult(rsp);

    Result := rsp;
end;

Este String de respuesta se convierte en clase de Delphi usando:
Código Delphi [-]
TMiClaseDeMercadoPagoParaPayment.FromJsonString(rsp);

Código Delphi [-]
function xxxx.UngzipStream(srcStream: TStream): string;
var
  strStream: TStringStream;
  deco : TZDecompressionStream;
begin
    srcStream.Position := 0;
    strStream := TStringStream.Create;
    deco := nil;
    try
        //Resulta que no siempre viene comprimido, verificamos
        if Pos('Content-Encoding: gzip', FIdHTTP1.Response.RawHeaders.Text) < 1 then begin
            strStream.LoadFromStream(srcStream);
        end else begin
            deco := TZDecompressionStream.Create(srcStream, 31); //stream para descomprimir, el 31 es para que se de cuenta que es gzip
            strStream.LoadFromStream(deco); //a medida que va copiando va descomprimiendo, very cheto
        end;
        Result := strStream.DataString;
    finally
        strStream.Free;
        if deco <> nil then deco.Free;
    end;
end;

Recomendación:
atrapar globalmenet las excepciones y loguear especialmente las EIdHTTPProtocolException
Código Delphi [-]
    if e is EIdHTTPProtocolException then
       Logueo( EIdHTTPProtocolException(e).ErrorMessage );

Otros:
También tengo integrado MercadoLibre.
Si necesitan algunos tips para obtener el bendito token, me avisan y posteo.
También tengo info de qué funciona y qué no para buscar pagos.
No integré mucho más que buscar buscar pagos, pero dado que la comunicación (ida y vuelta de jsons) funciona, no debería ser problemático.


Saludos

Última edición por Casimiro Notevi fecha: 16-01-2020 a las 18:57:38.
Responder Con Cita
  #13  
Antiguo 16-01-2020
xebas123 xebas123 is offline
Registrado
 
Registrado: dic 2019
Posts: 4
Poder: 0
xebas123 Va por buen camino
Integración con MP

Cita:
Empezado por fabianmk Ver Mensaje
Hola. Tengo un Punto de Venta desarrollado con RadStudio XE3 / Firebird 2.5 (Windows XP/7/8.1) desearia integrar el pago de Tarjetas de Credito/Debito a travez de MercadoPago. Ademas tengo los teclados programables con lectora de banda magnetica y con Impresoras Fiscales Epson TM-U220AF para imprimir los boucher de tarjeta.
Que experiencia tienen al respecto? Y si alguien sabe como seria para darme un orientacion o si tiene un ejemplo como se podria hacer la integracion?
Desde ya muchas gracias.
Saludos
Como comentaba en el post anterior, lo básico para integrar las API de MP estarían ahi. De ser necesario se puede hacer un server con Indy para recibir los requests desde MP o ML.
Obviamente para que MP/ML puedan avisarte de algo es necesario que tengas una IP o URL pública (ej. para recibir el callback desde ML)
Responder Con Cita
  #14  
Antiguo 16-01-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Puedes escribir enlaces simplemente quitando alguna letra, ejemplo: ttp, htt, htp, etc.
Y lo que sí puedes y debes es poner las etiquetas para código.
Gracias.


Responder Con Cita
  #15  
Antiguo 16-01-2020
hsbelli72 hsbelli72 is offline
Registrado
 
Registrado: dic 2019
Posts: 4
Poder: 0
hsbelli72 Va por buen camino
Excelente Aporte!.
Muchas Gracias.
Responder Con Cita
  #16  
Antiguo 16-01-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
He añadido las etiquetas para código.
Gracias por compartirlo
Responder Con Cita
  #17  
Antiguo 17-02-2022
balger balger is offline
Miembro
 
Registrado: may 2011
Posts: 30
Poder: 0
balger Va por buen camino
Cita:
Empezado por (MAJ) Ver Mensaje
En realidad no es muy complicado poder utilizar las api de mercado pago, las estuve viendo, y son llamadas que con indy tranquilamente podes hacerlo, incluso las ultimas versiones de delphi ya vienen con un trio de componentes rest que te simplifican aun mas la vida, lo que tenes que hacer es ver cual api es la que querés utilizar hacer la llamada al servidor pasando los datos que requiera la api y esperar la respuesta, en la respuesta te dice si la transacción fue aceptada o rechazada, obviamente si no querés introducir los datos manualmente tenes que capturarlos del lector de bandas magneticas.
Hola Gente.
Me toco. Tengo que integrar MP en el sistema, utilizando D10.3.3.
Estoy queriendo utilizar REST debugger para establece la conexión primaria y generar los complemente. Pero no estoy teniendo muy clara la utilización con la autenticación. Creo que hay que utilizar OAUTH2.

Alguien me podrá dar una mano. Gracias
Responder Con Cita
  #18  
Antiguo 22-02-2022
softarg softarg is offline
Miembro
 
Registrado: may 2018
Posts: 16
Poder: 0
softarg Va por buen camino
MercadoPago

Hola gente alguien utilizo MercadoPago4D ?

Parece estar bastante avanzado.
ttps://github.com/bravesoftdz/MercadoPago4D

Saludos Francisco
Responder Con Cita
  #19  
Antiguo 22-02-2022
balger balger is offline
Miembro
 
Registrado: may 2011
Posts: 30
Poder: 0
balger Va por buen camino
Cita:
Empezado por softarg Ver Mensaje
Hola gente alguien utilizo MercadoPago4D ?

Parece estar bastante avanzado.
ttps://github.com/bravesoftdz/MercadoPago4D

Saludos Francisco
Lo reviso y luego comento. Gracias.
La verdad es que busque por todos lados y no habia encontrado nada. evidentemente no busque nada bien.

Gracias nuevamente
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 18:08:18.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi