Getnet DocsGetnet Docs

Configurar Alipay e WeChat QR

Este guia explica como integrar o Alipay e o WeChat Pay utilizando fluxos baseados em QR Code. Em vez de ler um cartão físico, o cliente apresenta um código QR que seu TPV escaneia e envia ao Get Smart SDK Payment Service através do repositório correspondente.

Antes de usar esses métodos de pagamento alternativos (APMs), certifique-se de que o TPV foi inicializado com InitializationRepository.initTpv() e que cada método está habilitado na configuração do terminal.

Alipay

Para processar pagamentos Alipay, utilize o AlipayRepository. O fluxo típico é:

  1. O cliente apresenta um código QR do Alipay.
  2. Seu app escaneia o código e extrai o qrId.
  3. Você chama makePayment no AlipayRepository com o valor e os dados do QR.

Repositório

  • Repositório: AlipayRepository

Pagamento Alipay

Função: makePayment

Parâmetros:

  • amount: O objeto Money.
  • tip: O valor da gorjeta (pode ser zero ou omitido).
  • qrId: A string do código escaneado do QR do cliente.
  • transactionName: Um rótulo para a transação.
  • qrIdType: O tipo de código QR (ex: QrIdType.ALIPAY).
  • languageIso6391: Idioma da interface do serviço.

Restrição de Ambiente de Teste: No ambiente de integração/teste, os pagamentos Alipay só são aceitos se o valor for exatamente 3,33€.

suspend fun pagarComAlipay(amount: Money, scannedQr: String) {
    val result = alipayRepository.makePayment(
        amount = amount,
        tip = Money(BigDecimal.ZERO, Currency.getInstance("EUR")),
        qrId = scannedQr,
        transactionName = "Venda #123",
        qrIdType = QrIdType.ALIPAY,
        languageIso6391 = LanguageIso6391.PT
    )

    // Trate o RepositoryResult<AlipayResult> aqui...
}

Estorno Alipay

Função: makeRefund

suspend fun estornarAlipay(amount: Money, originalId: String) {
    val result = alipayRepository.makeRefund(
        amount = amount,
        originalOperationId = originalId,
        languageIso6391 = LanguageIso6391.PT
    )
}

WeChat Pay

Para processar pagamentos WeChat, utilize o WeChatRepository. O fluxo é similar ao Alipay e também depende do escaneamento do código QR do cliente.

Repositório

  • Repositório: WeChatRepository

Pagamento WeChat

Função: makePayment

Testar o WeChat no ambiente de integração pode ser limitado devido à falta de um kit de teste do provedor.

suspend fun pagarComWeChat(amount: Money, scannedQr: String) {
    val result = weChatRepository.makePayment(
        amount = amount,
        tip = Money(BigDecimal.ZERO, Currency.getInstance("EUR")),
        qrId = scannedQr,
        transactionName = "Venda #124",
        languageIso6391 = LanguageIso6391.PT
    )
}

Próximos Passos

  • Para métodos baseados em número de telefone, consulte Configurar Pagamentos Bizum.
  • Para entender o tratamento de erros compartilhado, veja Conceitos Principais / Tratar Respostas e Erros.