1. Introducción
A continuación se describe el API disponible para realizar búsqueda de dominios, consulta de disponibilidad, y costes para su integración en sitio web, junto con la posibilidad de realizar la contratación directa del los dominios añadidos al carrito.
La integración se realiza con un API key que ha de ser solicitado a soporte@aspl.es, para ser activado a su usuario PAS (https://pas.aspl.es).
2. Elementos comunes
Todas las APIs disponibles tienen los siguientes elementos comunes:
- Punto de entrada: https://pas.aspl.es
- Tipo de método: POST
- Codificación de los parámetros: application/x-www-form-urlencoded
- Seguridad: todas las llamadas van protegidas con https://
A continuación se muestran las distintas opciones con ejemplos funcionanales basados en curl.
3. Búsqueda y disponibilidad: /domain/search
API de consulta de disponibilidad de dominios sin login necesario:
-
API: /domain/search
-
Parámetros:
- is_api: String : indicación de consumo de API para ajustar mejor la respuesta. Para consumo de API se recomienda ajustar este parámetro a “yes” (ver ejemplo más abajo).
- domain: String : dominio a buscar para disponibilidad o dominio sin extensión para buscar las extensiones genéricas asociadas al dominio.
- api_key: String : llave de API asociada al usuario PAS (https://pas.aspl.es) y dado de alta por el equipo de ASPL. Consultar con soporte@aspl.es para activar esta llave.
-
Respuesta: listado json donde cada elemento de la lista contiene los siguientes atributos:
- sku: código único del tipo de dominio
- domain: dominio concreto localizado en la búsqueda.
- is_available: Boolean: indicación sobre si el dominio está disponible
- is_transferable: Boolean: indicación sobre si el dominio es transferible.
-
price : Coste del registro, sin IVA, y con dos decimales. Este coste es máximo, es decir, el coste nunca superará este valor. Para distribuidores, el coste es habitualmente más bajo (según condiciones de volumen).
El precio se puede consultar con detalle y ajustado al cliente proporcionando el api_key en la llamada, de manear que esta operación permite cargar el perfil con el volumen de precios.
-
Ejemplo: llamada pública sin api_key:
Llamada:
>> curl --header “Content-Type: application/x-www-form-urlencoded” --request POST --data ‘domain=testing-domain.com&is_api=yes’ https://pas.aspl.es/domain/searchRespuesta:
[{“sku”: “552”, “is_transferable”: true, “domain”: “testing-domain.com”, “price”: “yy.yy”, “is_available”: false}] -
Ejemplo: misma llamada pero proporcionando el api_key:
Llamada:
>> curl --header “Content-Type: application/x-www-form-urlencoded” --request POST --data ‘domain=testing-domain.com&is_api=yes&api_key=XXXxxxXX’ https://pas.aspl.es/domain/searchRespuesta:
[{“sku”: “552”, “is_transferable”: true, “domain”: “testing-domain.com”, “price”: “xx.xx”, “is_available”: false}]
4. Activación del api_key
Contacte con soporte@aspl.es para obtener el API key asociado a su cuenta PAS (https://pas.aspl.es).
5. Añadir dominios: /cart/add
La siguiente API permite añadir dominios al carrito asociado al login de usuario activado por el API key. Si no se proporciona el api_key en esta llamada, fallará por no ser capaz de encontrar la sesión. Este API no es pública. Necesita un api_key (a diferencia de otras apis como /domain/search).
-
API: /cart/add
-
Parámetros:
- sku: String : tipo de dominio a añadir al carrito. Este valor se obtiene de la llamada /domain/search
- description: String : nombre base del dominio a añadir al carrito.
- api_key: String : llave de API asociada al usuario PAS (https://pas.aspl.es) y dado de alta por el equipo de ASPL. Consultar con soporte@aspl.es para activar esta llave.
- is_api: String : indicación de consumo de API. Debe estar a “yes” para indicar el uso del api_key.
- accept_conditions : String : indicación de aceptación de condiciones. Al ser un servicio que potencialmente generará una contratación, las condiciones del sku asociado deben ser aceptadas con esta indicación (ver ejemplo más abajo).
-
fixed_count : String : para elementos únicos, como los dominios, hay que dar la indicación de que sólo puede haber registro de dominio con ese mismo nombre ( ver ejemplo más abajo).
Esta llamada no admite modalidad pública. Necesita un api_key para poder generar un carrito y también para localizar el cliente y su plan de precios de distribuidor si corresponde.
-
Respuesta: objeto json indicado estado:
- status: 0/1 indicando si fue correcta (1) la operación o si se produjo algún fallo (0).
- response_text: texto de diagnóstico asociado a cómo finalizó la operación.
-
Ejemplo:
Llamada:
>> curl --header “Content-Type: application/x-www-form-urlencoded” --request POST --data ‘sku=552&description=testing-domain.com&accept_conditions=yes&is_api=yes&api_key=xxxxx&fixed_count=yes’ https://pas.aspl.es/cart/addRespuesta:
{“status”: 1, “response_text”: “552 Item Added To Cart”}En el caso de que se intente añadir de nuevo este objeto único (fixed_count=yes), se recibirá la siguiente respueseta de fallo:
{“status”: 0, “response_text”: “A similar item has been added”}
-
IMPORTANTE: use la siguiente etiqueta [api_testing_call] dentro de la descripción del mensaje para evitar que el producto se registre y produzca activación. Esa etiqueta indica al API que es una llamada de pruebas (api testing call). Ejemplo:
>> curl --header “Content-Type: application/x-www-form-urlencoded” --request POST --data ‘sku=552&description=testing-domain.com [api_testing_call]&accept_conditions=yes&is_api=yes&api_key=xxxxx&fixed_count=yes’ https://pas.aspl.es/cart/add
6. Preparar pedido: /prepare/order
Una vez el carrito está preparado y tiene los elementos que desamos, hay que pasar a preparar el pedido. Esto se realiza con el API /prepare/order.
Este API devuelve un purchase code (código de compra que nos permite finalizar y completar el pedido).
Si no se proporciona el api_key en esta llamada, fallará por no ser capaz de encontrar la sesión. Este API no es pública. Necesita un api_key (a diferencia de otras apis como /domain/search).
-
API: /prepare/order
-
Parámetros:
-
payment_node: String : código único que permite indicar el método de pago que se desea para este pedido. Actualmente, para API, los siguientes códigos están soportados:
- __node_ccc_518 : Por domiciliación bancaria
- __node_bank_transfer_722 : Por transferencia bancaria
- __node_my_usual_payment_method_835 : Mi método de pago habitual
-
api_key: String : llave de API asociada al usuario PAS (https://pas.aspl.es) y dado de alta por el equipo de ASPL. Consultar con soporte@aspl.es para activar esta llave.
-
is_api: String : indicación de consumo de API. Debe estar a “yes” para indicar el uso del api_key.
Esta llamada no admite modalidad pública. Necesita un api_key para poder generar un carrito y también para localizar el cliente y su plan de precios de distribuidor si corresponde.
-
-
Respuesta: objeto json indicado estado:
- status: 0/1 indicando si fue correcta (1) la operación o si se produjo algún fallo (0).
- payment_node: confirmación del método de pago seleccionado.
- total_amount : indicación total del pedido (incluyendo impuestos).
- description : descripción general del pedido.
- purchase_code : código de compra único que nos permitirá completar el pedido en el siguiente paso utilizando el API de confirmación de pedido (/confirm/order).
-
Ejemplo:
Llamada:
>> curl --header “Content-Type: application/x-www-form-urlencoded” --request POST --data ‘payment_node=__node_my_usual_payment_method_835&is_api=yes&api_key=xxxxxx’ https://pas.aspl.es/prepare/orderRespuesta:
{“status”: 1, “payment_node”: “__node_my_usual_payment_method_835”, “total_amount”: “37.99”, “purchase_code”: “aiikLh7J”, “description”: “ASPL PAS, purchase order aiikLh7J (None), for user xxx”}
7. Confirmación de pedido: /confirm/order
Una vez preparado el pedido, y con el identificador único (purchase_order) realizaremos una llamada para confirmar el pedido a este API: /confirm/order.
Si no se proporciona el api_key en esta llamada, fallará por no ser capaz de encontrar la sesión. Este API no es pública. Necesita un api_key (a diferencia de otras apis como /domain/search).
-
API: /confirm/order
-
Parámetros:
-
purchase_code: String : código único de compra generado en el paso anterior (API /purchase/order).
-
api_key: String : llave de API asociada al usuario PAS (https://pas.aspl.es) y dado de alta por el equipo de ASPL. Consultar con soporte@aspl.es para activar esta llave.
-
is_api: String : indicación de consumo de API. Debe estar a “yes” para indicar el uso del api_key.
Esta llamada no admite modalidad pública. Necesita un api_key para poder generar un carrito y también para localizar el cliente y su plan de precios de distribuidor si corresponde.
-
-
Respuesta: 200 OK con los siguientes atributos:
- status: 1/9 indicando si fue correcta (1) la operación o si se produjo algún fallo (0).
- response_text: mensaje de diagnóstico asociado al pedido.
-
Ejemplo:
Llamada:
>> curl --header “Content-Type: application/x-www-form-urlencoded” --request POST --data ‘purchase_code=XxXXxXxx&is_api=yes&api_key=xxxxxx’ https://pas.aspl.es/confirm/orderRespuesta:
200 OK con json con los siguientes arti, y una descripción del error en caso de fallo
{“status”: true, “response_text”: “Order xxxx confirmed OK (api testing call detected). No product was activated for user [xxxx] for this reason”}
8. Siguientes pasos
Cualquier duda con el uso del API, su funcionamiento, o la extensión de otras APIs disponibles, contar con soporte@aspl.es.