en el código de ejemplo de paypal que puedes descargar de su documentación oficial podrás ver que se utiliza el objeto window
para construir la instancia de paypal.Buttons()
globalmente así: window.paypal.Buttons(...)
.
Lo anterior no lo veo en tu código y es necesario para mantener el contexto de ejecución de Buttons
dado que al terminar el usuario de hacer su flujo de aprobación el flujo retorna a buscar la función onApprove()
donde haces la captura de la orden, con lo que la transacción queda finalizada o le das manejo a los errores.
Ahora, no sé qué es todo lo que tienes dentro de onApprove
, pero ahí debería estar el llamado a la ruta /api/orders/${data.orderID}/capture
.
Saludos y suerte con tu implementación.