e-Commerce Template for Clarion

Mercado Pago / Mercado Libre

 

Documentación:

 

¿Cómo Instalar el Template?

 

  1. Ejecutar el instalador SetupeCommerce.exe.

 

 

  1. Ingresar tus datos, con el Número de serie asignado.

 

 

  1. Una vez finalizado, ya quedará registrado el Template en el Clarion listo para usar.

 

  1. Para comenzar a utilizar el Template en una aplicación, deberá ir a las extensiones Globales, seleccionar Insert, y buscar como está en la imagen.

 

 

 

 

 

  1. Aquí se deberá completar los datos:

a)- Port Webserver, será el puerto donde estará escuchando el servidor que viene incorporado en el template;

               b)- URL para crear una aplicación en Mercado Pago, donde se especificarán datos como: Notifications URL, Redirect URI, etc.

 

https://www.mercadopago.com.ar/developers/es/solutions/payments/custom-checkout/mercadopago-connect#create-app-connect

 

              c)- Notifications CallBack URL, es donde va a devolver el servidor de Mercado Pago, al Servidor del Template, cuando se realice algún tipo de operación, la que será registrada en la tabla NotificationsMP.TPS

 

 

La misma operatoria realizar para Mercado Libre

 

1.    Configurar en MercadoLibre las Apps   https://applications.mercadolibre.com.ar/list?platform=ml

 

 

 

2.    Aquí se deberá completar los datos que se obtengan luego de haber configurado Mercado Pago y Mercado Libre;

3.    Activate Server Notifications, pondrá activo el servidor al inicio de su aplicación, y estará a la escucha de las notificaciones;

4.    Debug opciones, permite habilitar que muestre los mensajes, los progress de Mercado Pago o Mercado Libre, y el Server Notifications que estará a la escucha.

 

 

 

 

 

 

 

 

Nombre de la Clase “eCommerce”

 

Propiedades de la clase

Propiedades de la Clase / Respuesta de los métodos

 

AccessToken                       Respuesta del Token de MercadoPago

AccessTokenML                 Respuesta del Token de MercadoLibre

 

Métodos / Configuración para Mercado Pago y Mercado Libre

 

SuccessUrl                          Url de Pago Exitoso

PendingUrl                         Url de Pago Pendiente

FailureUrl                            Url de Pago Fallido

 

NotificationUrl                   Url donde llegarán las notificaciones de Pago por ejemplo : http://miServer.com/Nofications en todos los casos debe poner al final /Notifications    

 

RedirectUri                         Url de redireccionamiento para la validación y autorización de Mercado Libre. Para trabajo local se recomienda http://LocalHost:88, siempre y cuando la propiedad PortWebServer sea igual a 88, sino, sería http://localhost:(NuevoValorAsigando).

 

PortWebServer                  Puerto de escucha de la propiedad NotificactionUrl, por defecto en 88. Se recomienda dejarlo ahí.

 

PageLink                             Respuesta del método CreatePayment, devuelve el link de Mercado Pago, del pago creado para poder realizar la cobranza.

 

ItemId                                  Respuesta del método CreateItemML, devuelve el Id del Item creado en Mercado Libre.

     

                                                    Método para Mercado Pago

 

Auth                                       (STRING pClientID, STRING pClientSecret)

 

ECommerceMP.Auth(ClientId,ClientSecret)             

 

Glo:AccessToken = ECommerceMP.AccessToken

 

Descripción:

·         Solicita el Token de Acceso para Mercado Pago.

·         Devuelve la respuesta en la propiedad AccessToken.

 

CreatePayment                  (STRING pAccessToken, STRING pTitle, STRING pId, STRING pDescription, STRING pQuantity, STRING pUnitPrice, STRING pExternalReference)

 

 

ECommerceMP.CreatePayment(Glo:AccessToken, Titulo, Id, Descripción, Cantidad, PrecioUnitario, ReferenciaExterna)

 

Glo:PageLink = ECommerceMP.PageLink

 

Descripción:

 

 

CreateDebt                         PROCEDURE(STRING pAccessToken, STRING pPayerEmail, STRING pBackUrl, STRING pReason, STRING pExternalReference, STRING pFrecuency, STRING pFrecuencyType, STRING pAmount, STRING pStartDate, STRING pEndDate)

 

ECommerceMP.CreateDebt(Glo:AccessToken, EmailCliente, BackUrl, Motivo, ReferenciaExterna, FrecuenciaPago, FrecuenciaTipo, Monto, FechaInicio, FechaFin)

 

Glo:PageLink = ECommerceMP.PageLink

 

