1. Documentation /
  2. Stripe: Como Corrigir Erros do Cliente

Stripe: Como Corrigir Erros do Cliente

Nota: Este é um documento a nível de Desenvolvedor, fornecido como orientação. Não podemos fornecer suporte ou revisar os códigos de acordo com nossa Política de Suporte (disponível somente em inglês).

Limpeza do banco de dados após alterações de conta

↑ Back to top

Sempre que as chaves da conta Stripe.com (chave de API publicável e/ou chave de API secreta) são alteradas, pode ser necessária uma limpeza do banco de dados. O método de pagamento armazena vários identificadores (cliente, cartão, fonte, etc.) para vincular objetos locais com o Stripe, mas esses objetos são específicos da conta. Se você não realizar essa limpeza, a loja poderá ter compras com falhas.

Antes da limpeza

↑ Back to top

Antes de continuar, entre em contato com o Stripe para verificar se os métodos de pagamento e os clientes existentes podem ser transferidos para a nova conta.

Limpeza

↑ 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';

Limpeza ao usar um WordPress Multisite

↑ Back to top

Este snippet é semelhante, mas também limpa os valores específicos do site.

Use esse snippet para cada site da rede na qual é necessário a limpeza. Substitua wp_999_ pelo prefixo do site. OBS: O site principal da rede não usa um número no prefixo e, portanto, você precisa simplesmente usar wp_ em vez 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';

Conflitos entre sites em uma rede (multisite)

↑ Back to top

As configurações multisite possuem suporte para o método de pagamento desde a versão 4.3.2. No entanto, se o método de pagamento tiver sido usado em um site simples, no qual foi convertido posteriormente em uma rede multisite, você pode ter erros No such customer (não existe tal cliente) ou erros com os cartões salvos.

Para corrigir esses erros, use o seguinte snippet de SQL e certifique-se de substituir wp_ (sublinhado único) pelo prefixo da tabela do seu banco de dados:

UPDATE `wp_usermeta`
SET `meta_key` = CONCAT( 'wp_', `meta_key` )
WHERE `meta_key` IN ( '_stripe_customer_id', '_stripe_source_id', '_stripe_card_id' );

Isso irá garantir que os IDs de cliente existentes no site/blog principal não sejam usados ​​como valores de fallback (valores padrão de substituição em caso de falha) para outros sites.