Conn2Flow
Navegação das docs

Referência / Bibliotecas

Biblioteca stripe.php

Cliente REST da API do Stripe: credenciais do gateway, clientes, pagamentos, assinaturas, catálogo de produtos e preços, reembolso e validação de webhook.

Caminho no Gestor bibliotecas/stripe.php

Chamadas diretas à API REST do Stripe (api.stripe.com) com cURL, sem o SDK oficial. A versão da API é fixada em STRIPE_API_VERSION (2024-06-20), para o formato das respostas não mudar com a configuração da conta.

Credenciais

O caminho normal é um registro da tabela gateways_pagamentos (cadastrado no módulo de gateways) do tipo stripe:

Coluna Uso
client_id Publishable key (pk_…)
client_secret Secret key (sk_…)
webhook_secret Signing secret do webhook (whsec_…)
ambiente P = produção; qualquer outro valor = sandbox
moeda Padrão BRL
gestor_incluir_biblioteca('stripe');
stripe_gateways_pagamentos_configurar();            // o gateway padrão (padrao='S') ou o primeiro ativo
stripe_gateways_pagamentos_configurar(['id' => 7]); // um gateway específico

A configuração vai para $_CONFIG['stripe'], que também pode ser preenchido à mão. stripe_obter_credenciais() devolve false sem secret_key; stripe_info() resume o estado; stripe_testar_conexao() chama GET /v1/balance. stripe_is_modo_gateway(), stripe_obter_gateway_id() e stripe_obter_gateway_dados() informam qual gateway foi carregado.

Requisição

stripe_requisicao(['endpoint' => '/v1/…', 'method' => 'GET'|'POST'|'DELETE', 'data' => [...], 'idempotency_key' => …]) devolve ['http_code', 'data'] ou false (sem credencial ou erro de rede). Erro da API (4xx/5xx) não é false: confira http_code. Erros vão para gestor/logs/stripe-<data>.log via log.php, sem a chave.

Valores: stripe_valor_menor_unidade(19.9, 'BRL') → 1990; stripe_valor_decimal() faz o inverso; stripe_moeda_sem_decimais() cobre JPY, KRW, VND, CLP e PYG.

Operações

Área Funções
Clientes stripe_obter_ou_criar_cliente(['email', 'nome', 'metadata']): procura pelo e-mail antes de criar
Pagamento único stripe_criar_payment_intent(), stripe_consultar_payment_intent(), stripe_consultar_setup_intent()
Assinaturas stripe_criar_assinatura() (nasce default_incomplete e devolve o client_secret da primeira fatura, ou trialing com trial_period_days; coupon_id aplica um coupon do Stripe em discounts; add_invoice_items põe produtos e frete na primeira fatura), stripe_consultar_assinatura() (com expand opcional), stripe_definir_metodo_padrao_assinatura(), stripe_trocar_preco_assinatura() (upgrade/downgrade com proration, padrão always_invoice; corpo em stripe_troca_preco_payload()), stripe_suspender_assinatura() (pause_collection), stripe_ativar_assinatura() (desfaz pausa ou cancelamento agendado), stripe_cancelar_assinatura()
Reembolso stripe_reembolsar()
Catálogo stripe_criar_produto(), stripe_atualizar_produto() (merge parcial; corpo em stripe_produto_payload()), stripe_consultar_produto(), stripe_listar_produtos(), stripe_arquivar_produto(); stripe_criar_preco(), stripe_consultar_preco(), stripe_listar_precos(), stripe_arquivar_preco() (um preço é imutável no Stripe: mudar valor é criar outro)
Apoio stripe_traduzir_status() (status → texto em português), stripe_log_registro()

Webhook

stripe_validar_webhook(['payload' => $corpoCru, 'signature_header' => $cabecalho, 'tolerancia' => 300]) confere o cabeçalho Stripe-Signature (HMAC-SHA256 de t.payload com o webhook_secret, comparação em tempo constante, janela de 300 s) e devolve o evento decodificado ou false.

O endpoint é /_gateways/stripe/webhook (controlador plataforma-gateways), que valida com o gateway padrão e dispara o hook stripe.webhook.

Funções

Gerado a partir de gestor/bibliotecas/stripe.php · 37 funções

37 de 37

stripe_obter_ou_criar_cliente

ver no código · linha 230 ↗
stripe_obter_ou_criar_cliente(array $params = Array()): array|false

Localiza um cliente pelo e-mail ou cria um novo. Evita duplicar customers a cada checkout.

Parâmetros

$paramsarray
['email' => string, 'nome' => string opcional, 'metadata' => array opcional]

Retorno

array|false
Dados do customer ou false.

stripe_criar_payment_intent

