Saltar al contenido

¿Cómo puedo evitar el cobro duplicado con Stripe?

Recuerda que en las ciencias informáticas un error casi siempre tiene varias soluciones, por lo tanto nosotros aquí te mostramos lo mejor y más eficiente.

Solución:

Deshabilitar el envío del formulario después del primer clic es definitivamente la forma más fácil de implementar esto.

Otro enfoque es usar solicitudes idempotentes como se documenta aquí. La idea es que pase un identificador único al realizar una solicitud a la API de Stripe que garantice que solo puede ejecutar esta transacción una vez. Si vuelve a ejecutar la consulta con exactamente la misma idempotencia key obtendrá la respuesta original de la primera llamada, lo que garantiza que nunca se creen 2 cargos por la misma “transacción” en su sitio web.

sí, la solicitud idempotente es la forma correcta de implementar esto.

puedes referir esto aquí

https://stripe.com/docs/api#idempotent_requests

otra solución simple que puede implementar es el uso de la máquina de estado al realizar un seguimiento de la llamada a la API de banda.

Como se menciona en otras respuestas, puede usar Solicitudes idempotentes para evitar cargos duplicados. Así es como lo he implementado:

En checkout.php:


 ...
...
...

En payment.php:

 $price,
        "currency" => $currency,
        "description" => $invoiceid,
        "customer" => $customer->id ], 
    ["idempotency_key" => $idempotency,]);
catch(Exception $e) 
    $api_error = $e->getMessage();

Te invitamos a amparar nuestra faena mostrando un comentario y valorándolo te lo agradecemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *