Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.pay-me.com/llms.txt

Use this file to discover all available pages before exploring further.

La función de cobro permite invocar Pay-me SDK desde tu app iOS para mostrar el formulario de pago y recibir el resultado de la operación.
Antes de inicializar el SDK, completa Instalación SDK iOS y genera un Access Token desde tu backend usando Autenticación.

Métodos disponibles

CARD

Tarjetas de crédito y débito.

YAPE

Pago con billetera Yape.

QR

Pago con billeteras móviles mediante QR.

BANK_TRANSFER

Pago mediante transferencia bancaria.

CUOTEALO

Pago financiado con Cuotéalo.

PAGO_EFECTIVO

Pago con código o canal PagoEfectivo.

Flujo de integración

1

Importa el SDK

Agrega UIKit y Payme en el ViewController desde donde iniciarás el flujo.
2

Construye el request

Crea PAYMEChargesRequest con datos de transacción, comprador, facturación y configuración.
3

Configura PaymeClient

Inicializa PaymeClient con delegate, merchantCode y ambiente.
4

Invoca el formulario

Envía accessToken y paymeChargesRequest en invokeCaptureForm.
5

Procesa callbacks

Implementa onRespondsPayme y onPaymeEvents para cerrar el flujo en tu app.

Importar PaymeSDK

import UIKit
import Payme

Parámetros principales

PaymeClient

  • delegate: instancia que implementa los métodos de PaymeClientDelegate.
  • merchantCode: código del comercio entregado por Alignet.
  • PaymeEnviroment.development: ambiente de pruebas.
  • PaymeEnviroment.production: ambiente productivo.
  • from: UINavigationController o controlador desde donde se invoca el SDK.
  • accessToken: token generado desde backend para esta solicitud.
  • paymeChargesRequest: objeto con información de la transacción.

Ejemplo de inicialización

let customer = PAYMEAddressData(
    firstName: "Levis Antonio",
    lastName: "Silvestre Maylle",
    email: "levis.silvestre@alignet.com",
    phone: "51-958435685",
    identityDocument: PAYMEIdentityDocument(
        type: "DNI",
        identifier: "72111111",
        country: "PE"
    ),
    addressLine1: "Av casimiro Ulloa 333",
    addressLine2: nil,
    city: "Lima",
    state: "Lima",
    country: "PE"
)

let billingShipping = PAYMEAddressData(
    firstName: "Levis Antonio",
    lastName: "Silvestre Maylle",
    email: "levis.silvestre@alignet.com",
    phone: "51-958435685",
    addressLine1: "Av casimiro Ulloa 333",
    addressLine2: nil,
    city: "Lima",
    state: "Lima",
    country: "PE"
)

var additionalFields = [String: String]()
additionalFields["reserved1"] = "1"
additionalFields["reserved2"] = "2"
additionalFields["reserved3"] = "3"

let paymeChargesRequest = PAYMEChargesRequest(
    transaction: PAYMETransactionData(
        operationNumber: "0000001",
        amount: "1000",
        currency: "604",
        additionalFields: additionalFields,
        customer: customer,
        billing: billingShipping,
        shipping: billingShipping
    ),
    setting: PAYMESettingData(
        locale: "es_PE",
        paymentMethods: ["CARD", "YAPE", "CUOTEALO"],
        walletUserID: nil
    )
)

let paymeClient = PaymeClient(
    delegate: self,
    merchantCode: "MERCHANT_CODE"
)

paymeClient.setEnvironment(
    environment: PaymeEnviroment.development
)

paymeClient.invokeCaptureForm(
    from: self.navigationController!,
    accessToken: "TOKEN_GENERADO_PARA_ESTA_SOLICITUD",
    paymeChargesRequest: paymeChargesRequest
)
El accessToken debe generarse desde backend para la solicitud. No incluyas credenciales ni secretos dentro de la app.

Implementar delegates

Para completar la integración, la clase debe implementar PaymeClientDelegate.
extension MainController: PaymeClientDelegate {
    func onRespondsPayme(response: PAYMEChargesResponse) {
        // Procesa el resultado final del flujo.
    }

    func onPaymeEvents(event: PaymeEvent) {
        // Registra eventos de navegación o interacción del SDK.
    }
}

Eventos disponibles

BUILD_FORM

Indica qué métodos se mostraron al usuario.

CHOOSE_PAYMENT_METHOD

Indica el método de pago elegido por el usuario.

RETURN_LIST_PAYMENT_METHODS

Indica que el usuario regresó al listado de métodos.

CANCEL_PAYMENT_METHOD

Indica que el usuario canceló un método de pago.

PRESS_PAY_BUTTON

Indica que el usuario presionó el botón de pago.

CLOSE_PAYME

Indica que el usuario cerró el SDK.

Validación del resultado

Usa onRespondsPayme para actualizar la experiencia de usuario, pero confirma el estado final desde backend cuando el flujo o método de pago lo requiera.

Siguiente paso

Parámetros de entrada y salida

Revisa el detalle completo de los objetos enviados y recibidos por el SDK.