Paypal

This page will help you get started with Paypal.

⚠️

Content Security Policy (CSP)

Para que esta wallet funcione correctamente en tu sitio, debés incluir en tu Content Security Policy los dominios que devuelve el endpoint de Koin. Si no los agregás, el botón o el checkout pueden no cargar.

V2

Integración

Agregar el script de wallets de Koin.

  1. Producción: https://payments.koin.com.br/checkout/sdk/v1/methods.js
  2. Sandbox: https://portal-dev.koin.com.br/checkout/sdk/v1/methods.js

API

  1. Luego de agregar el script de wallets de Koin a tu página tendrás disponible dentro de window un objeto llamado KoinPayments.
  2. Crear una instancia de la clase order para el método de pago PAYPAL de la siguiente manera:
//Paypal
//Initialize PAYPAL by order
const paypal = await window.KoinPayments.order(orderId);
  1. El paso anterior es el único momento donde nuestro SDK puede arrojar una excepción, por eso recomendamos capturar el error en caso que haya alguno.

Una vez hecho esto, tendremos un objeto creado con los siguientes métodos:

  1. initialize(afterInitializedCallback, options?)
    • El afterInitializedCallback se va a ejecutar solo cuando se haya podido inicializar el sdk con éxito. Caso contrario se puede recibir el error utilizando onError. Opcionalmente podés pasar options: { language?: 'es' | 'en' | 'pt' } para forzar el idioma del checkout.
  2. mount(buttonCssSelector)
    • Esta función recibe el siguiente parámetro:
      • buttonCssSelector
        • Un selector CSS que apunte a un <div> dónde se va a colocar el botón de paypal.
    • Los errores relacionados a esta función también se devuelven en el onError.
  3. onError({code: string; message: string; origin: string;}): Manejo de errores de Paypal o Koin. Siempre siguen el mismo formato. Adherimos a la práctica ‘Never throw’ así que no habrá excepciones en ningún momento. Todos los errores saldrán por este método.
  4. onSuccess({wallet_code: "PAYPAL"; email: string | undefined}): Caso exitoso. Devuelve wallet_code + email (el email es opcional dado que puede que no lo logremos obtener).
  5. onEvent(code, payload): Eventos para comunicar el estado del proceso cuando sea posible y mantener al tanto al consumidor de nuestro script. El payload es opcional dependiendo del evento que se dispare.
  6. onFinish(data): Callback que se ejecuta cuando la orden está finalizada o su estado se actualizó (por ejemplo ya cobrada o cancelada).
  7. destroy(): Elimina la instancia existente del SDK de PayPal si hay una.

> Todos los errores durante el flujo PAYPAL se devuelven mediante el onError.
> Los métodos onSuccess, onEvent, onError y onFinish sólo se pueden usar una vez.

Eventos

CodeDescriptionPayload
PAYMENT_STARTEDOcurre cuando se inicia el flujo de pago con PayPal.
PAYMENT_CANCELLEDOcurre cuando el usuario cierra el checkout de PayPal o PayPal cierra el checkout internamente.
WALLET_DESTROYEDOcurre cuando se llamó a destroy() y la instancia fue eliminada.

Errores

CodeMessageOrigin
INITIALIZATION_ERRORFailed to render PayPal buttonPAYPAL
PAYMENT_ON_APPROVE_ERRORFailed to capture PayPal paymentPAYPAL
PAYMENT_ERRORError durante el proceso de pago.PAYPAL
CANCEL_ERRORPayment was cancelled by the userPAYPAL
NETWORK_ERRORError de red durante la operación.PAYPAL
GENERAL_ERROR{dynamic}PAYPAL
CodeMessageOrigin
NOT_INITIALIZEDYou need to initialize the instance first.KOIN
INIT_MISSING_ORDER_IDthe orderId is missingKOIN
INIT_MISSING_CLIENT_IDClient ID is required during initialization.KOIN
INIT_MISSING_CURRENCYCurrency is required during initialization.KOIN
INIT_MISSING_AMOUNTAmount is required.KOIN
INIT_MISSING_CREATE_ORDERCreate order data is missing.KOIN
INIT_MISSING_KOIN_ORDER_IDKoin order ID is required during initialization.KOIN
PAYMENT_INTERNAL_SERVER_ERRORError interno del servidor al procesar el pago.KOIN

Ejemplo