Getnet DocsGetnet Docs

Configurar Alipay y WeChat QR

Esta guía explica cómo integrar Alipay y WeChat Pay mediante flujos basados en QR. En lugar de leer una tarjeta física, el cliente presenta un código QR que tu TPV escanea y envía al Get Smart SDK Payment Service a través del repositorio correspondiente.

Antes de utilizar estos métodos de pago alternativos (APM), asegúrate de que el TPV esté inicializado con InitializationRepository.initTpv() y que cada método esté habilitado en la configuración del terminal.

Alipay

Para procesar pagos de Alipay, utiliza el AlipayRepository. El flujo típico es:

  1. El cliente presenta un código QR de Alipay.
  2. Tu aplicación escanea el código y extrae el qrId.
  3. Llamas a makePayment en AlipayRepository con el importe y los datos del QR.

Repositorio

  • Repositorio: AlipayRepository

Pago con Alipay

Función: makePayment

Restricción del entorno de prueba: En el entorno de integración/prueba, los pagos de Alipay solo se aceptan si el importe es exactamente 3,33€.

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

    // Handle RepositoryResult<AlipayResult> here...
}

Devolución con Alipay

Función: makeRefund

Parámetros:

  • amount: Importe a devolver.
  • originalOperationId: El ID del pago original con Alipay.
  • languageIso6391: Idioma de la interfaz.
suspend fun refundAlipay(amount: Money, originalId: String) {
    val result = alipayRepository.makeRefund(
        amount = amount,
        originalOperationId = originalId,
        languageIso6391 = LanguageIso6391.ES
    )

    // Handle RepositoryResult<AlipayResult> here...
}

WeChat Pay

Para procesar pagos de WeChat, utiliza el WeChatRepository. El flujo es similar al de Alipay y también se basa en el escaneo del código QR del cliente.

Repositorio

  • Repositorio: WeChatRepository

Pago con WeChat

Función: makePayment

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

    // Handle RepositoryResult<WeChatResult> here...
}

Devolución con WeChat

Función: makeRefund

Parámetros:

  • amount: Importe a devolver.
  • originalOperationId: El ID del pago original con WeChat.
  • languageIso6391: Idioma de la interfaz.
suspend fun refundWeChat(amount: Money, originalId: String) {
    val result = weChatRepository.makeRefund(
        amount = amount,
        originalOperationId = originalId,
        languageIso6391 = LanguageIso6391.ES
    )

    // Handle RepositoryResult<WeChatResult> here...
}

Próximos pasos

  • Para métodos basados en número de teléfono, consulta Configurar Pagos Bizum.
  • Para comprender la gestión de respuestas compartidas, consulta Conceptos clave / Tratar Respuestas y Errores.