Skip to main content
Skip table of contents

Inicializar Pay-me SDK Android

A continuación, se detallan los pasos para inicializar el SDK.

Es necesario los datos del paso Parámetros de Entrada y Salida de Pay-me SDK Android y obtener el Access Token del API de Seguridad.

Importar PaymeSDK

Para utilizar las funcionalidades del SDK, se debe incluir la siguientes lineas en el controlador donde se hará la invocación

KOTLIN
import com.alignet.payme.PaymeClient;
import com.alignet.payme.PaymeClientDelegate;
import com.alignet.payme.util.PaymeEnvironment;
import com.alignet.payme.model.*

class MainActivity : AppCompatActivity() {}

Invocar PaymeSDK

El comercio debe interactuar con la clase PaymeClient quien se encargará de iniciar el flujo. La clase se inicia con los siguientes parámetros:

  • delegate: Activity que se encargará de implementar los métodos del delegado.

  • merchantCode: Código del comercio entregado por Alinget

Luego de crear un objeto de la clase PaymeClient, el comercio debe interactuar con dos funciones:

  • setEnvironment: Función que recibe el ambiente donde se hará la autorización.

  • invokePayme: Función que se encarga de invocar al SDK para que el usuario pueda realizar el pago. Esta función recibe los siguientes parámetros:

    • from: Es el activity donde se realizará la invocación del SDK.

    • accessToken: Token de acceso que se debe obtener cada vez que se requiera invocar al SDK del API de Seguridad

    • paymeRequest: El objeto de entrada que contiene toda la información de la transacción.

setEnvironment: Este parámetro nos permitirá seleccionar el ambiente:

  • Development

  • Production

KOTLIN
val customer = PAYMEAddressData(
  firstName= "Pedro",
  lastName= "Suarez",
  email= "producto@pay-me.com",
  phone= "51-999999999",
  identityDocument= PAYMEIdentityDocument(
    type= "DNI",
    identifier= "72111111",
    country= "PE"
  ),
  addressLine1= "Av casimiro Ulloa 333",
  addressLine2= null,  
  city= "Lima",
  state= "Lima",
  country= "PE"
)
val billingShipping = PAYMEAddressData(
  firstName= "Pedro",
  lastName= "Suarez",
  email= "producto@pay-me.com",
  phone= "51-999999999",
  addressLine1= "Av casimiro Ulloa 333",
  addressLine2= null,  
  city= "Lima",
  state= "Lima",
  country= "PE"
)
var additionalFields = HashMap<String,String>()
additionalFields["reserved1"] = "1"
additionalFields["reserved2"] = "1"
additionalFields["reserved3"] = "3"
val paymeChargesRequest = PAYMEChargesRequest(
  transaction= PAYMETransactionData(
    operationNumber= "0000001",
    amount= "1000",
    currency= "604",  
    additionalFields= additionalFields,
    customer= customer,
    billing= billingShipping,
    shipping= billingShipping
  ),
  setting= PaymeSettingData(
    locale= "es_PE",
    paymentMethods= listOf("CARD","YAPE","CUOTEALO")
    walletUserID= nil
  )
)
let paymeClient = PaymeClient(delegate= this, merchantCode= "MERCHANT_CODE")
paymeClient.setEnvironment(environment= PaymeEnviroment.PRODUCTION)
paymeClient.invokePayme(from= this, accessToken= "TOKEN_GENERADO_PARA_ESTA_SOLICITUD", paymeChargesRequest= paymeChargesRequest)

Agregar metodos delegates

Para completar la integración, es necesario agregar los métodos del delegado PaymeClientDelegate. El delegado tiene dos funciones que deben ser implementados por el comercio:

  • onPaymeResponse -> Función que entrega el resultado final

  • onPaymeEvents -> Función que entrega los eventos ocurridos dentro del SDK. Los eventos que puede entregar son los siguientes:

    • BUILD_FORM(methods:[String])

    • CHOOSE_PAYMENT_METHOD(method: String)

    • CANCEL_PAYMENT_METHOD(method: String)

    • PRESS_PAY_BUTTON(method: String)

    • CLOSE_PAYME

CODE
class MainActivity: AppCompatActivity(), PaymeClientDelegate {
    override fun onPaymeResponse(response: PaymeResponse) {}
    override fun onPaymeEvents(event: PaymeEvent) {}
}
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.