Pago en dos pasos
Autoriza una tarjeta y captura fondos una vez que se complete el pedido.
Es posible que prefieras obtener una autorización de tarjeta mientras se ensambla o procesa el pedido del cliente en tu sitio web. El pago en dos pasos primero autoriza la tarjeta y, cuando se envía el pedido, le pides a capturar el pago.
Certificación PCI
Solo clientes con PCI-DSS La certificación puede gestionar la información de identificación personal de las tarjetas. Este método está disponible para los comerciantes que hayan firmado un acuerdo especial con Rapyd
Puedes encontrar los métodos de pago específicos que aceptarás y los campos obligatorios correspondientes que los clientes deben rellenar en la sección Cómo funciona.

Al usar su sitio web o aplicación, un cliente agrega muebles al carrito de compras y realiza el pago.
Tu sitio web muestra los métodos de pago disponibles.
El cliente selecciona «tarjeta».
Su sitio web solicita los detalles de la tarjeta.
El cliente proporciona los detalles y hace clic Pague ahora.

El back-end de tu sitio web solicita a Rapyd la autorización de la tarjeta.
Rapyd procesa la solicitud de autorización y devuelve una confirmación y un identificador de pago.
Notificas al cliente que la compra se ha realizado correctamente.

Preparas y empacas tu producto para su entrega.
El back-end de su sitio web le pide a Rapyd que capture el pago, especificando el ID de pago.
Rapyd procesa la solicitud de captura y devuelve el estado actualizado de la transacción.
Los siguientes diagramas de secuencia de mensajes describen cómo se intercambia la información entre Rapyd, el comerciante y la red de tarjetas.
Pago con tarjeta en dos pasos
Decide qué métodos de pago aceptarás para que tu cliente pueda especificar sus métodos de pago en tu página de pago.
Utilice Listar los métodos de pago por país con los siguientes parámetros:
EE. UU. y USD se muestran como ejemplo de país y moneda.
Descripción de los parámetros de consulta
Parámetro de consulta | Descripción |
|---|---|
país | Entrar NOSOTROS como código de país. |
moneda | Entrar USD como código de divisa. |
Determine los campos obligatorios para el método de pago tal y como se describe en Campos obligatorios para obtener el método de pago.
Crea un monedero empresarial. ¡Corre Crear billetera. Usa la identificación que obtienes en la respuesta. Para obtener más información, consulte Creación de una billetera Rapyd .
Cuando su cliente paga los muebles, usted solicita una autorización de tarjeta para el pago de 115,65 USD (dólares estadounidenses).
Para eso, utilizarás Crear pago con los siguientes parámetros:
Descripción de los parámetros corporales
Parámetro corporal | Descripción |
|---|---|
cantidad | Entrar 115.65 como importe del pago. |
moneda | Entrar USD como código de divisa. |
capturar | Entrar falso como el valor. Esto le indica a Rapyd que cree solo una autorización de tarjeta. El pago autorizado se capturará más adelante. |
monedero electrónico | Introduce la «identificación» de la cartera que recibiste cuando creaste la cartera empresarial de Four Star Furniture en tu sandbox. Para los fines de esta lección de casos de uso, estamos usando ewallet_8915a7fdeff7be5b7c1a7fa5f0b81414, que es el identificador de monedero que hemos creado en nuestra zona de pruebas. |
método_pago | Introduzca un objeto 'payment_method' con los siguientes campos:
|
Le pides a Rapyd que procese el pago de 115,65 USD (dólares estadounidenses) del cliente como autorización de tarjeta.
Solicitud
// Request URL: POST https://sandboxapi.rapyd.net/v1/payments // Message body: { "amount": 115.65, "currency": "USD", "payment_method": { "type": "us_debit_visa_card", "fields": { "number": "4111111111111111", "expiration_month": "10", "expiration_year": "25", "cvv": "123", "name": "Test User" } }, "ewallet": "ewallet_8915a7fdeff7be5b7c1a7fa5f0b81414", "capture": false }
.NET Core
using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string[] args) { try { var requestObj = new { amount = 115.65, capture = false, currency = "USD", ewallet = "ewallet_8915a7fdeff7be5b7c1a7fa5f0b81414", payment_method = new { type = "us_visa_card", fields = new { number = "4111111111111111", expiration_month = "10", expiration_year = "25", cvv = "123", name = "John Doe", } }, }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/payments", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } }
JavaScript
const makeRequest = require('<path-to-your-utility-file>/utilities').makeRequest; async function main() { try { const body = { amount: 115.65, currency: 'USD', payment_method: { type: 'us_visa_card', fields: { number: '4111111111111111', expiration_month: '10', expiration_year: '20', cvv: '123', name: 'John Doe' } }, ewallet: 'ewallet_8915a7fdeff7be5b7c1a7fa5f0b81414', capture: false }; const result = await makeRequest('POST', '/v1/payments', body); console.log(result); } catch (error) { console.error('Error completing request', error); } }
PHP
<?php $path = $_SERVER['DOCUMENT_ROOT']; $path .= "/<path-to-your-utility-file>/utilities.php"; include($path); $body = [ "amount" => "115.65", "currency" => "USD", "ewallet" => "ewallet_8915a7fdeff7be5b7c1a7fa5f0b81414", "payment_method" => [ "type" => "us_visa_card" ] ]; try { $object = make_request('post', '/v1/payments', $body); var_dump($object); } catch (Exception $e) { echo "Error: $e"; } ?>
Pitón
from pprint import pprint from utilities import make_request payment_body = { "amount": 115.65, "currency": "USD", "payment_method": { "type": "us_visa_card", "fields": { "number": "4111111111111111", "expiration_month": "10", "expiration_year": "25", "cvv": "123", "name": "John Doe" } }, "ewallet": "ewallet_452c8cd682f347b4abee9bbee04eac03", "capture": False } create_payment_response = make_request(method='post', path='/v1/payments', body=payment_body) pprint(create_payment_response)
Echemos un vistazo a la respuesta.
Respuesta
{ "status": { "error_code": "", "status": "SUCCESS", "message": "", "response_code": "", "operation_id": "7b0f7ce9-ed39-4eb5-ae1d-4210ad865072" }, "data": { "id": "payment_fc109dbe553a223401d86156e3adea8c", "amount": 0, "original_amount": 115.65, "is_partial": false, "currency_code": "USD", "country_code": "us", "status": "ACT", "description": "", "merchant_reference_id": "", "customer_token": "cus_bd1338e2b5980deb6e3eae9eb785fdce", "payment_method": "card_164f3fd242091eba09f4b8c1f4a75597", "expiration": 0, "captured": false, // ... "paid": false, "paid_at": 0, // ... "ewallet_id": "ewallet_8915a7fdeff7be5b7c1a7fa5f0b81414", "ewallets": [ { "ewallet_id": "ewallet_8915a7fdeff7be5b7c1a7fa5f0b81414", "amount": 115.65, "percent": 100, "refunded_amount": 0 } ], "payment_method_options": {}, "payment_method_type": "us_debit_visa_card", "payment_method_type_category": "card", // ... } }
El datos la sección de esta respuesta muestra:
El pago
ides payment_fc109dbe553a223401d86156e3adea8c. Cuando ejecutes este ejemplo en tu propia zona de pruebas, obtendrás un ID diferente, que necesitarás para un paso posterior en este caso prácticocantidades 0, lo que indica que todavía no se ha recibido ningún dinero.cantidad_originales 115.65código_monedaes USDEl
estadoes ACTUAR (activo). Esto indica que el pago aún no se ha capturado.El
customer_tokenes cus_bd1338e2b5980deb6e3eae9eb785fdceque es un identificador de cliente único únicamente para esta transacción. Como la solicitud no especificaba un cliente existente guardado en el sistema, se trata al cliente como un cliente invitado.El
payment_methodes un identificador de método de pago único únicamente para esta transacción.capturadoes falso porque se trata únicamente de una autorización de tarjeta.
Has preparado y empaquetado tu pedido vendido. Antes de enviarlo, debes capturar el pago con tarjeta que se autorizó anteriormente.
Para eso, utilizarás Capture Payment con los siguientes parámetros:
Descripción de los parámetros de ruta
Parámetro de ruta | Descripción |
|---|---|
pago | Introduce el «identificador» de pago que recibiste cuando creaste el pago en tu entorno de pruebas. Para los fines de esta lección de casos de uso, estamos usando payment_fc109dbe553a223401d86156e3adea8c, que es el identificador de pago que hemos creado en nuestra zona de pruebas. |
Descripción de los parámetros corporales
Parámetro corporal | Descripción |
|---|---|
cantidad | Entrar 115.65 como importe del pago. |
Como está capturando la cantidad total que se autorizó anteriormente, el importe el parámetro es opcional.
Le pides a Rapyd que capture todos los pagos de 115,65 USD (dólares estadounidenses) de tu cliente.
Solicitud
// Request URL: POST https://sandboxapi.rapyd.net/v1/payments/payment_fc109dbe553a223401d86156e3adea8c/capture // Message body: { "amount": 115.65 }
.NET Core
using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string[] args) { try { string payment = "payment_9d59d89e3ce3519647f0d22f5d37e23c"; var requestObj = new { amount = 115.65, }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", $"/v1/payments/{payment}/capture", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } }
JavaScript
const makeRequest = require('<path-to-your-utility-file>/utilities').makeRequest; async function main() { try { const body = { amount: 115.65 }; const result = await makeRequest( 'POST', '/v1/payments/payment_fc109dbe553a223401d86156e3adea8c/capture', body ); console.log(result); } catch (error) { console.error('Error completing request', error); } }
PHP
<?php $path = $_SERVER['DOCUMENT_ROOT']; $path .= "/<path-to-your-utility-file>/utilities.php"; include($path); try { $capturePayment = make_request('post', '/v1/payments/payment_fc109dbe553a223401d86156e3adea8c'); var_dump($capturePayment); } catch (Exception $e) { echo "Error: $e"; } ?>
Pitón
from pprint import pprint from utilities import make_request capture_payment_body = { "amount": 115.65 } capture_payment_response = make_request(method='post', path='/v1/payments/payment_fc109dbe553a223401d86156e3adea8c/capture', body=capture_payment_body) pprint(capture_payment_response)
Echemos un vistazo a la respuesta.
Respuesta
{ "status": { "error_code": "", "status": "SUCCESS", "message": "", "response_code": "", "operation_id": "8053816d-3d99-47cd-a216-ccc35e38ccce" }, "data": { "id": "payment_fc109dbe553a223401d86156e3adea8c", "amount": 115.65, "original_amount": 115.65, "is_partial": false, "currency_code": "USD", "country_code": "us", "status": "CLO", "description": "", "merchant_reference_id": "", "customer_token": "cus_bd1338e2b5980deb6e3eae9eb785fdce", "payment_method": "card_164f3fd242091eba09f4b8c1f4a75597", "expiration": 0, "captured": true, // ... "paid": true, "paid_at": 1590485097, // ... "ewallet_id": "ewallet_8915a7fdeff7be5b7c1a7fa5f0b81414", "ewallets": [ { "ewallet_id": "ewallet_8915a7fdeff7be5b7c1a7fa5f0b81414", "amount": 115.65, "percent": 100, "refunded_amount": 0 } ], "payment_method_options": {}, "payment_method_type": "us_debit_visa_card", "payment_method_type_category": "card", // ... } }
El datos la sección de esta respuesta muestra que el estado ha cambiado a CLO (cerrado) y el cantidad ha cambiado al importe total de la compra.