Descripción:

 

 

 

  1. Creas una preferencia de pago recurrente.
  2. Muestras el botón o link a tu cliente.
  3. Tu cliente autoriza la suscripción.
  4. Recibes las notificaciones de los pagos.

UrlConfiguration                           PROCEDURE(STRING pSuccess, STRING pFailure, STRING pPending, STRING pNotificationUrl, STRING pRedirectUri, BYTE pPort)

 

 

 

 

GetBalance                                      PROCEDURE(STRING pAccessToken)

 

 

ECommerceMP.GetBalance(Glo:AccessToken)

 

Descripción:

 

 

 

                                              METODOS PARA MERCADO LIBRE

 

AuthML                               PROCEDURE(STRING pClientID, STRING pClientSecret, STRING pUserId, STRING pPassword, STRING pRedirectUri)

 

ECommerceMP.AuthML(ClientId,ClientSecret, UserId, Password, RedirectUri)            

 

 

Glo:AccessTokenML = ECommerceMP.AccessTokenML

 

Descripción:

·         Solicita el Token de Acceso para Mercado Libre.

·         Devuelve la respuesta en la propiedad AccessTokenML.

 

 

CreateItemML          PROCEDURE(STRING pTitle,STRING pDescription,STRING pQuantity,STRING pUnitPrice,STRING pWarranty,STRING pUrlImage,<STRING pOfficialStore>,<STRING pOfficialStoreId>,<STRING pSKU>,<STRING pCategoryId>,<STRING pBuyingMode>,<STRING pListingTypeId>,<STRING pCondition>,<STRING pYoutubeId>,<STRING pShippingPickup>,<STRING pShippingFree>)

 

ECommerceMP.CreateItemML(AccessTokenML, Title, Description, Quantity, UnitPrice, Warranty, UrlImage, OfficialStore, OfficialStoreId)

 

·         OfficialStore          Sí es TRUE, se debe indicar el OfficialStoreId; ambos son parámetros optativos.

 

 

Glo:ItemML = ECommerceMP.ItemML

 

Descripción:

·         Solicita la creación del ítem para  Mercado Libre.

·         Devuelve la respuesta en la propiedad ItemML.

 

 

CreateItemVariationsML      PROCEDURE(STRING pTitle, STRING pDescription, STRING pCategoryId, STRING pUnitPrice, STRING pBuyingMode, STRING pListingTypeId, *QUEUE pAttributeQ, STRING pVprice, *QUEUE pVariationsQ,*QUEUE pPicturesQ, <STRING pOfficialStore>,<STRING pOfficialSotreId>)

 

 

UpdateItemML                      PROCEDURE(STRING pAccessToken, STRING pItemId, STRING pTitle, STRING pQuantity, STRING pUnitPrice, STRING pWarranty, STRING pUrlImage)

 

ECommerceMP.UpdateItemML(AccessTokenML, ItemId, Title, Quantity, UnitPrice, Warranty, UrlImage)

 

Glo:ItemML = ECommerceMP.ItemML

 

Descripción:

·         Solicita la modificación del ítem, donde podrá modificar los datos enviados  para  Mercado Libre.

·         Devuelve la respuesta en la propiedad ItemML.

 

 

UpdateTextItemML          PROCEDURE(STRING pAccessToken, STRING pItemId, STRING pText)

 

ECommerceMP.UpdateTextItemML(AccessTokenML, ItemId, Text)

 

Glo:ItemML = ECommerceMP.ItemML

 

Descripción:

·         Solicita la modificación del Texto del  ítem para  Mercado Libre.

·         Devuelve la respuesta en la propiedad ItemML.

 

 

UpdateStatusItemML       PROCEDURE(STRING pAccessToken,STRING pItemId, STRING pStatus)

 

ECommerceMP.UpdateStatusItemML(AccessTokenML, ItemId, Status)

 

Glo:ItemML = ECommerceMP.ItemML

 

Descripción:

·         Solicita la modificación del Status del  ítem para  Mercado Libre.

·         Devuelve la respuesta en la propiedad ItemML.

 

 

GetCategoriesML     PROCEDURE()

 

ECommerceMP.GetCategoriesML()

 

Descripción:

·         Solicita las listas de categorías y devuelve en json.

 

PredictorCategories      PROCEDURE(STRING pTitle,<STRING pCategoryFrom>,<STRING pPrice>,<STRING pSellerId>)

 

Respuesta=ECommerceMP.PredictorCategories(Iphone 5’)

 

Descripción:

·         Predice las posibles categorías y devuelve en json.

 

