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.
- Producción: https://payments.koin.com.br/checkout/sdk/v1/methods.js
- Sandbox: https://portal-dev.koin.com.br/checkout/sdk/v1/methods.js
API
- Luego de agregar el script de wallets de Koin a tu página tendrás disponible dentro de window un objeto llamado KoinPayments.
- 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);- 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:
- 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.
- 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:
- 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.
- buttonCssSelector
- Los errores relacionados a esta función también se devuelven en el onError.
- Esta función recibe el siguiente parámetro:
- 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.
- 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).
- 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.
- onFinish(data): Callback que se ejecuta cuando la orden está finalizada o su estado se actualizó (por ejemplo ya cobrada o cancelada).
- 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
| Code | Description | Payload |
|---|---|---|
| PAYMENT_STARTED | Ocurre cuando se inicia el flujo de pago con PayPal. | |
| PAYMENT_CANCELLED | Ocurre cuando el usuario cierra el checkout de PayPal o PayPal cierra el checkout internamente. | |
| WALLET_DESTROYED | Ocurre cuando se llamó a destroy() y la instancia fue eliminada. |
Errores
| Code | Message | Origin |
|---|---|---|
| INITIALIZATION_ERROR | Failed to render PayPal button | PAYPAL |
| PAYMENT_ON_APPROVE_ERROR | Failed to capture PayPal payment | PAYPAL |
| PAYMENT_ERROR | Error durante el proceso de pago. | PAYPAL |
| CANCEL_ERROR | Payment was cancelled by the user | PAYPAL |
| NETWORK_ERROR | Error de red durante la operación. | PAYPAL |
| GENERAL_ERROR | {dynamic} | PAYPAL |
| Code | Message | Origin |
|---|---|---|
| NOT_INITIALIZED | You need to initialize the instance first. | KOIN |
| INIT_MISSING_ORDER_ID | the orderId is missing | KOIN |
| INIT_MISSING_CLIENT_ID | Client ID is required during initialization. | KOIN |
| INIT_MISSING_CURRENCY | Currency is required during initialization. | KOIN |
| INIT_MISSING_AMOUNT | Amount is required. | KOIN |
| INIT_MISSING_CREATE_ORDER | Create order data is missing. | KOIN |
| INIT_MISSING_KOIN_ORDER_ID | Koin order ID is required during initialization. | KOIN |
| PAYMENT_INTERNAL_SERVER_ERROR | Error interno del servidor al procesar el pago. | KOIN |
Ejemplo
Updated 7 days ago
