1. Documentation /
  2. Stripe: corrección de errores del cliente

Stripe: corrección de errores del cliente

Nota: Este es un documento de nivel de desarrollador que se proporciona como guía. No podemos brindar asesoramiento ni revisar el código de acuerdo a nuestra política de soporte (artículo disponible solo en Inglés).

Limpieza de la base de datos después de cambios de cuenta

↑ Back to top
Siempre que se cambien las claves de la cuenta de Stripe.com (clave API publicable y / o clave API secreta), es posible que se requiera una limpieza de la base de datos. La pasarela almacena varios identificadores (cliente, tarjeta, fuente, etc.) para vincular objetos locales con Stripe, pero esos objetos son específicos de la cuenta. Si no realizas esta limpieza, la tienda puede generar compras fallidas.

Antes de la limpieza

↑ Back to top
Antes de continuar, comunícate con Stripe para verificar si los clientes existentes y los métodos de pago se pueden transferir a la nueva cuenta.

Limpieza

↑ Back to top
DELETE FROM `wp_usermeta`
WHERE meta_key IN ( '_stripe_customer_id', '_stripe_source_id', '_stripe_card_id' );
DELETE tokenmeta FROM `wp_woocommerce_payment_tokenmeta` tokenmeta
INNER JOIN `wp_woocommerce_payment_tokens` ON `wp_woocommerce_payment_tokens`.`token_id` = tokenmeta.`payment_token_id`
WHERE `wp_woocommerce_payment_tokens`.`gateway_id` = 'stripe';
DELETE FROM `wp_woocommerce_payment_tokens` WHERE gateway_id='stripe';

Limpieza al usar un sitio múltiple de WordPress

↑ Back to top
Este fragmento de código es similar pero también limpia valores específicos del sitio. Utiliza este fragmento de código para cada sitio de la red, que requiera limpieza. Reemplazar wp_999_ con el prefijo del sitio. NB: El sitio principal de la red no usa un número en el prefijo, por lo que debes usar simplemente wp_ en lugar de wp_999_.
DELETE FROM `wp_usermeta`
WHERE meta_key IN ( '_stripe_customer_id', '_stripe_source_id', '_stripe_card_id', 'wp_999__stripe_customer_id' );
DELETE tokenmeta FROM `wp_999_woocommerce_payment_tokenmeta` tokenmeta
INNER JOIN `wp_999_woocommerce_payment_tokens` ON `wp_999_woocommerce_payment_tokens`.`token_id` = tokenmeta.`payment_token_id`
WHERE `wp_999_woocommerce_payment_tokens`.`gateway_id` = 'stripe';
DELETE FROM `wp_999_woocommerce_payment_tokens` WHERE gateway_id='stripe';

Conflictos entre sitios en una red (multisitio)

↑ Back to top
Las configuraciones de múltiples sitios son compatibles desde el primer momento desde la versión 4.3.2 de la pasarela. Sin embargo, si la pasarela se ha utilizado en un sitio simple, que luego se convirtió en una red de varios sitios, es posible que experimentes errores No such customer o errores con las tarjetas guardadas. Para corregir esos errores, usa el siguiente fragmento de código SQL y asegúrate de reemplazar wp_ (guión bajo simple) con el prefijo de la tabla de tu base de datos:
UPDATE `wp_usermeta`
SET `meta_key` = CONCAT( 'wp_', `meta_key` )
WHERE `meta_key` IN ( '_stripe_customer_id', '_stripe_source_id', '_stripe_card_id' );
Esto garantizará que los ID de cliente existentes del sitio / blog principal no se utilicen como valores alternativos para otros sitios.