ver no código · linha 265 ↗
stripe_criar_payment_intent(array $params = Array()): array|false

Cria um PaymentIntent para pagamento único no Payment Element.

Parâmetros

$paramsarray
['valor' => decimal, 'moeda' => 'BRL', 'customer_id' => opc,

Retorno

array|false
['id','client_secret','status'] ou false.

stripe_criar_assinatura

ver no código · linha 346 ↗
stripe_criar_assinatura(array $params = Array()): array|false

Cria uma assinatura em default_incomplete para confirmação no Payment Element.

Parâmetros

$paramsarray
['customer_id' => obrig, 'price_id' => obrig, 'referencia' => opc,

Retorno

array|false
['id','status','client_secret','secret_type' => 'payment'|'setup','subscription_data'] ou false.

stripe_troca_preco_payload

ver no código · linha 509 ↗
stripe_troca_preco_payload(array $sub, array $params = Array()): array|false

Monta o corpo da troca de preço de uma assinatura, resolvendo trial_end contra a assinatura em curso. Separada da requisição para ser verificável sem rede.

Parâmetros

$subarray
Assinatura consultada (precisa de items.data[0].id).
$paramsarray
Mesmos parâmetros de stripe_trocar_preco_assinatura.

Retorno

array|false
Corpo da requisição ou false quando a assinatura não tem item de preço.

stripe_trocar_preco_assinatura

ver no código · linha 544 ↗
stripe_trocar_preco_assinatura(array $params = Array()): array|false

Troca o preço de uma assinatura ativa (upgrade/downgrade) com proration nativa.

Parâmetros

$paramsarray
['subscription_id' => obrig, 'price_id' => obrig,

Retorno

array|false
Assinatura atualizada ou false.

stripe_reembolsar

ver no código · linha 618 ↗
stripe_reembolsar(array $params = Array()): array|false

Reembolsa um pagamento.

Parâmetros

$paramsarray
['payment_intent_id' => ou 'charge_id', 'valor' => decimal opc (total se ausente), 'moeda' => opc]

Retorno

array|false

stripe_criar_produto

ver no código · linha 644 ↗
stripe_criar_produto(array $params = Array()): array|false

Cria um produto no catálogo (POST /v1/products).

Parâmetros

$paramsarray
['nome' => obrig, 'descricao' => opc, 'imagens' => array de URLs opc,

Retorno

array|false
Produto criado (prod_...) ou false.

stripe_produto_payload

ver no código · linha 676 ↗
stripe_produto_payload(array $params = Array()): array

Monta o corpo de uma atualização de produto.

Parâmetros

$paramsarray
Mesmos campos de stripe_atualizar_produto.

Retorno

array
Corpo pronto para http_build_query.

stripe_atualizar_produto

ver no código · linha 703 ↗
stripe_atualizar_produto(array $params = Array()): array|false

Atualiza um produto existente (POST /v1/products/{id}).

Parâmetros

$paramsarray
['product_id' => obrig, 'nome' => opc, 'descricao' => opc,

Retorno

array|false
Produto atualizado ou false.

stripe_listar_produtos

ver no código · linha 731 ↗
stripe_listar_produtos(array $params = Array()): array|false

Lista produtos da conta (GET /v1/products).

Parâmetros

$paramsarray
['limite' => 1..100 (padrão 100), 'ativo' => bool opc, 'starting_after' => opc]

Retorno

array|false
['data' => array de produtos, 'has_more' => bool] ou false.

stripe_criar_preco

ver no código · linha 763 ↗
stripe_criar_preco(array $params = Array()): array|false

Cria um preço (POST /v1/prices).

Parâmetros

$paramsarray
['product_id' => obrig, 'valor' => decimal obrig, 'moeda' => 'BRL',

Retorno

array|false
Preço criado (price_...) ou false.

stripe_listar_precos

ver no código · linha 812 ↗
stripe_listar_precos(array $params = Array()): array|false

Lista preços da conta (GET /v1/prices).

Parâmetros

$paramsarray
['product_id' => opc (filtra por produto), 'limite' => 1..100,

Retorno

array|false
['data' => array de preços, 'has_more' => bool] ou false.

stripe_validar_webhook

ver no código · linha 849 ↗
stripe_validar_webhook(array $params = Array()): array|false

Valida a assinatura de um webhook (Stripe-Signature) por HMAC-SHA256.

Parâmetros

$paramsarray
['payload' => corpo cru, 'signature_header' => header, 'tolerancia' => seg (300)]

Retorno

array|false
Evento decodificado ou false.

O Futuro é Híbrido: Humano + IA.

O Conn2Flow é a ferramenta. Se você precisa do Arquiteto para desenhar a estratégia da sua empresa usando essa tecnologia...

Contrate Consultoria Especializada