¿Qué es una llamada API?

15 de septiembre de 2022

Introducción

Al permitir que dos aplicaciones interactúen, API haga que actividades como navegar y comprar sean rápidas, sin esfuerzo y sin problemas.  

Para usar las API con éxito, los desarrolladores y las empresas deben saber como integrarse con ellos. Cada API viene con documentación de API que describe cuándo y cómo se usa una API. Dicha documentación a menudo incluye el término llamada a la API.

Descubra qué son las llamadas API y cómo usarlas.

¿Qué es una llamada API?

¿Qué es una llamada API?

Una llamada de API (también llamada solicitud de API) es cómo una aplicación cliente y un Punto final API (el punto de acceso a un servidor o programa) comunicarse.

Cada llamada API es iniciada por la aplicación cliente. El proceso consta de los siguientes pasos:

  1. Una aplicación cliente envía una solicitud a un punto final de API.
  2. El extremo de la API pasa la solicitud a la API.
  3. La API realiza la acción solicitada.
  4. El punto final de la API informa a la aplicación cliente sobre el resultado.

Las llamadas a la API se pueden realizar utilizando prácticamente cualquier lenguaje de programación siempre que sea compatible con la API.

Las dos formas básicas de hacer una llamada a la API son:

  • Al solicitar una URL en un navegador web.
  • Realizando una solicitud cURL a través de una terminal.

En ambos casos, las API se comunican con las aplicaciones cliente mediante el protocolo HTTP, lo que significa que utilizan las cinco funciones HTTP básicas, que son:

  1. - Recuperar datos.
  2. PUBLICAR – Crear datos.
  3. PUT – Actualizar los datos existentes.
  4. PARCHE – Actualizar una parte de los datos existentes.
  5. BORRAR - Borrar datos.
Métodos HTTP para solicitudes de API.

Las API REST devuelven un valor para todas las funciones, mientras que las API SOAP solo responden a POST. Sin embargo, los propietarios de API se reservan el derecho de evitar que la API responda a ciertos tipos de solicitudes.

Llamadas API y su relación con los protocolos API

Las API de hoy en día se utilizan para acceder, administrar y manipular grandes cantidades de datos, lo que requiere llamadas de API más complejas.

Las llamadas API complejas se logran a través de protocolos, patrones y mejores prácticas de creación de API establecidos. Algunos de los protocolos API más populares son:

Cómo hacer una llamada a la API

La estructura de una llamada API depende de la tipo de API, estilo arquitectónico y protocolo de comunicación. Los proveedores de API mantienen documentación que explica cómo estructurar una llamada API y enumera las ubicaciones de recursos (puntos finales de URL) para su servicio.

Por ejemplo, las llamadas a la API RESTful que utilizan el protocolo HTTP constan de 5 elementos:

  • Verb − Identifica la función de solicitud HTTP (es decir, GET, POST, DELETE, PUT, PATCH).
  • URI (Uniform Resource Identifier) − El URI identifica la ubicación del recurso en el servidor.
  • Versión HTTP − Indica la versión HTTP (por ejemplo, v1 or v2).
  • Solicitar encabezados − Un encabezado HTTP es un par de nombre y valor que contiene información adicional sobre el recurso o el cliente que inicia la llamada. Esto incluye datos de autorización, métodos de autenticación, tipos de navegador, formatos admitidos por el cliente, etc.
  • Cuerpo de solicitud − El contenido (parámetros) del mensaje de llamada en el formato de datos especificado.

Los siguientes pasos ilustran qué acciones debe realizar un cliente al realizar una llamada a la API.

Paso 1: autenticación y autorización

Los proveedores de API desean proteger los recursos del servidor al autenticar las llamadas a la API antes de autorizar una solicitud. Los recursos del servidor no esenciales a menudo se protegen mediante Autenticación básica; sin embargo, las API que intercambian información confidencial del cliente usan tokens de portador y el OAuth 2.0 estándar para autenticar las llamadas a la API.

