DATOS INICIALES PARA LA INTEGRACIÓN

(Varios locales a la vez)

Por cada local que necesite crear órdenes se debe crear el local con la siguiente información (Pantalla creada especialmente para esta integración):

https://app.fly-deliver.com/#/login

Usuario: xxxxxxx@xxxxxxxxxxx.com (Creada por el usuario)

Contraseña: XXXXXXXXX (Creada por el usuario, pueden cambiarla en cualquier momento)

Fly Delivery ofrece PERSONALMENTE un código único de inscripción especial para tener el acceso a esta sección.

Nombre del local: Nombre que identifica al local o establecimiento

Teléfono de contacto con whatsapp

Ciudad: Elegir una de las que ya el sistema ofrece

Url de Ubicación: URL de Google maps donde se encuentra ubicado el local

 

 

Adicional se puede enviar la URL del Webhook (Opcional) que se utiliza para las notificaciones de cambio de estados de las órdenes puedan visualizarse en su propio sistema y notificar a sus usuarios.

AUTENTICACIÓN

Con el objetivo de evitar que se realicen operaciones anónimas en nombre de alguna empresa se debe solicitar autenticación antes de realizar una petición al servicio web, donde el sistema solicita un usuario y una contraseña y devuelve un token, el cual debe ser enviado en todas las peticiones que se realicen para otorgar acceso sobre los datos de una empresa, de no enviarse se rechazará la solicitud.

 

URL: https://api.dotsy.club/api/TokenAuth/Authenticate

Verbo: HttpPost

Método: Authenticate

Parámetros:

Entrada/Salida
TIPO
Descripción

ENTRADA

objecto

Objeto JSON que contiene la información del usuario que solicita acceso.

Descripción de los datos del parámetro:

 

Nombre
TIPO
Descripción
PRE - ESTABLECIDO
obligatoirio

userNameOrEmailAddress

texto

Usuario o correo electrónico

xxxx@xxxxxx.com

SI

password

texto

Contraseña

xxxxxxxxx

SI

EJEMPLOS:

Ejemplo de invocación:

  «userNameOrEmailAddress»: «usuario», 

  «password»: «Contraseña»

}

RESPUESTA DE AUTENTICACIÓN

Tipo de Respuesta: Objeto JSON

Atributos:

 

Nombre
TIPO
Descripción

accessToken

string

Token generado y que debe ser utilizado en próximas peticiones

encryptedAccessToken

string

Token encriptado

expireInSeconds

listado

Tiempo en segundos en que expira el token

userId

objeto

Identificador del usuario

Nota: El campo accessToken corresponde al dato mas importante en la respuesta de autenticación, ya que es el token que debe ser enviado en todas las peticiones que requieran autenticación, para que el sistema garantice el acceso y otorgue los permisos correspondientes al usuario que realice la solicitud.

EJEMPLOS:

 

Ejemplo de una respuesta exitosa:

 

  «accessToken»:

«eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZWERTRETYW4», 

  «encryptedAccessToken»:    «eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJCJodHRwOi4bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZWERTRETYW4», 

  «expireInSeconds»: 86400, 

  «userId»: 1

}

  

Ejemplo de una respuesta fallida:

 

  «result»: null, 

  «success»: false, 

  «error»: {   

  «code»: 0,   

  «message»: «¡Error de inicio de sesion!»,   

  «details»: «Usuario o contraseña invalido» 

  }, 

  «unAuthorizedRequest»: false

}

 

 

Para las siguientes invocaciones al servicio web se debe enviar el token obtenido como un parámetro más en los HEADERS de la petición con el nombre Authorization:

 

Authorization: Bearer 

 

CREAR ORDEN

URL: https://api.dotsy.club/api/order/create-order

Verbo: HttpPost

Parámetros a enviar en el body de la petición:

 

ENTRADA/SALIDA
TIPO
Descripción

ENTRADA

objecto

Objeto JSON que contiene la información para crear una orden.

 

Descripción de los datos del parámetro:

 

NOMBRE
TIPO
Descripción
Formato
obligatoirio

storeId

número

Identificador del local (Solicitar al administrador)

 

SI

salePrice

decimal

Precio de venta

xxxxxxxxxx001

SI

deliveryPrice

decimal

Precio de envío

xxx

SI

fullName

texto

Nombre completo del cliente

xxx

SI

phoneNumber

texto

Teléfono del cliente

49 dígitos

NO

homeUrl

 

URL de Google maps del domicilio del cliente

}

SI

EJEMPLOS:

 

Ejemplo de invocación

 

  «storeId»: 2, 

  «salePrice»: 10, 

  «deliveryPrice»: 1.50, 

  «fullName»: «Pedro Pablo Perez», 

  «phoneNumber»: «+593 9xxxxx1589», 

  «homeUrl»: «https://maps.google.com/maps?q=-78.xxxxx22,-1.2xxxx7»

}

 

Ejemplo de una respuesta exitosa:

 

{   

  «orderId»: 1

}

 

Ejemplo de una respuesta fallida:

 

  «result»: null, 

  «success»: false, 

  «error»: {   

  «code»: 0,   

  «message»: «Local no encontrado»,   

  «details»: null 

  }, 

  «unAuthorizedRequest»: false

}

 

 

CONSULTAR ESTADO DE UNA ORDEN

URL: https://api.dotsy.club/api/order/get-status?orderId={order_id}

Verbo: HttpGet

 

Ejemplo de invocación

 

https://api.dotsy.club/api/order/get-status?orderId=53

 

Ejemplo de una respuesta exitosa:

 

{   

  «orderId»: 1,   

  «status»: 3

}

 

Estados de una orden:

Estado
Descripción

0

Cancelada

1

Creada

2

Recibida por el Vendedor o Local

3

Esperando Transporte

4

Retirando Pedido

5

En camino (hacia la ubicación del cliente)

6

7

Completada

Motorizado llegó al local

 

 Ejemplo de una respuesta fallida

 

{   

  «result»: null,   

  «success»: false,   

  «error»: {     

  «code»: 0,     

  «message»: » No existe una órden con el ID 1″,     

  «details»: null   

   },   

  «unAuthorizedRequest»: true

}

 

WEBHOOK PARA NOTIFICAR ESTADO DE UNA ORDEN

URL: Se debe proporcionar al realizar la integración

Verbo: HttpPost

Descripción de los datos a enviar:

 

NOMBRE
TIPO
Descripción
Formato
obligatoirio

storeId

número

Identificador del local o establecimiento

 

SI

orderId

número

Identificador o número de la orden

 

SI

status

número

Estado de la orden

Ver listado de estados en la sección anterior

SI

  

Ejemplo de invocación

 

{  

  «storeId»: 1,  

  «orderId»: 2,  

  «status»: 6

},