gateway e o seu próprio gatewayMerchantId.
Para o passo a passo completo da requisição da Google Pay API (
gateway,
gatewayMerchantId, allowedAuthMethods, allowedCardNetworks), da extração
do payload e da habilitação do lojista, veja Configurando o Google
Pay.Configurando o Google Pay no seu checkout
Ao montar a configuração de tokenização do botão Google Pay (tokenizationSpecification), informe:
Criando uma cobrança Google Pay
-
Para criar uma transação com Google Pay basta o cliente informar o meio de pagamento google_pay na criação de uma cobrança e o token bruto retornado pelo
loadPaymentDatado Google Pay JS/Android; - Uma cobrança é feita no cartão através do provedor configurado no fluxo inteligente;
- Após confirmação do pagamento, o provedor enviará uma notificação para a Malga informando que o pagamento foi realizado;
- Posteriormente o cliente recebedor será notificado de que o pagamento foi efetuado e a cobrança finalizada com sucesso.
Requisição para criar cobrança com Google Pay
Requisição para criar cobrança com Google Pay
O objeto enviado em
googlePayPaymentData é o token bruto retornado pelo
Google, sem qualquer modificação — o mesmo shape retornado pelo
loadPaymentData
do Google Pay JS API ou pelo SDK Android. No Web, o campo
paymentData.paymentMethodData.tokenizationData.token é uma string JSON:
converta com JSON.parse antes de enviar. Veja
Extraindo o payload e enviando para a
Malga.-
É registrada com status
authorized,pre_authorizedoufailed(oupendingenquanto um desafio 3D Secure está em andamento); - É possível realizar o estorno total ou parcial da cobrança;
- É possível realizar a pré-autorização e captura da cobrança.
PAN_ONLY e CRYPTOGRAM_3DS
A Malga suporta o método de autenticação (authMethod) para o cartão salvo pelo comprador:
Veja os valores de
allowedAuthMethods e allowedCardNetworks aceitos em
Métodos de autenticação e bandeiras suportados.
Notificação de alteração de status
Pré-autorização e captura
No fluxo de pagamentos por cartão é possível realizar uma autorização que reserva o saldo e fica pendente de uma captura posterior, ou você pode já autorizar o pagamento de maneira definitiva. O flag decapture serve para indicar se a transação deve ou não ser capturada.
Na nossa API caso você envie o atributo capture: false iremos retornar a transação autorizada (saldo reservado no cartão) com status pre_authorized sendo necessário que você faça um request no Serviço de Captura para forçar manualmente a captura da transação e liberar para liquidação na conta do provedor. Se a transação não for capturada em 7 dias o adquirente pode desfazer automaticamente a transação.
Caso você envie o atributo capture: true iremos retornar a transação autorizada com status authorized, não sendo necessário mais nenhuma ação, a transação já fica liberada para liquidação no adquirente e não precisa chamar o Serviço de Captura.
Em nosso dashboard, também é possível capturar.
Estorno Total ou Parcial
No fluxo de pagamento por Google Pay, é possível realizar um estorno no valor total ou parcial da cobrança. No caso de estorno parcial, o lojista opta por realizar um estorno com valor inferior ao valor da venda, sendo feito o reembolso do valor parcial estornado para o comprador, permanecendo a cobrança como autorizada para liquidação do valor restante para o lojista. Para realizar um estorno parcial, basta enviar na requisição de void umamount inferior ao valor original da transação, sendo este amount do estorno o valor a ser estornado. Uma vez aprovada a solicitação de estorno parcial junto ao emissor do cartão, o amount da transação é então atualizado para o valor residual da transação após o estorno (valor da cobrança - valor estornado).
Tratando erros na captura e estorno
As modificações feitas em uma cobrança para fins de estorno total, estorno parcial, ou captura podem retornar com erro no provedor. A fim de garantir o correto tratamento dos casos de exceção retornado pelos provedores nestas operações, nossa API, ao receber erro na captura/estorno, retorna HTTP Status Code 201, sendo criado um novo transactionRequest com o statusfailed, porém não é modificado o status original da transação. É recomendado que você verifique o status do objeto charge retornado, ou o status do primeiro objeto da lista de transactionRequests para se certificar que a operação foi realizada com sucesso.