El complemento Stripe s2Member Pro devuelve card_declined en modo en vivo

4 minutos de lectura

avatar de usuario
Roksalt

estoy usando el Complemento s2Member Pro con una instalación de WordPress para aceptar pagos de suscripción.

A lo largo de todas las pruebas, el complemento de Stripe funcionó siempre y cuando lo cambié al modo en vivo, mi tarjeta también funcionó, así que asumí que todo estaba bien, sin embargo, ahora veo que la mayoría de las tarjetas reciben un error card_declined cuando envían el formulario de pago. .

Los usuarios completan el formulario con nombre, apellido, correo electrónico, contraseña, nombre de usuario y luego, cuando los usuarios hacen clic en ‘agregar pago’, aparece la superposición de pago de Stripe, ingreso los detalles de la tarjeta, el complemento de Stripe los acepta con una marca verde, pero cuando presiono enviar Veo el error.

el sitio es https://naturalbusinesstools.com/precios y tiene toda la configuración de SSL correcta y todos los detalles de la cuenta de Stripe, enlaces web y verificaciones son correctos [as I mentioned its only certain cards, particular those from the Commonwealth Bank]. También debo mencionar que, independientemente del éxito o fracaso del pago, el cliente se crea en la cuenta de Stripe.

¿Hay alguna capa de seguridad que impida que pasen?

*** ACTUALIZACIÓN Ok, ha habido un desarrollo. He probado 4 tarjetas de crédito personales separadas [friends and families] y todos funcionaron perfectamente. Luego probé un par de tarjetas de crédito/débito comerciales y todas fallaron…

Así que parece que s2 o stripe están fallando Transacciones con tarjetas comerciales… ¿es este un problema común?

*** ACTUALIZAR

Ok, ha habido un gran desarrollo con este tema. finalmente llegué al creador del complemento s2 member pro y dijo esto:

“Así que reproduje este comportamiento en su sitio y lo rastreé hasta una actualización de la tarjeta que se lleva a cabo dentro de s2Member. Tras el envío final, s2Member agrega el nombre del cliente, dirección_código postal, dirección_estado y dirección_país justo después de la tarjeta (también conocida como fuente) se agrega a su cliente de Stripe.

El error card_declined que está viendo proviene de la API de Stripe y devuelve un error card_declined cada vez que s2Member intenta actualizar la tarjeta con esos detalles básicos. Sospecho que se trata de un error en la API de Stripe, pero quería publicar la información aquí primero, en caso de que algo de esto pueda darle una idea de por qué esta actualización en particular podría fallar.

Armado con el conocimiento de qué llamada API de Stripe resultó en un error card_declined de Stripe, luego configuré una página de prueba en su sitio donde revisé las llamadas de actualización e intenté actualizar una parte de la información a la vez. Pude actualizar el nombre, address_state y address_zip sin problemas. Sin embargo, en esta tarjeta en particular, cada vez que intento actualizar address_country a un valor de AU, la API de Stripe dice card_declined por alguna razón”.

Haciendo referencia a una falla inesperada en la respuesta de la API de Stripe en su PHP SDK:

                [file] => .../wp-content/plugins/s2member-pro/includes/classes/gateways/stripe/stripe-sdk/lib/Stripe/ApiRequestor.php
                [line] => 109
                [function] => _interpretResponse
                [class] => Stripe_ApiRequestor
                [type] => ->
                [args] => Array
                    (
                        [0] => {
"error": {
"message": "Your card was declined.",
"type": "card_error",
"param": "",
"code": "card_declined"
}

Entonces resulta que es un error en la API de Stripe. ¿No estoy seguro si alguien tiene una solución?

  • Lo que está tratando aquí es esencialmente un problema comercial, no técnico. Tienes que hablar con Stripe sobre esto.

    usuario149341

    18 de julio de 2015 a las 4:24

SOLUCIÓN A CORTO PLAZO

Encuentre esta línea de código en su copia de s2Member Pro: https://github.com/websharks/s2member-pro/blob/000000-dev/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php#L166
Archivo: s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php

Cambio:

$source->save();

A:

// $source->save();

Eso evitará que se lleve a cabo la actualización adicional. De todos modos, solo está allí para fines de declaración de impuestos, y eso debería resolver el problema a corto plazo hasta que podamos llegar al fondo de esto.

¿Ha sido útil esta solución?