e-Commerce Template for Clarion
Mercado Pago / Mercado Libre
Documentación:
¿Cómo
Instalar el Template?
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.
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:
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