Para autenticar llamadas API:

  1. Los clientes deben registrar sus aplicaciones con el proveedor de API.
  2. El proveedor de la API otorga a cada cliente una única llave secreta.
  3. El cliente solicita un token de acceso mediante el envío de una llamada API estructurada que contiene la clave privada al punto final designado por el proveedor.
  4. El cliente recibe un token de acceso generado aleatoriamente. Un token de acceso es una cadena de caracteres que otorga permiso a una aplicación cliente para llamar a una API y acceder a recursos protegidos.
  5. Cada vez que los clientes envían una llamada API; deben proporcionar el token de acceso en el elemento Header.

Paso 2: identifique los puntos finales de la API

Las URL de punto final les dicen a los usuarios de la API dónde enviar las llamadas a la API.

Los proveedores de API intentan definir y agrupar puntos finales para reflejar la estructura lógica de los recursos del servidor. Por lo general, un servicio de API comparte la misma URL base, mientras que el URI del punto final varía para cada recurso.

Por ejemplo, la API de transacción RESTful de CCBill utiliza distintos puntos finales para diferentes acciones que un cliente puede iniciar con sus llamadas a la API.

La URL base de la API RESTful de CCBill es https://api.ccbill.com.

La URL del punto final para generar un token de pago usa el / fichas de pago recurso:

https://api.ccbill.com/payment-tokens/merchant-only

Si un comerciante desea verificar la identidad del cliente antes de crear un token de pago (solicitando un Código CVV2), necesitan usar un punto final diferente:

https://api.ccbill.com/payment-tokens/merchant-only-verify

Luego, el token creado se pasa a un tercer punto final en una solicitud de transacción:

https://api.ccbill.com/transactions/payment-tokens/{payment_token_id}

Este punto final permite a los comerciantes facturar a un cliente.

Los comerciantes deben identificar qué terminal proporciona los servicios que necesitan y seguir la documentación al pie de la letra para que este proceso sea exitoso.

Paso 3: Encabezado de llamada API

Un encabezado de API contiene metadatos de llamadas de API, como tipos de medios aceptables e información de autorización. Por ejemplo, CCBill requiere que los comerciantes proporcionen su token de portador en el encabezado de la solicitud antes de autorizar una solicitud de API:

<?php
$request = new HttpRequest();
$request->setUrl('https://api.ccbill.com/payment-tokens/merchant-only-verify');
$request->setMethod(HTTP_METH_POST);
//Headers begin here
$request->setHeaders(array(
'Cache-Control' => 'no-cache',
'Authorization' => 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJjcmVhdGVfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIl0sImV4cCI6MTUzNzM4MDczNiwiYXV0aG9yaXRpZXMiOlsiTUNOX0FQSV9UT0tFTl9DSEFSR0VSIiwiTUNOX0FQSV9UT0tFTl9DUkVBVE9SIiwiTUNOX0FQSV9BRE1JTiJdLCJqdGkiOiI4YzI2Njg1MC00NjMzLTQzZDMtYjZjOC1lNzIyY2ExNjQ1YTUiLCJjbGllbnRfaWQiOiI1MjE3NjhhYTc1OGQxMWU4YWE2YjAwNTA1NjlkMTU4NSJ9.HRYXZFATkIcI2_LJ1W_xo67IfBnbN9atyYNzyHqseLxYUxzgwBsAV5rNqCixKemOrDIeQLBN4jrwRsBIHDpEvshwBC8XmTodDJzpGmMaU9s1r20RV68X0_d1yTgSDke_Of7VCrVmJRbSuDl7AgsfTqQ1J7nWyu9vcIaER93ms-vadser_Ot9Z68_HAmCJL3DCLpdIFq3PYtBMKKKqXbvhfhSZQZD3b6-aewAnBo0VzpvK6tREqw1rv9_73oAvYcW2aHAj79ILr8viWMM40LyDKMMYOYkneg3hJUQsUVeh9WzztYUJKzERYNXje9fYIGN-eofoLvX7OZJ3eXmIfkrfQ',
'Content-Type' => 'application/json'
));
// Headers end here
$request->setBody('{ "clientAccnum": 900000, "clientSubacc": 0, "customerInfo": { "customerFname": "Tyler", "customerLname": "Thomas", "address1": "Woodland Drive", "address2": "Apt 21", "city": "Tempe", "state": "AZ", "zipcode": "85281", "country": "US", "phoneNumber": "5555555555", "email": "tthomas@xyz.com", "ipAddress": "10.70.60.14", "browserHttpUserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0", "browserHttpAccept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "browserHttpAcceptLanguage": "en-US,en;q=0.5", "browserHttpAcceptEncoding": "gzip, deflate, br" }, "paymentInfo": { "creditCardPaymentInfo": { "cardNum": "4473707989493598", "nameOnCard": "Tyler Thomas", "expMonth": "04", "expYear": "2019", "cvv2": "123" } }, "subscriptionId":900000000000000001, "timeToLive": 30, "validNumberOfUse": 3 }');
try {
$response = $request->send();
echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}
?>

