Path in the Gestor bibliotecas/stripe.php
Direct calls to the Stripe REST API (api.stripe.com) with cURL, without the official SDK. The API version is pinned in STRIPE_API_VERSION (2024-06-20), so the response format does not change with the account settings.
Credentials
The normal path is a stripe-type record of the gateways_pagamentos table (registered in the gateways module):
| Column | Use |
|---|---|
client_id |
Publishable key (pk_…) |
client_secret |
Secret key (sk_…) |
webhook_secret |
Webhook signing secret (whsec_…) |
ambiente |
P = production; any other value = sandbox |
moeda |
Default BRL |
gestor_incluir_biblioteca('stripe');
stripe_gateways_pagamentos_configurar(); // the default gateway (padrao='S') or the first active one
stripe_gateways_pagamentos_configurar(['id' => 7]); // a specific gatewayThe configuration goes into $_CONFIG['stripe'], which can also be filled by hand. stripe_obter_credenciais() returns false without a secret_key; stripe_info() summarizes the state; stripe_testar_conexao() calls GET /v1/balance. stripe_is_modo_gateway(), stripe_obter_gateway_id() and stripe_obter_gateway_dados() tell which gateway was loaded.
Request
stripe_requisicao(['endpoint' => '/v1/…', 'method' => 'GET'|'POST'|'DELETE', 'data' => [...], 'idempotency_key' => …]) returns ['http_code', 'data'] or false (no credentials or network error). An API error (4xx/5xx) is not false: check http_code. Errors go to gestor/logs/stripe-<date>.log through log.php, without the key.
Amounts: stripe_valor_menor_unidade(19.9, 'BRL') → 1990; stripe_valor_decimal() does the opposite; stripe_moeda_sem_decimais() covers JPY, KRW, VND, CLP and PYG.
Operations
| Area | Functions |
|---|---|
| Customers | stripe_obter_ou_criar_cliente(['email', 'nome', 'metadata']): looks up by e-mail before creating |
| One-off payment | stripe_criar_payment_intent(), stripe_consultar_payment_intent(), stripe_consultar_setup_intent() |
| Subscriptions | stripe_criar_assinatura() (born default_incomplete, returning the first invoice's client_secret, or trialing with trial_period_days; coupon_id applies a Stripe coupon through discounts; add_invoice_items adds products and shipping to the first invoice), stripe_consultar_assinatura() (optional expand), stripe_definir_metodo_padrao_assinatura(), stripe_trocar_preco_assinatura() (upgrade/downgrade with proration, default always_invoice; body built by stripe_troca_preco_payload()), stripe_suspender_assinatura() (pause_collection), stripe_ativar_assinatura() (undoes a pause or a scheduled cancellation), stripe_cancelar_assinatura() |
| Refund | stripe_reembolsar() |
| Catalog | stripe_criar_produto(), stripe_atualizar_produto() (partial merge; body built by stripe_produto_payload()), stripe_consultar_produto(), stripe_listar_produtos(), stripe_arquivar_produto(); stripe_criar_preco(), stripe_consultar_preco(), stripe_listar_precos(), stripe_arquivar_preco() (a price is immutable in Stripe: changing the amount means creating another) |
| Support | stripe_traduzir_status() (status → Portuguese text), stripe_log_registro() |
Webhook
stripe_validar_webhook(['payload' => $rawBody, 'signature_header' => $header, 'tolerancia' => 300]) checks the Stripe-Signature header (HMAC-SHA256 of t.payload with the webhook_secret, constant-time comparison, 300 s window) and returns the decoded event or false.
The endpoint is /_gateways/stripe/webhook (the plataforma-gateways controller), which validates with the default gateway and fires the stripe.webhook hook.
Functions
Generated from gestor/bibliotecas/stripe.php · 37 functions
stripe_log_registro
view source · line 20 ↗stripe_log_registro($logData = [])Parameters
$logData
stripe_gateways_pagamentos_configurar
view source · line 31 ↗stripe_gateways_pagamentos_configurar(array|false $params = false): boolConfigura a biblioteca a partir de um registro da tabela gateways_pagamentos.
Parameters
$paramsarray|false- ['id' => id do gateway] ou vazio para o gateway padrão do tipo stripe.
Returns
stripe_is_modo_gateway
view source · line 87 ↗stripe_is_modo_gateway()stripe_obter_gateway_id
view source · line 92 ↗stripe_obter_gateway_id()stripe_obter_gateway_dados
view source · line 97 ↗stripe_obter_gateway_dados()stripe_obter_credenciais
view source · line 105 ↗stripe_obter_credenciais(): array|falseReturns
stripe_requisicao
view source · line 134 ↗stripe_requisicao(array|false $params = false): array|falseRequisição HTTP à API do Stripe.
Parameters
$paramsarray|false
Returns
stripe_moeda_sem_decimais
view source · line 204 ↗stripe_moeda_sem_decimais($moeda)Moedas sem casas decimais na API do Stripe (subset relevante).
Parameters
$moeda
stripe_valor_menor_unidade
view source · line 209 ↗stripe_valor_menor_unidade($valor, $moeda = 'BRL')Converte valor decimal para a menor unidade da moeda (centavos em BRL).
Parameters
$valor$moeda
stripe_valor_decimal
view source · line 215 ↗stripe_valor_decimal($valor, $moeda = 'BRL')Converte da menor unidade para decimal.
Parameters
$valor$moeda
stripe_obter_ou_criar_cliente
view source · line 230 ↗stripe_obter_ou_criar_cliente(array $params = Array()): array|falseLocaliza um cliente pelo e-mail ou cria um novo. Evita duplicar customers a cada checkout.
Parameters
$paramsarray- ['email' => string, 'nome' => string opcional, 'metadata' => array opcional]
Returns
stripe_criar_payment_intent
view source · line 265 ↗stripe_criar_payment_intent(array $params = Array()): array|falseCria um PaymentIntent para pagamento único no Payment Element.
Parameters
$paramsarray- ['valor' => decimal, 'moeda' => 'BRL', 'customer_id' => opc,
Returns
stripe_consultar_payment_intent
view source · line 298 ↗stripe_consultar_payment_intent($params = Array())Parameters
$params
stripe_consultar_setup_intent
view source · line 315 ↗stripe_consultar_setup_intent(array $params = Array()): array|falseConsulta um SetupIntent (seti_...).
Parameters
$paramsarray- ['setup_intent_id' => obrig]
Returns
stripe_criar_assinatura
view source · line 346 ↗stripe_criar_assinatura(array $params = Array()): array|falseCria uma assinatura em default_incomplete para confirmação no Payment Element.
Parameters
$paramsarray- ['customer_id' => obrig, 'price_id' => obrig, 'referencia' => opc,
Returns
stripe_consultar_assinatura
view source · line 442 ↗stripe_consultar_assinatura(array $params = Array()): array|falseConsulta uma assinatura.
Parameters
$paramsarray- ['subscription_id' => obrig, 'expand' => array opcional]
Returns
stripe_definir_metodo_padrao_assinatura
view source · line 469 ↗stripe_definir_metodo_padrao_assinatura(array $params = Array()): array|falseFixa o método de pagamento padrão de uma assinatura.
Parameters
$paramsarray- ['subscription_id' => obrig, 'payment_method_id' => obrig]
Returns
stripe_cancelar_assinatura
view source · line 482 ↗stripe_cancelar_assinatura($params = Array())Cancela definitivamente uma assinatura.
Parameters
$params
stripe_troca_preco_payload
view source · line 509 ↗stripe_troca_preco_payload(array $sub, array $params = Array()): array|falseMonta 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.
Parameters
$subarray- Assinatura consultada (precisa de items.data[0].id).
$paramsarray- Mesmos parâmetros de stripe_trocar_preco_assinatura.
Returns
stripe_trocar_preco_assinatura
view source · line 544 ↗stripe_trocar_preco_assinatura(array $params = Array()): array|falseTroca o preço de uma assinatura ativa (upgrade/downgrade) com proration nativa.
Parameters
$paramsarray- ['subscription_id' => obrig, 'price_id' => obrig,
Returns
stripe_suspender_assinatura
view source · line 563 ↗stripe_suspender_assinatura($params = Array())Suspende a cobrança (pause_collection) mantendo a assinatura viva.
Parameters
$params
stripe_ativar_assinatura
view source · line 582 ↗stripe_ativar_assinatura($params = Array())Reativa uma assinatura pausada ou com cancelamento agendado. Não ressuscita uma assinatura que já alcançou o estado terminal canceled.
Parameters
$params
stripe_reembolsar
view source · line 618 ↗stripe_reembolsar(array $params = Array()): array|falseReembolsa um pagamento.
Parameters
$paramsarray- ['payment_intent_id' => ou 'charge_id', 'valor' => decimal opc (total se ausente), 'moeda' => opc]
Returns
stripe_criar_produto
view source · line 644 ↗stripe_criar_produto(array $params = Array()): array|falseCria um produto no catálogo (POST /v1/products).
Parameters
$paramsarray- ['nome' => obrig, 'descricao' => opc, 'imagens' => array de URLs opc,
Returns
prod_...) ou false.stripe_produto_payload
view source · line 676 ↗stripe_produto_payload(array $params = Array()): arrayMonta o corpo de uma atualização de produto.
Parameters
$paramsarray- Mesmos campos de
stripe_atualizar_produto.
Returns
http_build_query.stripe_atualizar_produto
view source · line 703 ↗stripe_atualizar_produto(array $params = Array()): array|falseAtualiza um produto existente (POST /v1/products/{id}).
Parameters
$paramsarray- ['product_id' => obrig, 'nome' => opc, 'descricao' => opc,
Returns
stripe_consultar_produto
view source · line 718 ↗stripe_consultar_produto($params = Array())Parameters
$params
stripe_listar_produtos
view source · line 731 ↗stripe_listar_produtos(array $params = Array()): array|falseLista produtos da conta (GET /v1/products).
Parameters
$paramsarray- ['limite' => 1..100 (padrão 100), 'ativo' => bool opc, 'starting_after' => opc]
Returns
stripe_arquivar_produto
view source · line 746 ↗stripe_arquivar_produto($params = Array())Arquiva um produto (o Stripe não permite exclusão de produto com preços associados).
Parameters
$params
stripe_criar_preco
view source · line 763 ↗stripe_criar_preco(array $params = Array()): array|falseCria um preço (POST /v1/prices).
Parameters
$paramsarray- ['product_id' => obrig, 'valor' => decimal obrig, 'moeda' => 'BRL',
Returns
price_...) ou false.stripe_consultar_preco
view source · line 794 ↗stripe_consultar_preco($params = Array())Parameters
$params
stripe_listar_precos
view source · line 812 ↗stripe_listar_precos(array $params = Array()): array|falseLista preços da conta (GET /v1/prices).
Parameters
$paramsarray- ['product_id' => opc (filtra por produto), 'limite' => 1..100,
Returns
stripe_arquivar_preco
view source · line 829 ↗stripe_arquivar_preco($params = Array())Arquiva um preço (active=false). Preço em uso por assinatura viva continua cobrando.
Parameters
$params
stripe_validar_webhook
view source · line 849 ↗stripe_validar_webhook(array $params = Array()): array|falseValida a assinatura de um webhook (Stripe-Signature) por HMAC-SHA256.
Parameters
$paramsarray- ['payload' => corpo cru, 'signature_header' => header, 'tolerancia' => seg (300)]
Returns
stripe_testar_conexao
view source · line 889 ↗stripe_testar_conexao()Testa a conexão com as credenciais atuais (GET /v1/balance).
stripe_traduzir_status
view source · line 894 ↗stripe_traduzir_status($status)Parameters
$status
stripe_info
view source · line 912 ↗stripe_info()