GetNotifications      PROCEDURE(STRING pResource, STRING pAccessToken)

 

Respuesta=ECommerceMP.GetNofications(pResource,GLO:AccessTokenML)

 

Descripción:

·         Obtiene el recurso solicitado y devuelve en json.

 

 

Request               PROCEDURE(STRING pUrl, <STRING pPost>,STRING pAction,<STRING pHeader>)

 

Respuesta=ECommerceMP.Request (pUrl,,’GET’)

 

Descripción:

·         Se puede enviar cualquier recurso de API y devuelve en json.

 

GetMerchantOrders     PROCEDURE(STRING pOrderId, pNew=0)

 

pNew=0 Utiliza la versión antigua de la API;

pNew=1 Utiliza la versión de la nueva API;

 

Respuesta=ECommerceMP.GetMerchantOrders(OrderId,1)

 

Descripción:

·         Obtiene los datos del MerchantOrder y devuelve en json.

 

GetShipments     PROCEDURE(STRING pId, STRING pOption)

 

GetShipments:None

GetShipments:Options

GetShipments:Items

GetShipments:Costs

GetShipments:LeadTime

GetShipments:History

GetShipments:Payments

 

Respuesta=ECommerceMP.GetShipments(Id)

 

Descripción:

·         Obtiene los distintos tipos de Shipments y devuelve en json.

 

SplitShipments     PROCEDURE(STRING pId, STRING pReason, STRING pDescription, STRING pOrderId)

 

 

Respuesta=ECommerceMP.SplitShipments(Id,Reason,Description,OrderId)

 

Descripción:

·         Realiza un Split del Shipment.

 

 

 

UTILIZANDO EL eCommerceSpooler

 

Descripción:

 

Esta herramienta está diseñada para que Ud. Pueda desde cualquier aplicación utilizar eCommerceSpooler, por lo que, para poder ejecutar cualquier metodo y/ propiedad, deberá hacer de la siguiente forma, a modo de ejemplo:

 

Las configuraciones iniciales se guardan en el archivo eCommerceSpooler.INI

 

[SERVER]

 

PORT=88

NOTIFICATIONS=http://localhost:88/Notifications

REDIRECTURI=http://localhost:88

SUCCESS=http://localhost:88/Success

FAILURE=http://localhost:88/Failure

PENDING=http://localhost:88/Pending

 

Ejemplo para solicitar el AccessToken Mercado Pago

 

Glo:ClientId='76352483222690746'

Glo:ClientSecret='HW3r33OzZ4qansBNKcpPe1EOSahsf1dxXZa'

 

 

Ejemplo para crear un Link de Cobranza Mercado Pago

 

 

SendRequest(CreateItem,CLIP(Glo:AccessToken)&',PAGO,'&GLO:ST.MakeGuid()&',PAGO FACTURA X,1,700,MOVIMIENTOCLIENTE CODIGO_MCLIENTE')

 

 

 

Leer Respuesta

 

Lee la respuesta sin espera.

Resultado=GetAnswer()

 

ó

 

Lee la respuesta realizando una espera hasta que el resultado se encuentre disponible y luego muestra el mensaje en pantalla.

 

ShowGetAnswer()

 

Ó

 

Lee la respuesta realizando una espera hasta que el resultado se encuentre disponible y lo envía por debugView; También devuelve resultado.

 

 

Resultado=DebugGetAnswer()

 

En éste caso devolverá el link de cobranza, para éste ejemplo.

 

En donde, Req:Method, se solicitará el método a utilizar, en Req:Parameters, los parámetros, tal cual está explicado e indicado más arriba, Req:Read=0, significa que se envía por primera vez; una vez que el Spooler lo lea, lo pondrá en 1 y grabará su respuesta en Req:Answer, que dependiendo del método solicitado, será la respuesta posible que obtendrá.

 

            Como metodología, se recomienda utilizar:

·         Req:Read=0 para decirle que es un comando nuevo;

·         Req:Read=1 contesta el Spooler (Dato leído con respuesta);

·         Req:Read=2 para decirle que la respuesta fue leída;

 

 

Varios:

Para solucionar los posibles errores de JavaScript que pueda mostrar el navegador interno de la aplicación, deberá realizar lo siguiente:

 

1) Abrir el Regedit

2) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION


Agregar un DWORD con el nombre de eCommerceSpooler.exe, (por las dudas utilizar case sensitive);

Con el valor de 2AF8

2) HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION

 

Agregar un DWORD con el nombre de eCommerceSpooler.exe, (por las dudas utilizar case sensitive)

Con el valor de 2AF9