La matriz de encabezado en este ejemplo de PHP evita el almacenamiento en caché del lado del cliente. También requiere que los objetos sigan el formato de archivo estándar abierto JSON (JavaScript Object Notation) y utilicen el aplicación / json tipo de contenido.

Paso 4: Parámetros de llamada de API

El cuerpo de una llamada API contiene un conjunto de parámetros y sus valores correspondientes. La documentación de la API debe enumerar todos los parámetros para cada punto final. También debe proporcionar descripciones de parámetros, qué tipos de datos son aceptables y enfatizar si un parámetro es obligatorio u opcional.

Exploremos los parámetros y sus valores usando el mismo ejemplo de llamada API que el anterior:

<?php
$request = new HttpRequest();
$request->setUrl('https://api.ccbill.com/payment-tokens/merchant-only-verify');
$request->setMethod(HTTP_METH_POST);
$request->setHeaders(array(
'Cache-Control' => 'no-cache',
'Authorization' => 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJjcmVhdGVfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIl0sImV4cCI6MTUzNzM4MDczNiwiYXV0aG9yaXRpZXMiOlsiTUNOX0FQSV9UT0tFTl9DSEFSR0VSIiwiTUNOX0FQSV9UT0tFTl9DUkVBVE9SIiwiTUNOX0FQSV9BRE1JTiJdLCJqdGkiOiI4YzI2Njg1MC00NjMzLTQzZDMtYjZjOC1lNzIyY2ExNjQ1YTUiLCJjbGllbnRfaWQiOiI1MjE3NjhhYTc1OGQxMWU4YWE2YjAwNTA1NjlkMTU4NSJ9.HRYXZFATkIcI2_LJ1W_xo67IfBnbN9atyYNzyHqseLxYUxzgwBsAV5rNqCixKemOrDIeQLBN4jrwRsBIHDpEvshwBC8XmTodDJzpGmMaU9s1r20RV68X0_d1yTgSDke_Of7VCrVmJRbSuDl7AgsfTqQ1J7nWyu9vcIaER93ms-vadser_Ot9Z68_HAmCJL3DCLpdIFq3PYtBMKKKqXbvhfhSZQZD3b6-aewAnBo0VzpvK6tREqw1rv9_73oAvYcW2aHAj79ILr8viWMM40LyDKMMYOYkneg3hJUQsUVeh9WzztYUJKzERYNXje9fYIGN-eofoLvX7OZJ3eXmIfkrfQ',
'Content-Type' => 'application/json'
));
// Parameters begin here
$request->setBody('{ "clientAccnum": 900000, "clientSubacc": 0, "customerInfo": { "customerFname": "Tyler", "customerLname": "Thomas", "address1": "Woodland Drive", "address2": "Apt 21", "city": "Tempe", "state": "AZ", "zipcode": "85281", "country": "US", "phoneNumber": "5555555555", "email": "tthomas@xyz.com", "ipAddress": "10.70.60.14", "browserHttpUserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0", "browserHttpAccept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "browserHttpAcceptLanguage": "en-US,en;q=0.5", "browserHttpAcceptEncoding": "gzip, deflate, br" }, "paymentInfo": { "creditCardPaymentInfo": { "cardNum": "4473707989493598", "nameOnCard": "Tyler Thomas", "expMonth": "04", "expYear": "2019", "cvv2": "123" } }, "subscriptionId":900000000000000001, "timeToLive": 30, "validNumberOfUse": 3 }');
// Parameters end here
try {
$response = $request->send();
echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}
?>

