Guardar método de pago
Para guardar un método de pago para uso futuro, debes generar un paymentToken al crear o confirmar el pago y, a continuación, almacenarlo en tu servidor. Este proceso se denomina habitualmente tokenización.
La tokenización protege los datos sensibles sustituyéndolos por un equivalente no sensible, conocido como token. El token no tiene significado ni valor externo. Es una referencia —o identificador— que, a través de un sistema de tokenización, apunta a los datos sensibles. Este proceso recopila de forma segura la información sensible de la tarjeta y evita el robo de datos.
1. Genera el token de pago
Al crear un pago Del lado del servidor
- cURL
- Node.js
- PHP
curl --request POST 'https://api.monei.com/v1/payments' \
--header 'Authorization: pk_test_3c140607778e1217f56ccb8b50540e00' \
--header 'Content-Type: application/json' \
--data-raw '{
"amount": 110,
"currency": "EUR",
"orderId": "14379133960355",
"generatePaymentToken": true,
"callbackUrl": "https://example.com/checkout/callback",
"completeUrl": "https://example.com/checkout/complete"
}'
const {Monei} = require('@monei-js/node-sdk');
const monei = new Monei('pk_test_36cf3e8a15eff3f5be983562ea6b13ec');
monei.payments.create({
amount: 110,
currency: 'EUR',
orderId: '14379133960355',
generatePaymentToken: true,
callbackUrl: 'https://example.com/checkout/callback',
completeUrl: 'https://example.com/checkout/complete'
});
$monei = new Monei\MoneiClient('pk_test_36cf3e8a15eff3f5be983562ea6b13ec');
$monei->payments->create([
'amount' => 110,
'currency' => 'EUR'
'orderId' => '14379133960355',
'generatePaymentToken' => true,
'callbackUrl' => 'https://example.com/checkout/callback',
'completeUrl' => 'https://example.com/checkout/complete'
]);
Consulta todos los parámetros de solicitud disponibles.
Para obtener el token de pago para uso futuro sin cobrar a tu cliente, crea un pago con los siguientes parámetros:
{
"amount": 0,
"currency": "EUR",
"orderId": "14379133960355",
"transactionType": "VERIF",
"generatePaymentToken": true,
"callbackUrl": "https://example.com/checkout/callback",
"completeUrl": "https://example.com/checkout/complete"
}
Al confirmar un pago Del lado del servidor
- cURL
- Node.js
- PHP
curl --request POST 'https://api.monei.com/v1/payments/26d1f09c42bb59a29b06e280f9553cd5/confirm' \
--header 'Authorization: pk_test_3c140607778e1217f56ccb8b50540e00' \
--header 'Content-Type: application/json' \
--data-raw '{
"paymentToken": "7cc38b08ff471ccd313ad62b23b9f362b107560b",
"generatePaymentToken": true
}'
const {Monei} = require('@monei-js/node-sdk');
const monei = new Monei('pk_test_36cf3e8a15eff3f5be983562ea6b13ec');
monei.payments.confirm({
paymentToken: '7cc38b08ff471ccd313ad62b23b9f362b107560b',
generatePaymentToken: true
});
$monei = new Monei\MoneiClient('pk_test_36cf3e8a15eff3f5be983562ea6b13ec');
$monei->payments->confirm(
'832b77d1a4b372349a7ae0bb1b2af059',
[
'paymentToken' => '7cc38b08ff471ccd313ad62b23b9f362b107560b',
'generatePaymentToken' => true
]
);
Consulta todos los parámetros de solicitud disponibles.
Al enviar un formulario de pago Del lado del cliente
Puedes pasar generatePaymentToken: true al enviar un formulario de pago. Esto es útil para permitir que tus clientes elijan si desean guardar el método de pago para uso futuro.
<form
action="https://secure.monei.com/payments/{{payment_id}}/confirm"
method="post"
id="payment-form"
>
<div class="card-field">
<div id="card-input">
<!-- A MONEI Card Input Component will be inserted here. -->
</div>
<!-- Used to display card errors. -->
<div id="card-error"></div>
</div>
<label>
<!-- A checkbox to save payment method -->
<input type="checkbox" name="generatePaymentToken" value="true" />
save payment method
</label>
<button type="submit" id="payment-button">Submit payment</button>
</form>
Consulta la integración del método de pago con tarjeta para más detalles.
2. Obtén y almacena el token de pago
Una vez completado el pago, el cliente es redirigido a la completeUrl con el parámetro de consulta payment_id. Puedes obtener el paymentToken permanente llamando al endpoint obtener pago.
Almacena este paymentToken en tu base de datos junto con la información del cliente. La próxima vez que el cliente realice una compra, crea un pago con este token para omitir el formulario de pago. Ten en cuenta que el cliente deberá completar igualmente la verificación 3D Secure.
MONEI no devolverá el paymentToken en la solicitud HTTP POST a la callbackUrl por motivos de seguridad. Debes llamar al endpoint obtener pago para obtener el token. El paymentToken generado no caduca y solo debe utilizarse del lado del servidor.