Muitos projetos no WordPress precisam apenas processar pagamentos diretos por serviços, assinaturas simples ou infoprodutos, sem a necessidade de carregar toda a estrutura pesada do WooCommerce. Quando o público-alvo está distribuído pela América Latina e outros mercados emergentes, a dLocal Go se destaca como uma das soluções mais eficientes. No entanto, conectar essa plataforma diretamente ao núcleo do WordPress exige uma abordagem estruturada via API REST.
Por que dispensar o WooCommerce nesse cenário?
O WooCommerce é uma ferramenta robusta, mas traz consigo dezenas de tabelas no banco de dados, múltiplos scripts e um fluxo de carrinho que pode ser excessivo para quem vende apenas um serviço ou produto pontual. Ao criar uma integração direta com a API do dLocal Go, mantemos o site leve, rápido e com controle total sobre a interface de pagamento.
Arquitetura da Integração no WordPress
Para construir um checkout transparente ou redirecionado de forma segura, a arquitetura deve ser dividida em três camadas principais:
- Frontend de Coleta: Um formulário leve (via Shortcode ou bloco customizado) que captura os dados básicos do pagador (nome, e-mail, documento).
- Endpoint REST Intermediário: Uma rota personalizada no WordPress para processar a requisição sem expor as credenciais secretas no código do cliente.
- Handler de Webhook: Um receptor para processar as notificações assíncronas enviadas pelo dLocal Go assim que o pagamento for aprovado ou recusado.
Passo a Passo da Implementação Técnica
1. Armazenamento Seguro de Credenciais
Nunca exponha a API Key ou o Secret Token no JavaScript. Recomenda-se armazená-los como constantes no wp-config.php ou em uma página de opções restrita a administradores:
define( 'DLOCAL_GO_API_KEY', 'sua_api_key_aqui' );
define( 'DLOCAL_GO_SECRET', 'seu_secret_aqui' );
define( 'DLOCAL_GO_URL', 'https://api.dlocalgo.com/v1/payments' );2. Criando o Endpoint no WordPress
Utilizamos o hook rest_api_init para registrar uma rota segura no WordPress que receberá os dados do formulário e fará a comunicação com o dLocal Go:
add_action( 'rest_api_init', function () {
register_rest_route( 'meu-checkout/v1', '/criar-pagamento', array(
'methods' => 'POST',
'callback' => 'processar_pagamento_dlocal',
'permission_callback' => '__return_true',
) );
} );3. Disparando a Requisição com wp_remote_post
Dentro da função de callback, estruturamos os dados do pedido e enviamos a requisição para a API da dLocal Go usando as funções nativas de HTTP do WordPress:
function processar_pagamento_dlocal( WP_REST_Request $request ) {
$params = $request->get_json_params();
$body = array(
'amount' => floatval( $params['valor'] ),
'currency' => 'BRL',
'country' => 'BR',
'payment_method_flow' => 'REDIRECT',
'payer' => array(
'name' => sanitize_text_field( $params['nome'] ),
'email' => sanitize_email( $params['email'] ),
),
'notification_url' => rest_url( 'meu-checkout/v1/webhook' ),
'success_url' => home_url( '/obrigado' ),
'back_url' => home_url( '/cancelado' ),
);
$response = wp_remote_post( DLOCAL_GO_URL, array(
'headers' => array(
'Authorization' => 'Bearer ' . DLOCAL_GO_API_KEY,
'Content-Type' => 'application/json',
),
'body' => wp_json_encode( $body ),
'timeout' => 30,
) );
if ( is_wp_error( $response ) ) {
return new WP_REST_Response( array( 'erro' => 'Falha na conexão com o gateway.' ), 500 );
}
$dados = json_decode( wp_remote_retrieve_body( $response ), true );
return new WP_REST_Response( array( 'redirect_url' => $dados['redirect_url'] ?? '' ), 200 );
}4. Tratamento do Webhook para Confirmação
Em implementações que realizo para projetos focados em alta conversão e estabilidade, a dependência apenas da página de retorno (redirecionamento) costuma gerar falhas caso o usuário feche a aba antes do retorno. Por isso, a validação via Webhook é indispensável para atualizar o status do pedido no banco de dados customizado ou disparar e-mails transacionais via wp_mail().
Boas Práticas de Segurança
- Proteção contra spam e fraudes: Valide nonces do WordPress no formulário e adicione proteção de rate limit nos endpoints REST.
- Sanitização rigorosa: Sempre passe todos os inputs por funções nativas como
sanitize_text_field()esanitize_email(). - Logs de Erro: Registre falhas de comunicação em logs isolados para facilitar o diagnóstico de integrações sem expor dados sensíveis do cliente.
Conclusão e Próximos Passos
Integrar a API REST do dLocal Go diretamente no WordPress é a alternativa perfeita para manter uma aplicação enxuta, performática e capaz de aceitar métodos de pagamento locais em toda a América Latina.
Se você precisa implementar um checkout customizado do dLocal Go no seu WordPress com regras de negócio avançadas, segurança de dados e alta performance, entre em contato para estruturarmos uma consultoria técnica para o seu projeto.