El sistema de CCBill verifica la solicitud y utiliza la información proporcionada por el cliente para crear un token de pago.

Antes de agregar parámetros a una llamada, consulte siempre la documentación de la API adecuada para obtener instrucciones.

Paso 5: Respuesta del servidor API

El servidor de la API responde enviando parámetros estructurados y sus valores correspondientes en función de la solicitud de la API. Un componente común de las respuestas del servidor API son Códigos de estado HTTP. Los códigos HTTP confirman si una solicitud fue exitosa o informan a los clientes de API que una solicitud falló.

Por ejemplo, la creación exitosa de un token de pago con la API RESTful de CCBill devuelve un código HTTP 200 y los siguientes parámetros:

{ "createdDatetime": "datetime-only", "timeToLive": "integer", "originalPaymentTokenId": "string", "validNumberOfUse": "integer", "clientAccnum": "integer", "clientSubacc": "integer", "programParticipationId": "integer", "avsResponse": "string", "paymentTokenId": "string", "paymentInfoId": "string", "cvv2Response": "string", "subscriptionId": "integer" }

Los comerciantes pueden extraer el ID de token de pago cadena y haga una nueva llamada a la API para cobrar al cliente.

Las llamadas API fallidas siempre devuelven un código de estado, sobre el cual el usuario o cliente puede determinar qué salió mal.

Estos son algunos de los códigos de estado HTTP más utilizados y sus significados.

Códigos 1xx

Los códigos HTTP 1xx son códigos de estado temporales que informan al cliente que su solicitud ha sido recibida y está en espera de ser procesada.

La siguiente tabla explica algunos de los códigos 1xx más utilizados:

CódigoSentido
100 ContinuarEl servidor entendió la parte inicial de la solicitud. El cliente puede continuar con la solicitud o ignorar esta respuesta si completó su tarea.
101 protocolos de conmutaciónEl servidor entiende el encabezado de actualización e informa al cliente sobre el protocolo al que está cambiando.
Procesamiento 102El servidor ha aceptado la solicitud pero aún no la ha completado.
103 primeros indiciosEl cliente puede precargar algunos recursos mientras espera una respuesta a la solicitud.

Códigos 2xx

Los códigos 2xx informan al cliente que su solicitud ha tenido éxito, a veces con contexto adicional.

La siguiente tabla proporciona detalles sobre los códigos 2xx más utilizados:

CódigoSentido
200 OKLa solicitud se completó con éxito.
201 creadoEl recurso se ha creado correctamente (para solicitudes POST).
202 aceptadoLa solicitud ha sido recibida pero no ha terminado de procesarse.
204 Sin ContenidoLa solicitud se procesó correctamente, pero no se devolverá ningún contenido como respuesta.

Códigos 3xx

Los códigos 3xx informan al cliente que debe tomar medidas adicionales para su solicitud para ser completada.

Los códigos 3xx más utilizados son los siguientes:

CódigoSentido
300 opciones múltiplesLa solicitud tiene más de una respuesta y el usuario debe elegir una.
Movido permanentemente 301La URL del recurso solicitado se ha cambiado de forma permanente. Esta respuesta va seguida de un campo de encabezado de ubicación que contiene la dirección URL correcta.
302 encontradoLa URL del recurso solicitado se ha cambiado temporalmente. Esta respuesta va seguida de un campo de encabezado de ubicación que contiene la dirección URL correcta.
303 Ver otrosEl recurso solicitado se encuentra bajo otro URI. El usuario debe enviar una solicitud utilizando el método GET al URI correcto.

Códigos 4xx

Los códigos 4xx indican un error en el lado del cliente de la solicitud.

Los códigos 4xx más utilizados son los siguientes:

CódigoSentido
400 Bad RequestEl servidor no entiende la solicitud debido a una sintaxis incorrecta. El cliente debe modificar la solicitud para proceder.
401 no autorizadoLa identidad del cliente es desconocida para el servidor. La solicitud requiere credenciales de autenticación de usuario para completarse.
403 ProhibidaEl servidor conoce la identidad del cliente, pero no se concede acceso.
404 No se ha encontradoNo se puede encontrar el recurso solicitado.
Método 405 no permitidoEl servidor reconoce el método HTTP, pero está deshabilitado para su uso en el recurso solicitado.
408 Tiempo de espera de solicitudEl cliente no pudo enviar una solicitud completa dentro del período de tiempo de espera asignado del servidor.
410 desaparecidoEl recurso solicitado ya no está disponible en ese servidor.
429 Demasiadas solicitudesEl cliente ha enviado demasiadas solicitudes dentro de un marco de tiempo.

Códigos 5xx

Los códigos 5xx indican un error del lado del servidor.

La siguiente tabla explica algunos de los códigos 5xx más utilizados:

CódigoSentido
Error interno del servidor 500El servidor no puede completar una solicitud debido a un problema inesperado.
501 no implementadoEl método HTTP utilizado en la solicitud no es compatible y el servidor no puede gestionarlo.
502 Bad gatewayEl servidor obtuvo una respuesta no válida.
503 Servicio no disponibleEl servidor no puede manejar la solicitud.

Códigos de estado únicos

Además de los códigos de estado HTTP, los servidores pueden configurarse para enviar códigos de respuesta únicos. La información sobre los códigos de respuesta únicos se puede encontrar en la documentación proporcionada por el proveedor de la API.

Llamadas a la API de transacción RESTful de CCBill

La API de pago RESTful de CCBill permite a los comerciantes administrar transacciones mediante llamadas a la API.

Un comerciante debe realizar varias solicitudes de API para que CCBill capture la información de pago y cargue la tarjeta de pago de un cliente.

1. Generar token de portador

La API de transacción RESTful de CCBill utiliza autenticación basada en token de portador y autorización. Antes de acceder a la API, los comerciantes deben registrar su aplicación con CCBill y recibir una identificación de la aplicación del comerciante y una clave secreta.

Los comerciantes proporcionan estas credenciales a un servidor de autorización para generar un token de portador.

URL de punto final

  • https://api.ccbill.com/ccbill-auth/oauth/token

Encabezamiento

  • Tipo de contenido: application / x-www-form-urlencoded
  • Autorización: Básica Merchant_ApplicationID:Merchant_Secret

Solicitud de ejemplo

curl - POST 'https://api.ccbill.com/ccbill-auth/oauth/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic Merchant_ApplicationID:Merchant_Secret ' \
--data-urlencode 'grant_type=client_credentials'

El resultado de esta solicitud es una cadena de datos única (token de portador) que debe proporcionarse en el encabezado de autorización de cada solicitud de API.

Las aplicaciones comerciales tienen acceso hasta que el token de acceso vence o se revoca.

2. Crear ID de token de pago

Los comerciantes pueden usar su token de portador recién creado para generar una identificación de token de pago basada en los datos de pago del cliente.

El punto final para crear una ID de token de pago es:

https://api.ccbill.com/payment-tokens/merchant-only

Una llamada API de ejemplo contiene el siguiente encabezado y parámetros:

