Google Pay¶
O que é¶
Pagamento via Google Pay. O SDK do eupago suporta-o de duas formas:
- Fluxo hospedado (recomendado para web): chamas
create_paymente rediriges o browser do cliente para opayment_urlque o eupago devolve. É o eupago que serve a Google Pay sheet, faz o handshake com a wallet e notifica-te por webhook. Não precisas de merchant id do Google Pay — o merchant é o eupago. - Fluxo nativo (apps mobile ou web com merchant id próprio):
obténs um token
PaymentDatavia Google Pay JS API ou Android SDK e passa-lo aocreate_payment. O eupago desencripta server-side e cobra o cartão directamente — sem redirect.
O fluxo hospedado é a escolha correcta para quase todas as web apps. Usa o nativo só quando precisas da sheet inline (sem redirect) ou já tens merchant id próprio no Google Pay.
Fluxo hospedado — exemplo¶
from decimal import Decimal
from eupago import EupagoClient
client = EupagoClient(api_key="...", sandbox=True)
# Sem google_pay_token — fluxo hospedado.
payment = client.google_pay.create_payment(
order_id="ORD-GP-001",
amount=Decimal("39.90"),
success_url="https://loja.exemplo/checkout/ok",
error_url="https://loja.exemplo/checkout/fail",
)
# Redirige o browser para:
return redirect(payment.payment_url)
O estado final chega por webhook (ver Webhooks):
event = client.webhooks.parse(body=request.body, headers=request.headers)
if event.status == PaymentStatus.PAID:
confirmar_encomenda(event.order_id)
Activação no backoffice eupago¶
Sandbox: pede ao suporte do eupago para activar Google Pay no canal demo (ainda não é self-service). Produção: requer formulário de adesão separado aprovado pelo compliance do eupago — ver o artigo Apple Pay / Google Pay do eupago.
Fluxo nativo — avançado¶
Quando queres a Google Pay sheet inline (sem redirect), conduzes o Google Pay no cliente e encaminhas o token resultante para o SDK:
# Capturado do PaymentsClient.loadPaymentData no browser, ou da API
# Google Pay Android. O SDK trata o token como string opaca.
google_pay_token = '{"paymentMethodData": {"tokenizationData": {"token": "..."}}}'
payment = client.google_pay.create_payment(
order_id="ORD-GP-002",
amount=Decimal("39.90"),
google_pay_token=google_pay_token,
)
Este caminho requer:
- Merchant configurado no Google Pay & Wallet Console.
- Dispositivo real com Google Pay activo para verificação live.
Reembolso¶
Ver Reembolsos para a configuração OAuth.
Notas¶
- Quando omites
google_pay_token, o SDK não enviagooglePayTokenno request — é assim que o eupago sabe que deve servir a sheet hospedada. - O shape do corpo segue o contrato v1.02 do cartão de crédito.
- Vê o script runnable
10_google_pay.py.