<?php
$request = new HttpRequest();
$request->setUrl('https://api.ccbill.com/payment-tokens/merchant-only');
$request->setMethod(HTTP_METH_POST);
$request->setHeaders(array(
'Cache-Control' => 'no-cache',
'Authorization' => 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJjcmVhdGVfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIl0sImV4cCI6MTUzNzM4MDczNiwiYXV0aG9yaXRpZXMiOlsiTUNOX0FQSV9UT0tFTl9DSEFSR0VSIiwiTUNOX0FQSV9UT0tFTl9DUkVBVE9SIiwiTUNOX0FQSV9BRE1JTiJdLCJqdGkiOiI4YzI2Njg1MC00NjMzLTQzZDMtYjZjOC1lNzIyY2ExNjQ1YTUiLCJjbGllbnRfaWQiOiI1MjE3NjhhYTc1OGQxMWU4YWE2YjAwNTA1NjlkMTU4NSJ9.HRYXZFATkIcI2_LJ1W_xo67IfBnbN9atyYNzyHqseLxYUxzgwBsAV5rNqCixKemOrDIeQLBN4jrwRsBIHDpEvshwBC8XmTodDJzpGmMaU9s1r20RV68X0_d1yTgSDke_Of7VCrVmJRbSuDl7AgsfTqQ1J7nWyu9vcIaER93ms-vadser_Ot9Z68_HAmCJL3DCLpdIFq3PYtBMKKKqXbvhfhSZQZD3b6-aewAnBo0VzpvK6tREqw1rv9_73oAvYcW2aHAj79ILr8viWMM40LyDKMMYOYkneg3hJUQsUVeh9WzztYUJKzERYNXje9fYIGN-eofoLvX7OZJ3eXmIfkrfQ',
'Content-Type' => 'application/json'
));
$request->setBody('{ "clientAccnum": 900000, "clientSubacc": 0, "customerInfo": { "customerFname": "Tyler", "customerLname": "Thomas", "address1": "Woodland Drive", "address2": "Apt 21", "city": "Tempe", "state": "AZ", "zipcode": "85281", "country": "US", "phoneNumber": "5555555555", "email": "tthomas@xyz.com", "ipAddress": "10.70.60.14", "browserHttpUserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0", "browserHttpAccept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "browserHttpAcceptLanguage": "en-US,en;q=0.5", "browserHttpAcceptEncoding": "gzip, deflate, br" }, "paymentInfo": { "creditCardPaymentInfo": { "cardNum": "4473707989493598", "nameOnCard": "Tyler Thomas", "expMonth": "04", "expYear": "2019" } }, "subscriptionId":900000000000000001, "timeToLive": 30, "validNumberOfUse": 3 }');
try {
$response = $request->send();
echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}
?>

CCBill también ha creado un Widget avanzado biblioteca que ayuda a los comerciantes a automatizar las solicitudes de tokens de pago. Los comerciantes pueden diseñar su interfaz para llamar al widget y generar tokens de pago.

El widget de JavaScript está alojado en una ubicación accesible para los comerciantes, lo que les permite consultar e importar el widget en sus sitios web.

La función principal del widget avanzado es crear el token de pago. Esta función devuelve una salida de token de pago creada o un mensaje de error si el token de pago no se puede crear con las entradas proporcionadas.

3. Identificación del token de pago de cargo

La llamada a la API para cobrar a un cliente debe contener el token del portador en el encabezado de la solicitud y el ID del token de pago en el cuerpo de la solicitud.

La URL de solicitud HTTP para cobrar a un cliente (sin Autenticación 3DS) es:

https://api.ccbill.com/transactions/payment-tokens/{payment_token_id}

Los comerciantes deben proporcionar la identificación del token de pago como Parámetro URI.

Un ejemplo de llamada a la API para cobrar un token de pago del cliente contiene los siguientes parámetros:

<?php
$request = new HttpRequest();
$request->setUrl('https://api.ccbill.com/transactions/payment-tokens/01047ed6f3b440c7a2ccc6abc1ad0a84');
$request->setMethod(HTTP_METH_POST);
$request->setHeaders(array(
'Cache-Control' => 'no-cache',
'Authorization' => 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJjcmVhdGVfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIl0sImV4cCI6MTUzNzM4MDczNiwiYXV0aG9yaXRpZXMiOlsiTUNOX0FQSV9UT0tFTl9DSEFSR0VSIiwiTUNOX0FQSV9UT0tFTl9DUkVBVE9SIiwiTUNOX0FQSV9BRE1JTiJdLCJqdGkiOiI4YzI2Njg1MC00NjMzLTQzZDMtYjZjOC1lNzIyY2ExNjQ1YTUiLCJjbGllbnRfaWQiOiI1MjE3NjhhYTc1OGQxMWU4YWE2YjAwNTA1NjlkMTU4NSJ9.HRYXZFATkIcI2_LJ1W_xo67IfBnbN9atyYNzyHqseLxYUxzgwBsAV5rNqCixKemOrDIeQLBN4jrwRsBIHDpEvshwBC8XmTodDJzpGmMaU9s1r20RV68X0_d1yTgSDke_Of7VCrVmJRbSuDl7AgsfTqQ1J7nWyu9vcIaER93ms-vadser_Ot9Z68_HAmCJL3DCLpdIFq3PYtBMKKKqXbvhfhSZQZD3b6-aewAnBo0VzpvK6tREqw1rv9_73oAvYcW2aHAj79ILr8viWMM40LyDKMMYOYkneg3hJUQsUVeh9WzztYUJKzERYNXje9fYIGN-eofoLvX7OZJ3eXmIfkrfQ',
'Content-Type' => 'application/json'
));
$request->setBody('{ "clientAccnum":900123, "clientSubacc":10, "initialPrice": 9.99, "initialPeriod": 10, "recurringPrice": 15.00, "recurringPeriod": 30, "rebills": 99, "currencyCode": 840, "lifeTimeSubscription": false, "createNewPaymentToken": false, "passThroughInfo": [ { "name": "val1", "value": "val2" } ] }');
try {
$response = $request->send();
echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}
?>

La carga también desencadena una notificación HTTP POST de webhook, lo que permite al comerciante capturar la información de la transacción.

4. Leer la identificación del token de pago

Los comerciantes pueden obtener datos sobre un token de pago enviando su ID al siguiente extremo de la API:

https://api.ccbill.com/transactions/payment-tokens/{paymentTokenId}

El ID del token de pago se proporciona como Parámetro URI:

<?php
$request = new HttpRequest();
$request->setUrl('https://api.ccbill.com/payment-tokens/01047ed6f3b440c7a2ccc6abc1ad0a84');
$request->setMethod(HTTP_METH_GET);
$request->setHeaders(array(
'Cache-Control' => 'no-cache',
'Authorization' => 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW1fcGFydGljaXBhdGlvbiIsIm1vZGlmeV9wcm9ncmFtX3BhcnRpY2lwYXRpb24iXSwiZXhwIjoxNTM2MjcwMTE2LCJhdXRob3JpdGllcyI6WyJNQ05fQVBJX1RPS0VOX0NIQVJHRVIiLCJNQ05fQVBJX1RPS0VOX0NSRUFUT1IiLCJNQ05fQVBJX0FETUlOIl0sImp0aSI6IjlkZjQ5M2NjLTNmNDAtNDdmYS04ZjIwLWFiYWM5NTljOWFjYyIsImNsaWVudF9pZCI6IjUyMTc2OGFhNzU4ZDExZThhYTZiMDA1MDU2OWQxNTg1In0.e6pUqftnUlJcaz1rsxsoCBcitPvnAwAwp1ZiBl77ht0dsVRBUg3vOvruGzxELjVPKWFnu8NFXEJKEhoQXkZuqn2AiiM1u9mOJUtyQ9c1KgEMq6yTCQ_QIxGsrYcwkkr_B2yw5p_q6KHCcaAAAq4HGkKdHbo8C1GHvApD0Q7DVWRmie265Da6ln4Y1_wFHADKYTktCtLhBr4rv-5bmWHy25GKPZgIHViMrJmwSKqG2kC60JEYDrOsZsajhicbKPytXDw9X0Z6PcYPyRCkpz5I1FjsXJmIJnSKLwG8fPC2AOYPqF4p30BHLaCxvtS29jSbpfZj1W0pt708ipZSOlwHAw'
));
try {
$response = $request->send();
echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}
?>

Conclusión

Ya sabe qué son las llamadas API y cómo funcionan. El objetivo de la información proporcionada es aclarar el concepto de las API y las llamadas a las API, así como permitir una comprensión más sencilla de la documentación de las API.

Acerca del autor.
Mirjana Fodora
Mirjana Fodora es escritora técnica con experiencia en diseño y desarrollo web. A pesar de ser uno de los miembros más jóvenes de CCBill, sus habilidades de escritura y aptitud técnica la ayudan a producir contenido fáctico, informativo y fácil de usar. Si no está escribiendo o aprendiendo una nueva habilidad, la encontrará atracándose de fintech y videos de marketing o juegos.
Hable con un especialista en asistencia comercial