00:00 -> Introducción 01:11 -> Instalar Paypal-PHP-SDK 01:45 -> Obtener credenciales 06:50 -> Añadir credenciales en archivo .env 08:14 -> Revisión de la vista principal 09:25 -> Controlador PaymentController 12:12 -> Método payWithPaypal() 20:51 -> Ruta paypal/status 21:12 -> Método payPalStatus() 22:18 -> Recuento de avance 24:18 -> Pago de prueba 1 29:30 -> Pago de prueba 2 30:48 -> Redirección a vistas 32:00 -> Mostrar respuesta en la vista 33:17 -> Pago de prueba 3 34:23 -> Comprobar movimientos
Excelente video amigo, me toco integrar PayPal en el trabajo y con tu video me llevaste de "la mano" literal y todo corrió a la primera ya solo falta adecuarlo a mi sistema pero t agradezco el gran aporte a la comunidad
Buenas tardes, te escribo desde México, y bueno sólo quería agradacerte por compartir estos conocimientos, es que compré un curso en Udemy y pues la manera de resolverlo del profe me estaba dando bastantes problemas, y pues con la solución tuya lo he podido resolver bastante rápido. Deberías dar un curso en udemy, de seguro yo te lo compraría, pues he visto un par de videos tuyos y me ha gradado la manera en que explicas las cosas y tu voz es amena y agradable.
Hola. Gracias por el comentario! Me alegra que te haya sido de ayuda. De hecho tengo unos cursos en Udemy, sobre Javascript, Laravel, Vue.js y Android, por si te interesa alguno de ellos jeje. Aún no he publicado uno sobre pagos online pero espero hacerlo pronto. Saludos.
Aun no se si esto aun sigue funcionando (Estoy por averiguarlo) pero muchísimas gracias por este video, y es increíble lo bien que explicas, muchas gracias por este video y tu gran aporte
Gracias por el comentario! Vi que habías escrito una pregunta, ya que me llegó una notificación por correo, pero no la encuentro. ¿Es porque ya lo solucionaste y borraste la pregunta? Saludos!
@@programacionymas Si efectivamente era una pregunta respecto a que no me estaba cayendo en el ultimo if del metodo de payPalStatus a pesar que si hacia el pago correctamente, y en mensaje q me mostraba era: "Lo sentimos! El pago..." pero me percate que estaba escribiendo mal approved y por ello se saltaba el if.. gracias
Excelente tutorial, espero con ansias tu tutorial con Culqi, Mercado Pago u otro plataforma de pagos para poder realizar los pagos con tarjeta de crédito. Gracias por compartir tus conocimientos.
Excelente contenido de video y explicación. Muchas gracias por compartir, me ha ayudado mucho. Felicitaciones por tu gran trabajo, conocimiento y profesionalismo, simplemente excepcional.
Hola Juan, muy bueno el tutorial como siempre, estaría bien que hicieras uno sobre stripe implementando la posibilidad de pagos por suscripción, por ejemplo que el usuario pague una suscripción de un año y esta suscripción sea renovada automáticamente cuando acabe dicho año.
Me sale un error en el archivo de configuración paypal.php en la línea de client id... me dice algo de la sintaxis en los : a alguien le sucedió lo mismo? Necesito Ayuda...!!!
@@IbBlog Debe decir env('PAYPAL_CLIENT_ID'). Ya que env es la función, y el argumento enviado es una cadena. La parte que dice "key:" la agrega el IDE sólo como información, pero no forma parte del código.
Muy claro y bien explicado el tutorial. Aunque me he estado partiendo la cabeza con un error que me lanza y es el siguiente "Credential not found for default user. Please make sure your configuration/APIContext has credential information" ya he revisado que la llamada a la clase y los valores esten exactamente como en el tutorial y aun asi me sigue lanzando lo mismo. Ya encontre el error UwU era este XD $this->$apiContext
¿Cómo puedo manejar el tema del estatus? Tengo una situación cuando hago el pago necesito levantar un pedido, es decir, si paypal me devuelve el approved pues entonces debería poder generar un pedido pero para generarlo necesito mandarle el request con toda la info del pedido datos de envío, facturación, array de productos etc. esos datos los mando a una api de otro sistema que tengo. en mi función de paypalPay recibo todos estos datos pero no entiendo muy bien cómo funciona el manejo de la creación del pedido, re dirección a pagar de paypal y la llamada de la función de paypalStatus, porque al paypalStatus no puedo enviarle mi request con toda la info porque hasta donde comprendo el paypalStatus es donde termina el flujo. No sé si me dí a entender.
Hola Natalia. Una alternativa es crear tu pedido en tu BD, con toda su información asociada, pero ponerle un estado de "CREATED". Entonces luego de proceder con el pago y confirmar que se realizó, el estado pasaría a "PAID" o "APPROVED".
Disculpa tengo otra pregunta voy iniciando en laravel, y me surgió un problema no me lee las variables del archivo .env ojala me pudieras ayudar @Programaciónymás
Hola. ¿Estás usando VirtualHosts en Apache? En caso que no te recomiendo revisar este artículo: programacionymas.com/blog/archivo-hosts-y-virtual-hosts-apache-windows
Hola buenas tardes una pregunta como puedo utilizar esta peticion /v2/payments en ves de /v1/payments Al consumir el SKD de Paypal esta consumiendo esta tuta /v1/payments como puedo cambia ala version /v2/payments , puesto que he leido en la documentación que la v1 ya esta absoleta
Ayuda porfavor me da error todo el rato esta línea: $payment->create($this->apiContext); No entiendo porque, este es el error: sizeof(): Argument #1 ($value) must be of type Countable|array, string given Ya llega al borde de desesperacion absoluta, porque he comprobado de mil maneras que pasa, comprobado y recomprobado que es una array, pero sigue diciendo que es una string, le he pasado incluso esto: $payment->create([]); y me sigue diciendo que es una string, porfavor ayudenme
Hola, implementé tu metodo tal cual y funciona perfecto. Gracias. Ahora, cuando cambio el modo y las credenciales a Live, me arroja el error invalid_client, Client Authentication failed. Ya verifiqué y he creado varias cuantas live y solo tengo problemas con ellas. Las sandbox funcionan perfecto. Gracias por tu respuesta.
Hola. Lo curioso es que el error de client authentication indica justamente que hay un error con los datos. Prueba a imprimir tus variables .env con dd para ver si se han actualizado. A veces quedan cacheadas.
@@andresmarquez1705 Puedes probar los comandos clear config y clear cache para que se actualicen las credenciales, en caso continúe usando las antiguas.
@@andresmarquez1705 Hola el problema, es que en el tutorial se olvidaron de poner una línea de código que hace toda la magia, no sé si es un tema de actualización del framework o un tema de edición del video, pero sin esta línea no se aplica la configuración a la transacción y nunca funcionará. En el constructor, luego del Api context agregar la siguiente linea. $this->apiContext->setConfig($payPalConfig['settings']); Si necesitas ayuda me escribes por inbox o me buscas en facebook.
Que alguien me ayude por favor, al utilizar el linea: $payment->create($this->apiContext); Me sale todo el rato el siguiente error: sizeof(): Argument #1 ($value) must be of type Countable|array, string given Ya no se que puedo hacer, he comprovado que el argumento que se le pasa es una array, no entiendo porque lo pasa como string, que alguien me ayude.
Hola Alex! Puedes comentar "create" y ver si obtienes el mismo error. Tal vez falla en otro lado. Si el error está en "create", puedes inspeccionar cómo está definido, y ver en qué punto se llama a "sizeof", y allí imprimir si el valor que llega es realmente el que crees.
Hola, ¿es posible generar una factura personalizada una vez realizada la compra? ¿Y también cómo paypal para conectarse a una máquina de tarjetas? Utilice paypal para trabajar con un sistema de facturas imprimiendo al mismo tiempo / casi al mismo tiempo
Hola. Sí, puedes generar una factura personalizada. Recuerda que Laravel es sólo el medio de pago. Adicional a ello puedes generar documentos o hacer otras acciones desde tu aplicación web. Respecto a lo otro, la verdad no lo he visto, pero hasta donde tengo entendido PayPal es para hacer pagos online, y las máquinas que aceptan pagos con tarjeta son servicios ofrecidos por otras empresas. Es decir, es un método de pago distinto.
Hola buenas tardes, soy nuevo en laravel y estoy utilizando laravel 7.26 y he hecho en su mayoria como tu lo llevas ya que en el config no me dejaba declara de la misma forma que tu lo hacias y pues me da este error : Array to string conversion , este error se me da cuando se hace el llamado de : $payment->create($this->apiContext); , agradeceria mucho tu ayuda
Creo que en tu archivo de configuración no le has asignado los valores correctamente. El mensaje de error da a entender que se ha proporcionado un array para una parte donde se necesita un string.
Gracias amigo, me ayudo muchísimo con estos pasos pude implementar pagos por paypal a un cliente y funciona de maravilla. Claro, ajusté algunas cosas como las direcciones de respuesta para adaptarlas a mi aplicación. Mil gracias, toma tu like... Tengo una pregunta. En una parte del video, colocas código de la documentación para hacer el exec del pago (justo después de los que salen en make your first call), en esta parte tuve que tipear a mano lo que tú colocaste porque no lo conseguí por ningún lado, me puedes enviar el link de la documentación de donde lo sacaste? Esto, para futuras integraciones en más proyectos. Saludos.
Hola Ernesto. Me parece excelente que lo hayas podido implementar. Respecto al código, también puedes copiarlo desde este enlace: programacionymas.com/blog/integrar-pagos-paypal-en-laravel Es un artículo que hice como acompañamiento de este video.
Hola Marlon. En tu URL de status (returnUrl) podrías incluir el id que mencionas. Así cuando PayPal te notifique lo tendrías disponible como un parámetro de ruta.
tengo un error al momento de realizar el test del pago me envia un error {"error":"invalid_client","error_description":"Client Authentication failed"} y las credenciales son correctas
Hola. Verifica que los nombres que usas en el archivo de configuración coincidan con las variables declaradas en tu archivo .env De hecho puedes imprimir tales valores, para asegurarte de que están bien. O tal vez has copiado credenciales de modo live en vez de sandbox.
Ayuda me da error en esta linea al momento de ejecutar la parte del dd($result); En esta línea me da el error: $payment = Payment::get($paymentId, $this->apiContext);
@@programacionymas el error empieza en la parte en la que tomamos los datos paymentId, PayerId y token en esta linea: $payment = Payment::get($paymentId, $this->apiContext); EL MENSAJE DE ERROR ES ESTE: Error Class 'Paypal\Api\Payment' not found
Hola. ¿No te has saltado el paso de hacer "composer require"? Porque si no encuentra la clase es muy probable que no hayas agregado la dependencia del paquete a tu proyecto.
@@IbBlog Si el mensaje de error es el que comentas, verifica que PayPal esté descargado en la carpeta vendor, y que la dependencia esté declarada en tu archivo composer.json
@@programacionymas gracias estuve revisando todo el código y gracias a Dios encontré el error y el problema fue que mi editor de código no estaba importando el Api Payment y por eso me daba el error, tuve que ingresarlo manualmente, pero ya se solucionó muchas gracias por tu ayuda gracias a ti pude terminar mi proyecto... Me Suscribo..!!
Hola profe, gracias por compartir tu conocimiento con la comunidad. Cuando instalo el paquete paypal/rest-api-sdk-php me muestra un mensaje que el proyecto ha sido abandonado, sabrás de alguna alternativa a este paquete? Muchas gracias, saludos desde México.
Hola. Gracias por el comentario. Justamente estoy preparando un video nuevo sobre cómo hacer la implementación con el Javascript SDK de PayPal. Si necesitas hacer la implementación server side puedes revisar por aquí: developer.paypal.com/docs/api/rest-sdks/
Excelente,... muy bueno. Hice todo el proceso y me arroja los resultados correctamente... El asunto es que en mi cuenta de desarrollador no veo ninguna transacción en notificaciones. Por qué será?
@@programacionymas Gracias por responder... No veo transacciones ni en la cuenta del que compra ni en la cuenta del que recibe... pero la respuesta de la API es aproved y puedo ver todo el contenido del objeto con dd
@@programacionymas PayPal\Api\Payment {#1298 ▼ -_propMap: array:11 [▼ "id" => "PAYID-L4TWZBA52E4534033347605S" "intent" => "sale" "state" => "approved" "cart" => "42326589FG5982408" "payer" => PayPal\Api\Payer {#1327 ▶} "transactions" => array:1 [▶] "redirect_urls" => PayPal\Api\RedirectUrls {#1321 ▶} "create_time" => "2020-08-03T01:46:43Z" "update_time" => "2020-08-03T01:47:24Z" "links" => array:1 [▶] "failed_transactions" => [] ] } Esta es mi respuesta... y no, solo tengo una APP, y una sola cuenta ya que no tenía ninguna, la creé al seguir tu video. La verdad que es muy extraño
@@programacionymas Algún delay en PayPal... ya el día de hoy veo las transacciones que realicé anoche. Muchas gracias estimado... atento a tus próximos videos y mucho éxito!
Hola. Puedes usar la SDK de Javascript: developer.paypal.com/docs/business/javascript-sdk/ De hecho tengo un video grabado sobre este tema pero aún no he tenido tiempo de editar y publicarlo. Espero hacerlo la siguiente semana.
Hola, todo bien de momento, tengo una duda después de que se realiza el cargo con la cuenta en modo sandbox hace todo el proceso bien, pero en la pestaña de notificaciones no se visualiza ninguna, hay alguna configuración extra para que se puedan visualizar? Pd en la cuenta bussines solo cuando le doy editar y refrescar se ve que se balance aumenta cuando se hace la transacción pero no se ve ninguna notificación.
Hola Jonathan. Es probable que PayPal no genere notificaciones en modo sandbox. Lo importante es que puedas ver las transacciones. Porque eso significa que al estar en modo Live, éstas se procesarán también correctamente.
Hola buenas tardes, como puedo hacer para que cuando el pago sea aprobado se guarde en la base de datos a fin de que en otra vista poder listarlos todos los pagos, porfavor ayudame TT_TT
Hola Christhian. ¿Si seguiste el video y te funciona todo? Dentro del if que compara $result->getState() con 'approved' puedes agregar un Payment::create() y pasarle los datos del pago. Para que funcione sólo debes definir un modelo y migración previamente: php artisan make:model Payment -m
@@programacionymas y ojo que tengo las cuentas sandbox tanto el business como la personal y cuando uso la del vendedor me sale que estoy usando la cuenta del vendedor y cuando pongo la otra me sale que no puedo usar el paypal y que pruebe en otro momento luego me manda al failed
En el modo Live tengo el siguiente error {"error":"invalid_client","error_description":"Client Authentication failed"} pero cree mi apliacion en live y copie y pegue las credencailes de manera correcta y le puse modo live en .env que podria ser ?
Hola. Puedes imprimir con dd el valor de tus variables env, para asegurar de que tienen los valores asignados, ya que a veces no actualiza y usa valores de caché. Lo otro es contactar al equipo de soporte de PayPal, para confirmar que tu cuenta no tenga ninguna restricción.
Hola es posible hacer lo mismo pero con tarjetas de credito VISA y MAsterCArd conectando sus API con un projecto de Laravel, he buscado informacion acerca de esto, y no he encontrado mucho. Gracias
Sí, PayPal también ofrece la posibilidad de pagar con tarjeta sin contar con una cuenta PayPal. Aunque lo más adecuado sería integrar otro método de pago adicional.
Saludos muy intuitivay a su vez precisa la explicacion. Me gustaria saber si actualmente se sigue usando ese SDK o hay alguna alternativa ya que cuando lo estoy instalando me arroja el siguiente warning "Package paypal/rest-api-sdk-php is abandoned, you should avoid using it. No replacement was suggested." y el paquete no me acepta las credenciales
Hola. Hay una versión más reciente, sin embargo esta versión seguirá funcionando debido a que una gran número de clientes de paypal hizo la integración con esta.
Hola ! gracias por vídeo , estaba pensando en integrar paypal pero a nivel Marquetplace, donde el comprador al hacer el pago, yo como Marquetplace pueda destinar el dinero a los distintos vendedores y poder retener a cada uno una comisión, es posible hacerlo con Paypal ?
Hola. Sí es posible. En el video vemos cómo implementar pagos con PayPal (desde los usuarios a tu cuenta de administrador). Pero PayPal también tiene una API llamada "PayPal Mass Payouts". Con esto puedes hacer pagos masivos a X usuarios, pagando a cada uno lo que corresponde. Y PayPal automáticamente genera un correo informando a cada uno sobre el pago que ha recibido. Esta característica es usada por Udemy y Gumroad.
Hola, cuando accedo a la ruta paypal/pay no me redirecciona al get aproval link, sin embargo entra por el try(lo he comprobado con un dd), sabes que puede ser?
Hola. Prueba imprimiendo el valor de getApprovalLink para asegurar que realmente sea una URL válida. Revisa que estés usando $payment->create e inicializando $this->apiContext correctamente.
@@programacionymas El código utilizado es copiado de tu pagina, así que no debería de tener el error ahí, voy a imprimir el valor de get aprovallink para comprobarlo
@@programacionymas Esta dando el error cuando $payment->create($this->apiContext), ya que despues de hacer eso salta al catch, aun q no imprime nada del error
Hola tocayo. Puedes empezar leyendo la documentación de su api: www.mercadopago.com.pe/developers/es/guides/online-payments/marketplace/checkout-api/introduction/
Hola Jorge. Sí, puedes usar el repositorio. PayPal no puede quitar el soporte porque deben haber varios miles de páginas usando esta versión. De todos modos, pronto espero tener tiempo para hacer un video con la nueva versión.
Una super duda! Ya todo funciona perfecto y muchísimas gracias! Solo que una vez que el cliente pague con tarjeta de crédito, como específico los meses en los que quedará diferido?? O eso ya lo arregla Paypal con el banco directamente??
Es correcto, es un tema de PayPal con el banco. De igual forma debes tener en cuenta que PayPal tiene una política de reembolsos. No es muy común, pero los clientes pueden iniciar disputas si no reciben lo que han comprado.
@@programacionymas genial muchísimas gracias man!! Y si ya había leído que había cierto tema con la política de reembolsos, lo tendré en cuenta, muchas gracias! 😌
Hola que tal tengo un error desde el siguiente link www.sandbox.paypal.com/webapps/hermes?flow=1-P&ulReturn=true&token=EC-69L46378HJ6101738&hermes=1&fromLite=1#/checkout/genericError?code=UEFZTUVOVF9ERU5JRUQ%3D genericError?code=UEFZTUVOVF9ERU5JRUQ%3D, es lo que resalta todo bien hasta cuando logueamos al usuario sandbox automaticamente pasa al metodo pago (como si le hubiera dado click a pagar) y genera ese link con el mensaje "No es posible procesar el pago con su cuenta de PayPal en este momento. Regrese al sitio web del comercio e intente utilizar otra forma de pago." alguien le paso lo mismo?
Sí, justamente con el Javascript SDK de PayPal se puede hacer eso. Hace poco lo implementé y lo grabé como video. Espero poder editarlo pronto para subirlo al canal.
Bro me sale un error, Credential not found for default user. Please make sure your configuration/APIContext has credential information seguí todo el video al pie de la letra :/
@@programacionymas , literal no sale nada, de hecho si pongo un return '123'; me salen perfectamente los numero, pero no el formulario, gracias por responder
hola como estas me sale este error a lo q intalo el paquete (Package paypal/rest-api-sdk-php is abandoned, you should avoid using it. No replacement was suggested)
me da un error. Trying to access array offset on value of type null. me falla el $payPalConfig['client_id'], $payPalConfig['secret'], no consigo sacarlo.
@@asisea.7368 Hola. Debes definir tus credenciales en tu archivo .env Es decir, copiar desde tu cuenta de PayPal Developer tu client_id y client_secret y situarlos en tu proyecto.
En mi caso el pago si lo hace , pero por alguna razon se tarda en llegar la notificacion, cuando llega , me muestra que la hora de pago se hizo justo en el momento que le di a pagar , el problema que tengo es que se tarda en llegar la notificacion , a que crees que se deba? e hecho muchas pruebas
@@programacionymas A las notificaciones de "Pago recibido" Que muestra la cuenta creada para sandbox. El problema que tengo es que si yo, a las 11:30 compró algo mediante PayPal con esa cuenta, y revisó la notificación, no aparece si no dentro de como 5 minutos, y cuando pasan 5 min , la notificación dice que lo recibí a las 11:31 , o la misma hora, 11:30 , el problema es que no se porque se me tarda en mostrar esa notificación y pienso que no funciona lo que hice ya que lo acomode ya para mi sistema xd
@@programacionymas entonces el problema es más por la versión de sandbox que lo que yo hice en el Código? Entonces, si es así, para cambiarlo a modo live solo cambió la palabra sandbox por live y las credenciales?
Hola, en el caso de integrarlo en un proyecto para que el cliente lo use con sus propias credenciales, tendría que crear el mismo una cuenta en la página de desarrolladores y crear una app o podría acceder a las credenciales desde su cuenta de business? gracias de antemano
Hola. Es correcto. El cliente usando su cuenta Business debe crear una aplicación Live y compartirte las credenciales para que pueda recibir pagos. Pero eso puedes solicitarlo al final. Si dispones de credenciales Sandbox puedes usar esas mientras desarrollas.
Gran trabajo y buen vídeo! 🤙🏻 Tengo una duda con respecto al pago en (USD) cuando mi moneda es soles (PEN). tendría que consumir una API para hacer la conversión de Soles a Dolares?
Hola. Mi cuenta de PayPal está en USD, pero cuando he comprado productos en otras monedas veía 2 movimientos en mi cuenta, uno donde me descontaba en USD, y otro haciendo el pago con la moneda de la tienda. Es decir, PayPal hace la conversión si es necesario. A menos que el usuario en su configuración haya indicado que no quiere hacer ello.
Hola. Espero publicar un video pronto con la nueva versión. Que esté deprecated significa que PayPal ya no va a actualizar esa versión, sin embargo tampoco la darán de baja por existir muchas apps usándola hoy en día. Saludos.
Hola muy buen vídeo pero tengo un problema con las credenciales de Paypal me dice credentail not found for default user, no sé si alguien podría decirme como solucionar ese problema
Hola. ¿Sí creaste nuevas cuentas Sandbox en la consola de PayPal? ¿También agregaste tus credenciales en tu archivo .env y las cargaste en el constructor de tu controlador?
Gran tutorial, se agradece mucho! Pero me gustaría saber quién fue el visco que se equivocó de botón y en lugar de darle "Me gusta" le dió "No me gusta" 😂
Excelente video! me funciono correctamente en modo Sandbox, solo que al momento de cambiar a Live me muestra este error {"error":"invalid_client","error_description":"Client Authentication failed"}, ya verifique las credenciales y los nombres de las variables en el archivo .env /config, tambien cambie el PAYPAL_MODE a 'live', sin embargo sigo sin poder acceder. ¿hay algún paso que me este faltando, o debería de funcionar correctamente con esto?
Hola Daniel. El mensaje de error menciona explícitamente que falla la autenticación. Si ya has revisado tus credenciales en el .env te sugiero imprimirlas en algún lugar para asegurarte de que no hay valores antiguos en caché o algo similar.
@@programacionymas he estado imprimiendo en el archivo de paymentController, y si me manda las credenciales desde .env , hice un dd($paypalConfig), y me fije que en el arreglo de sandbox siempre manda un "app_id", pero en arreglo de Live ese campo esta vació no se si ese pueda ser el problema, me parece muy extraño porque ya subí la prueba de sandbox en un host y todo funciona correctamente.
Hola buen día, disculpa no me reconoce el use de Paypal me dice que la clase no se encuentra. Cuando hice la instalación con composer me marca Package paypal/rest-api-sdk-php is abandoned, you should avoid using it. No replacement was suggested. pero en el vendor si veo la carpeta entonces no sé qué puede estar mal. Soy super nueva con laravel y nunca había hecho integraciones de pagos entonces no más no puedo solucionar el problema, no sé si puedas ayudarme. Muchas gracias de antemano
Muchas gracias, muy buena la explicacion, me ha servido mucho! tengo dos consultas por favor si puedes aclarar: 1.Con el sdk de php es posible ejecutar el pago desde una ventana modal (sin dirigir al usuario al sitio de paypal), o eso es solo posible con el sdk de js? 2.Existe forma de configurar la ruta para las IPN dentro del sdk de php? o eso solo puede configurarse desde el sitio de PayPal? Gracias!
Hola. Probablemente ya has resuelto tus dudas, pero de igual forma respondo. 1- Con el SDK siempre se pasa a través de PayPal, ya que eso es lo que da al usuario la certeza de que PayPal es seguro. De hecho la implementación JS incluye un modal pero también termina abriendo PayPal como página. 2- Se hace desde el panel de administración, en el sitio para desarrolladores de PayPal.
Hola. Gracias por el aporte. Cuando revisé la documentación no vi ningún alerta 🤔 Pero voy a revisar lo que comentas para subir una actualización. Saludos.
No la soporta... Ya he probado. Puedes hacer todo esto y usarlo para probar sandbox, funciona perfecto pero cuando pasas a live, ya no te deja hacer pagos. Tienes que usar la nueva version y cambia un monton todo.
@@Levonor-Gestrel Hola Ernesto. En realidad tengo 3 aplicaciones usando código basado en el ejemplo del video y continúan aceptando pagos con normalidad. Paypal al declarar como deprecated la versión 1 significa que no le dará más mantenimiento, pero su funcionamiento no es interrumpido. De todas formas, espero preparar pronto un nuevo video usando la nueva API.
Hola, he seguido todos los pasos y checado varios blogs, pero no encuentro la solución a este error: Route [paypal/pay] not defined. --> me podrás apoyar?, mil gracias.
Buen video, pero tengo un error cuando se invoca $payment->create "Required parameter $path follows optional parameter $handlers". Copie el codigo tal cual, que será?
@@programacionymas A partir del 17:32, la parte del código que me tira error es try { $payment->create($this->apiContext); return redirect()->away($payment->getApprovalLink()); } catch (PayPalConnectionException $ex) { echo $ex->getData(); }
@@cristhianganchala8463 Que tal, la verdad no me acuerdo, creo que seguí otro video y me salió con ese. Si no estoy mal fue ua-cam.com/video/LlkJvoybDoU/v-deo.html&ab_channel=WebDevMatics Espero te salga!
PayPal con su SDK de Javascript también permite aceptar pagos con tarjetas. Es decir, que el usuario ingrese los detalles de su tarjeta sin tener una cuenta de PayPal. Actualmente estoy trabajando en un video sobre Google Maps en Android, luego de publicar ese editaré el de PayPal JS SDK, que lo tengo pendiente también. Saludos!
Si entiendo campeón, yo ya tengo el de PayPal, lo que me falta es agregar otro tipo de pago que sería de Paraguay! Y lo que yo tengo es una página web de laravel y lo que no encuentro es el código donde agregarlo
PayPal Cards está disponible internacionalmente. La integración de cualquier método de pago sigue la misma idea... procesar las peticiones a la API correspondiente desde el controlador.
Below is the message when trying to install the package included in this video. We should go to PayPal SDK V.2. A new tutorial is needed for that. thanks. - Installing paypal/rest-api-sdk-php (1.14.0): Downloading (100%) Package phpunit/php-token-stream is abandoned, you should avoid using it. No replacement was suggested. Package paypal/rest-api-sdk-php is abandoned, you should avoid using it. No replacement was suggested.
@@programacionymas Si es solo en las dependencias de paypal concretamente aqui "vendor\paypal est-api-sdk-php\lib\PayPal\Transport\PayPalRestCall.php:53"
Buena tarde. Gracias por este gran aporte. Lo estoy implementando desde mi localhost, pero me marca un error de CORS, Access to XMLHttpRequest at 'www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token='' (redirected from 'localhost:8000') from origin 'localhost:8000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request. He buscado soluciones, pero no he logrado conectarme con paypal, ¿puedes orientarme al respecto?
Hola. Lo siento, recién veo tu mensaje. YT no me envió notificación. ¿Ya lo solucionaste? ¿El error en qué paso te aparece? ¿El link de pago lo generas desde tu controlador?
Hola amigo estaba viendo tus videos de Microcode, como podría hacer el contador pero con un PIC16F877A pero agregandole una pantalla LCD en los puertos B y los dos contadores en el puerto C? Ya que en mi código solo se puede leer el contador en la pantalla pero los otros contadores no, te agredecería si me ayudarás . Así tengo mi codigo para contador de la pantalla (va contando de 5 en 5 por cierto) Te queria mandar un mensaje por twitter pero no pude DEFINE LCD_DREG PORTB DEFINE LCD_DBIT 4 DEFINE LCD_RSREG PORTB DEFINE LCD_RSBIT 0 DEFINE LCD_EREG PORTB DEFINE LCD_EBIT 1 contador VAR BYTE PAUSE 100 limpiar: contador=0 LCDOUT $fe,1 ciclo: LCDOUT $fe,2 LCDOUT "Contador:", DEC contador PAUSE 200 contador=contador+5 IF contador >95 THEN limpiar GOTO ciclo end
00:00 -> Introducción
01:11 -> Instalar Paypal-PHP-SDK
01:45 -> Obtener credenciales
06:50 -> Añadir credenciales en archivo .env
08:14 -> Revisión de la vista principal
09:25 -> Controlador PaymentController
12:12 -> Método payWithPaypal()
20:51 -> Ruta paypal/status
21:12 -> Método payPalStatus()
22:18 -> Recuento de avance
24:18 -> Pago de prueba 1
29:30 -> Pago de prueba 2
30:48 -> Redirección a vistas
32:00 -> Mostrar respuesta en la vista
33:17 -> Pago de prueba 3
34:23 -> Comprobar movimientos
Este man es lo mejor que le puede pasar a uno cuando esta embollado con eso. Gracias mi hermano
Excelente comentario! Jaja gracias 👍
Excelente video amigo, me toco integrar PayPal en el trabajo y con tu video me llevaste de "la mano" literal y todo corrió a la primera ya solo falta adecuarlo a mi sistema pero t agradezco el gran aporte a la comunidad
Gracias Roberto por tu comentario! Me alegra que el video te haya sido de ayuda.
Saludos.
Buenas tardes, te escribo desde México, y bueno sólo quería agradacerte por compartir estos conocimientos, es que compré un curso en Udemy y pues la manera de resolverlo del profe me estaba dando bastantes problemas, y pues con la solución tuya lo he podido resolver bastante rápido. Deberías dar un curso en udemy, de seguro yo te lo compraría, pues he visto un par de videos tuyos y me ha gradado la manera en que explicas las cosas y tu voz es amena y agradable.
Hola. Gracias por el comentario! Me alegra que te haya sido de ayuda.
De hecho tengo unos cursos en Udemy, sobre Javascript, Laravel, Vue.js y Android, por si te interesa alguno de ellos jeje.
Aún no he publicado uno sobre pagos online pero espero hacerlo pronto.
Saludos.
Hola, non spanish speaking here. I found your tutorial useful and I can still follow it even if in spanish. Thanks a lot
That's great to know. Thank you for your comment!
Felicidades, ademas de un tutorial muy útil, excelente pedagogía muy buen trabajo
Genial! Gracias compañero por el comentario.
Aun no se si esto aun sigue funcionando (Estoy por averiguarlo) pero muchísimas gracias por este video, y es increíble lo bien que explicas, muchas gracias por este video y tu gran aporte
Seguro que funciona
Lo uso en mi propia página de cursos jeje: programacionymas.com/planes
Saludos!
Excelente video, gracias
Con gusto. Gracias por comentar.
Excelente video, buen material mejor q Netflix
Gracias por el comentario! Vi que habías escrito una pregunta, ya que me llegó una notificación por correo, pero no la encuentro.
¿Es porque ya lo solucionaste y borraste la pregunta?
Saludos!
@@programacionymas Si efectivamente era una pregunta respecto a que no me estaba cayendo en el ultimo if del metodo de payPalStatus a pesar que si hacia el pago correctamente, y en mensaje q me mostraba era: "Lo sentimos! El pago..." pero me percate que estaba escribiendo mal approved y por ello se saltaba el if.. gracias
Necesito ayudaaaa
@@noemim3353 Hola, Noemi, si gusta podrías dar mayor contexto de tu problema para ver como se te podría ayudar, salu2.
Excelente tutorial, espero con ansias tu tutorial con Culqi, Mercado Pago u otro plataforma de pagos para poder realizar los pagos con tarjeta de crédito. Gracias por compartir tus conocimientos.
Gracias por comentar. Espero hacer pronto uno sobre Culqi.
@@programacionymas Si porfa , me ayudarías bastante
Excelente vídeo, de los mejores tutoriales que he visto.👍🏽
Genial. Gracias por comentar!
ESTA BUENISIMO!
Gracias por el comentario!
Muy bueno, ya pude hacer funcionar mi tienda, gracias.
Excelente!
Gracias por el excelente contenido, nuevo suscriptor!
Genial! Gracias por comentar y seguir el canal 🚀
¡Excelente tutorial! Gracias.
Con gusto! Gracias por comentar.
Thank you, from Belgium...
Cool. You are welcome!
Esta bueno el video...
Gracias por comentar!
Excelente contenido de video y explicación. Muchas gracias por compartir, me ha ayudado mucho. Felicitaciones por tu gran trabajo, conocimiento y profesionalismo, simplemente excepcional.
Muchas gracias por tu comentario! Me alegra que el video sea de ayuda.
Execelente video
Gracias por el comentario!
Hola Juan, muy bueno el tutorial como siempre, estaría bien que hicieras uno sobre stripe implementando la posibilidad de pagos por suscripción, por ejemplo que el usuario pague una suscripción de un año y esta suscripción sea renovada automáticamente cuando acabe dicho año.
Hola. Gracias por comentar. Es una buena idea, ya que sería útil para proyectos SaaS de cualquier tipo.
@@programacionymas Excelente y mucho ánimo con tus proyectos.
Me sale un error en el archivo de configuración paypal.php en la línea de client id... me dice algo de la sintaxis en los : a alguien le sucedió lo mismo? Necesito Ayuda...!!!
Hola. Copia por aquí la línea o bloque de código donde te marca error de sintaxis, para ayudarte a ver dónde está el fallo.
me sale un error en la linea de CLIENT_ID y lo copie tal y como esta
@@IbBlog Debe decir env('PAYPAL_CLIENT_ID'). Ya que env es la función, y el argumento enviado es una cadena.
La parte que dice "key:" la agrega el IDE sólo como información, pero no forma parte del código.
@@programacionymas entonces del codigo le elimino todos los key: y tambien el path: y el default: ????
Muy claro y bien explicado el tutorial. Aunque me he estado partiendo la cabeza con un error que me lanza y es el siguiente "Credential not found for default user. Please make sure your configuration/APIContext has credential information" ya he revisado que la llamada a la clase y los valores esten exactamente como en el tutorial y aun asi me sigue lanzando lo mismo.
Ya encontre el error UwU era este XD $this->$apiContext
Excelente!
¿Cómo puedo manejar el tema del estatus? Tengo una situación cuando hago el pago necesito levantar un pedido, es decir, si paypal me devuelve el approved pues entonces debería poder generar un pedido pero para generarlo necesito mandarle el request con toda la info del pedido datos de envío, facturación, array de productos etc. esos datos los mando a una api de otro sistema que tengo. en mi función de paypalPay recibo todos estos datos pero no entiendo muy bien cómo funciona el manejo de la creación del pedido, re dirección a pagar de paypal y la llamada de la función de paypalStatus, porque al paypalStatus no puedo enviarle mi request con toda la info porque hasta donde comprendo el paypalStatus es donde termina el flujo. No sé si me dí a entender.
Hola Natalia. Una alternativa es crear tu pedido en tu BD, con toda su información asociada, pero ponerle un estado de "CREATED".
Entonces luego de proceder con el pago y confirmar que se realizó, el estado pasaría a "PAID" o "APPROVED".
Saludos. Gracias por el tutorial.
Con gusto :)
gracias , me gusto mucho el video aprendi mucho, si puedes hacer el video de Stripe seria genial!!
Gracias por el comentario!
Sí, tengo pendiente hacer sobre Stripe y PayU.
Disculpa tengo otra pregunta voy iniciando en laravel, y me surgió un problema no me lee las variables del archivo .env ojala me pudieras ayudar @Programaciónymás
Hola. ¿Estás usando VirtualHosts en Apache?
En caso que no te recomiendo revisar este artículo: programacionymas.com/blog/archivo-hosts-y-virtual-hosts-apache-windows
Hola buenas tardes una pregunta como puedo utilizar esta peticion /v2/payments en ves de /v1/payments
Al consumir el SKD de Paypal esta consumiendo esta tuta /v1/payments como puedo cambia ala version /v2/payments , puesto que he leido en la documentación que la v1 ya esta absoleta
Hola Hugo. En ese caso puedes guiarte de este otro videotutorial, que es más reciente: ua-cam.com/video/X3skr1a-kk4/v-deo.html
Hola me puede ayudar para realizar cobros con tarjeta de crédito que herramientas se utilizaría
Hola. Para ello puedes usar pasarelas como Culqi, PayU o Stripe.
Ayuda porfavor me da error todo el rato esta línea: $payment->create($this->apiContext);
No entiendo porque, este es el error: sizeof(): Argument #1 ($value) must be of type Countable|array, string given
Ya llega al borde de desesperacion absoluta, porque he comprobado de mil maneras que pasa, comprobado y recomprobado que es una array, pero sigue diciendo que es una string, le he pasado incluso esto: $payment->create([]); y me sigue diciendo que es una string, porfavor ayudenme
Hola. Mira el stacktrace.
Si no pasas nada y da el mismo error, lo más probable es que esté fallando en otra clase u otro método, no exactamente allí.
muy bueno, lo voy a probar
Excelente! Gracias por comentar.
@@programacionymas sería chevere que dijeras como pasarlo a producción
Hola, implementé tu metodo tal cual y funciona perfecto. Gracias. Ahora, cuando cambio el modo y las credenciales a Live, me arroja el error invalid_client, Client Authentication failed. Ya verifiqué y he creado varias cuantas live y solo tengo problemas con ellas. Las sandbox funcionan perfecto. Gracias por tu respuesta.
Hola. Lo curioso es que el error de client authentication indica justamente que hay un error con los datos.
Prueba a imprimir tus variables .env con dd para ver si se han actualizado.
A veces quedan cacheadas.
Amigo tengo el mismo problema en el modo live. Si revise las variabes del .env y llegan pero no se que mas sera
@@andresmarquez1705 Puedes probar los comandos clear config y clear cache para que se actualicen las credenciales, en caso continúe usando las antiguas.
@@programacionymas no funciona, pero en paypal developers no hay que configurar algo mas o en el .env o en el archivo de configuracion paypal.php?
@@andresmarquez1705 Hola el problema, es que en el tutorial se olvidaron de poner una línea de código que hace toda la magia, no sé si es un tema de actualización del framework o un tema de edición del video, pero sin esta línea no se aplica la configuración a la transacción y nunca funcionará. En el constructor, luego del Api context agregar la siguiente linea. $this->apiContext->setConfig($payPalConfig['settings']);
Si necesitas ayuda me escribes por inbox o me buscas en facebook.
Que alguien me ayude por favor, al utilizar el linea: $payment->create($this->apiContext);
Me sale todo el rato el siguiente error: sizeof(): Argument #1 ($value) must be of type Countable|array, string given
Ya no se que puedo hacer, he comprovado que el argumento que se le pasa es una array, no entiendo porque lo pasa como string, que alguien me ayude.
Hola Alex! Puedes comentar "create" y ver si obtienes el mismo error. Tal vez falla en otro lado.
Si el error está en "create", puedes inspeccionar cómo está definido, y ver en qué punto se llama a "sizeof", y allí imprimir si el valor que llega es realmente el que crees.
Excelente
Gracias!
Hola, ¿es posible generar una factura personalizada una vez realizada la compra?
¿Y también cómo paypal para conectarse a una máquina de tarjetas?
Utilice paypal para trabajar con un sistema de facturas imprimiendo al mismo tiempo / casi al mismo tiempo
Hola. Sí, puedes generar una factura personalizada. Recuerda que Laravel es sólo el medio de pago. Adicional a ello puedes generar documentos o hacer otras acciones desde tu aplicación web.
Respecto a lo otro, la verdad no lo he visto, pero hasta donde tengo entendido PayPal es para hacer pagos online, y las máquinas que aceptan pagos con tarjeta son servicios ofrecidos por otras empresas. Es decir, es un método de pago distinto.
Hola buenas tardes, soy nuevo en laravel y estoy utilizando laravel 7.26 y he hecho en su mayoria como tu lo llevas ya que en el config no me dejaba declara de la misma forma que tu lo hacias y pues me da este error : Array to string conversion , este error se me da cuando se hace el llamado de : $payment->create($this->apiContext); , agradeceria mucho tu ayuda
Hola. ¿Cómo tienes declarado $this->apiContext?
@@programacionymas $this->apiContext->setConfig($payPalConfig['settings']); de esta forma igual como tu lo tienes en el cod. Fuente
Creo que en tu archivo de configuración no le has asignado los valores correctamente. El mensaje de error da a entender que se ha proporcionado un array para una parte donde se necesita un string.
Gracias amigo, me ayudo muchísimo con estos pasos pude implementar pagos por paypal a un cliente y funciona de maravilla. Claro, ajusté algunas cosas como las direcciones de respuesta para adaptarlas a mi aplicación. Mil gracias, toma tu like... Tengo una pregunta. En una parte del video, colocas código de la documentación para hacer el exec del pago (justo después de los que salen en make your first call), en esta parte tuve que tipear a mano lo que tú colocaste porque no lo conseguí por ningún lado, me puedes enviar el link de la documentación de donde lo sacaste? Esto, para futuras integraciones en más proyectos. Saludos.
Hola Ernesto. Me parece excelente que lo hayas podido implementar.
Respecto al código, también puedes copiarlo desde este enlace: programacionymas.com/blog/integrar-pagos-paypal-en-laravel
Es un artículo que hice como acompañamiento de este video.
hola, como puedo pasarle el parametro id de para buscar este, pues como que se ejecuta doble y me borra el id que envie previamente
Hola Marlon. En tu URL de status (returnUrl) podrías incluir el id que mencionas. Así cuando PayPal te notifique lo tendrías disponible como un parámetro de ruta.
tengo un error al momento de realizar el test del pago me envia un error {"error":"invalid_client","error_description":"Client Authentication failed"} y las credenciales son correctas
Hola. Verifica que los nombres que usas en el archivo de configuración coincidan con las variables declaradas en tu archivo .env
De hecho puedes imprimir tales valores, para asegurarte de que están bien.
O tal vez has copiado credenciales de modo live en vez de sandbox.
Ya comprobé que las credenciales son correctas las puse directo en el método constructor del controlador pero desde el archivo .env no funciona
Hola, Bro primeramente excelente tutorial, muy bien explicado, tengo una duda al respecto este tutorial aun seguira vigente en el 2023?
Sí compañero. Tengo un par de sitios que continúan trabajando con esta implementación.
Ayuda me da error en esta linea al momento de ejecutar la parte del dd($result);
En esta línea me da el error: $payment = Payment::get($paymentId, $this->apiContext);
Hola. ¿Qué dice el mensaje de error?
@@programacionymas el error empieza en la parte en la que tomamos los datos paymentId, PayerId y token en esta linea: $payment = Payment::get($paymentId, $this->apiContext);
EL MENSAJE DE ERROR ES ESTE:
Error
Class 'Paypal\Api\Payment' not found
Hola. ¿No te has saltado el paso de hacer "composer require"?
Porque si no encuentra la clase es muy probable que no hayas agregado la dependencia del paquete a tu proyecto.
@@IbBlog Si el mensaje de error es el que comentas, verifica que PayPal esté descargado en la carpeta vendor, y que la dependencia esté declarada en tu archivo composer.json
@@programacionymas gracias estuve revisando todo el código y gracias a Dios encontré el error y el problema fue que mi editor de código no estaba importando el Api Payment y por eso me daba el error, tuve que ingresarlo manualmente, pero ya se solucionó muchas gracias por tu ayuda gracias a ti pude terminar mi proyecto... Me Suscribo..!!
Hola profe, gracias por compartir tu conocimiento con la comunidad. Cuando instalo el paquete paypal/rest-api-sdk-php me muestra un mensaje que el proyecto ha sido abandonado, sabrás de alguna alternativa a este paquete? Muchas gracias, saludos desde México.
Hola. Gracias por el comentario. Justamente estoy preparando un video nuevo sobre cómo hacer la implementación con el Javascript SDK de PayPal.
Si necesitas hacer la implementación server side puedes revisar por aquí: developer.paypal.com/docs/api/rest-sdks/
@@programacionymas Muchas gracias, lo revisaré, saludos.
Excelente,... muy bueno. Hice todo el proceso y me arroja los resultados correctamente... El asunto es que en mi cuenta de desarrollador no veo ninguna transacción en notificaciones. Por qué será?
Hola Carlos. ¿Sí llegas a ver el pago realizado desde la cuenta Sandbox del usuario que paga, y el monto en la cuenta Sandbox de negocio?
@@programacionymas Gracias por responder... No veo transacciones ni en la cuenta del que compra ni en la cuenta del que recibe... pero la respuesta de la API es aproved y puedo ver todo el contenido del objeto con dd
@@carlosarturochica4461 Es muy extraño. Tal vez tienes varias cuentas o apps creadas y estás entrando a ver una que no es 🤔
@@programacionymas
PayPal\Api\Payment {#1298 ▼
-_propMap: array:11 [▼
"id" => "PAYID-L4TWZBA52E4534033347605S"
"intent" => "sale"
"state" => "approved"
"cart" => "42326589FG5982408"
"payer" => PayPal\Api\Payer {#1327 ▶}
"transactions" => array:1 [▶]
"redirect_urls" => PayPal\Api\RedirectUrls {#1321 ▶}
"create_time" => "2020-08-03T01:46:43Z"
"update_time" => "2020-08-03T01:47:24Z"
"links" => array:1 [▶]
"failed_transactions" => []
]
}
Esta es mi respuesta... y no, solo tengo una APP, y una sola cuenta ya que no tenía ninguna, la creé al seguir tu video.
La verdad que es muy extraño
@@programacionymas Algún delay en PayPal... ya el día de hoy veo las transacciones que realicé anoche.
Muchas gracias estimado... atento a tus próximos videos y mucho éxito!
Hola genial tutorial! mi consulta es sabiendo que la sdk esta en desuso(paypal/rest-api-sdk-php), que otra recomienda usar ?
Hola. Puedes usar la SDK de Javascript: developer.paypal.com/docs/business/javascript-sdk/
De hecho tengo un video grabado sobre este tema pero aún no he tenido tiempo de editar y publicarlo.
Espero hacerlo la siguiente semana.
Hola, todo bien de momento, tengo una duda después de que se realiza el cargo con la cuenta en modo sandbox hace todo el proceso bien, pero en la pestaña de notificaciones no se visualiza ninguna, hay alguna configuración extra para que se puedan visualizar? Pd en la cuenta bussines solo cuando le doy editar y refrescar se ve que se balance aumenta cuando se hace la transacción pero no se ve ninguna notificación.
Hola Jonathan. Es probable que PayPal no genere notificaciones en modo sandbox. Lo importante es que puedas ver las transacciones. Porque eso significa que al estar en modo Live, éstas se procesarán también correctamente.
@@programacionymas excelente, si de hecho en la pestaña de movientos api, aparecen las peticiones http de forma exitosa, excelente muchisimas gracias
Que librerías utilizan para los cobros con tarjeta de crédito o débito?
Hola. Muy probablemente vamos a implementar Culqi. Y como 2da alternativa PayU.
Doc seria genial Payu con Laravel (Opcionalmente con Vue)
Saludos
Gracias por la sugerencia!
Hola buenas!. para Mercadopago, sería el mismo procedimiento para integrar ?
Hola. Cada SDK tiene su propia implementación, por lo que puede cambiar el nombre de las funciones y clases, pero la idea en general es la misma.
@@programacionymas ojalá puedas hacer un tuto, para evacuar dudas. saludo
Hola buenas tardes, como puedo hacer para que cuando el pago sea aprobado se guarde en la base de datos a fin de que en otra vista poder listarlos todos los pagos, porfavor ayudame TT_TT
Hola Christhian. ¿Si seguiste el video y te funciona todo?
Dentro del if que compara $result->getState() con 'approved' puedes agregar un Payment::create() y pasarle los datos del pago.
Para que funcione sólo debes definir un modelo y migración previamente: php artisan make:model Payment -m
Al momento de integrar la compra no me sale para seleccionar la tarjeta o la cuenta de paypall.. y luego me sale que noo puedo realizar la compra
Hola Jorge. Es decir no te hace la redirección correctamente a la página de PayPal?
¿O qué mensaje de error te muestra?
@@programacionymas me sale que no puedo usar la cuenta algo por el estilo revise todo el codigo paso a paso y me tira ese error
@@programacionymas y ojo que tengo las cuentas sandbox tanto el business como la personal y cuando uso la del vendedor me sale que estoy usando la cuenta del vendedor y cuando pongo la otra me sale que no puedo usar el paypal y que pruebe en otro momento luego me manda al failed
En el modo Live tengo el siguiente error {"error":"invalid_client","error_description":"Client Authentication failed"} pero cree mi apliacion en live y copie y pegue las credencailes de manera correcta y le puse modo live en .env que podria ser ?
Hola. Puedes imprimir con dd el valor de tus variables env, para asegurar de que tienen los valores asignados, ya que a veces no actualiza y usa valores de caché.
Lo otro es contactar al equipo de soporte de PayPal, para confirmar que tu cuenta no tenga ninguna restricción.
@@programacionymas amigo para ponerlo en modo live hay que poner la palabra live o production ? porque en sandbox todo funciono correctamente
Es live
@@camilo4354 Hola. ¿Lo lograste hacer funcionar en modo Live? A mi también me funciona perfecto en sandbox pero en live no sirve.
Hola resolviste tu problema en live
Hola es posible hacer lo mismo pero con tarjetas de credito VISA y MAsterCArd conectando sus API con un projecto de Laravel, he buscado informacion acerca de esto, y no he encontrado mucho. Gracias
Hola. Sí, es posible. Pero eso ya no sería PayPal, sino más bien otra pasarela de pagos, como PayU, Stripe o Culqi.
Para esto necesario que la cuenta de paypal este vinculada a la tarjeta o cuenta bancaria?
Hola. Es suficiente con que tengas una cuenta de PayPal activa.
Entiendo que debes vincular solo si deseas retirar posteriormente.
Excelente!, una pregunta con esa pagina de PayPal se pueden procesar pagos con tarjeta de credito?
Sí, PayPal también ofrece la posibilidad de pagar con tarjeta sin contar con una cuenta PayPal.
Aunque lo más adecuado sería integrar otro método de pago adicional.
que debo hacer para usar paypal en produccion y hacer pagos reales?
Debes pasar de modo sandbox a live y actualizar tus credenciales de api.
Hola, tengo el siguiente problema Required parameter $path follows optional parameter $handlers paypal sdk, cualquier ayuda se la agredecería 🙏🏻
Hola. ¿Este error en qué línea de tu código de controlador ocurre?
¿Hasta qué minuto del video llegaste?
@@programacionymas Justo al momento de darle click al botón que re dirige a la página de paypal
Saludos muy intuitivay a su vez precisa la explicacion. Me gustaria saber si actualmente se sigue usando ese SDK o hay alguna alternativa ya que cuando lo estoy instalando me arroja el siguiente warning "Package paypal/rest-api-sdk-php is abandoned, you should avoid using it. No replacement was suggested." y el paquete no me acepta las credenciales
Hola. Hay una versión más reciente, sin embargo esta versión seguirá funcionando debido a que una gran número de clientes de paypal hizo la integración con esta.
Hola ! gracias por vídeo , estaba pensando en integrar paypal pero a nivel Marquetplace, donde el comprador al hacer el pago, yo como Marquetplace pueda destinar el dinero a los distintos vendedores y poder retener a cada uno una comisión, es posible hacerlo con Paypal ?
Hola. Sí es posible. En el video vemos cómo implementar pagos con PayPal (desde los usuarios a tu cuenta de administrador).
Pero PayPal también tiene una API llamada "PayPal Mass Payouts". Con esto puedes hacer pagos masivos a X usuarios, pagando a cada uno lo que corresponde.
Y PayPal automáticamente genera un correo informando a cada uno sobre el pago que ha recibido.
Esta característica es usada por Udemy y Gumroad.
Hola, cuando accedo a la ruta paypal/pay no me redirecciona al get aproval link, sin embargo entra por el try(lo he comprobado con un dd), sabes que puede ser?
Hola. Prueba imprimiendo el valor de getApprovalLink para asegurar que realmente sea una URL válida. Revisa que estés usando $payment->create e inicializando $this->apiContext correctamente.
@@programacionymas El código utilizado es copiado de tu pagina, así que no debería de tener el error ahí, voy a imprimir el valor de get aprovallink para comprobarlo
@@programacionymas Al hacer dd($payment->getApprovalLink()) me devuelve una pagina en blanco
@@programacionymas Esta dando el error cuando $payment->create($this->apiContext), ya que despues de hacer eso salta al catch, aun q no imprime nada del error
me pasa lo mismo, en la parte del try catch, se va al catch y no muestra el error
hola busco uno con mercadopago, no se como se llama en el controller...
Hola tocayo. Puedes empezar leyendo la documentación de su api: www.mercadopago.com.pe/developers/es/guides/online-payments/marketplace/checkout-api/introduction/
Amigo una pregunta cuando me meto al repositorio del package me dice que esta desactualizado, me recomiendas que aún así lo implemente a mi proyecto?
Hola Jorge.
Sí, puedes usar el repositorio.
PayPal no puede quitar el soporte porque deben haber varios miles de páginas usando esta versión.
De todos modos, pronto espero tener tiempo para hacer un video con la nueva versión.
Una super duda! Ya todo funciona perfecto y muchísimas gracias! Solo que una vez que el cliente pague con tarjeta de crédito, como específico los meses en los que quedará diferido?? O eso ya lo arregla Paypal con el banco directamente??
Es correcto, es un tema de PayPal con el banco. De igual forma debes tener en cuenta que PayPal tiene una política de reembolsos.
No es muy común, pero los clientes pueden iniciar disputas si no reciben lo que han comprado.
@@programacionymas genial muchísimas gracias man!! Y si ya había leído que había cierto tema con la política de reembolsos, lo tendré en cuenta, muchas gracias! 😌
una consulta este mismo metodo podria ser para Culqi
Hola. La idea es similar, pero no exactamente la misma.
Hola que tal
tengo un error desde el siguiente link
www.sandbox.paypal.com/webapps/hermes?flow=1-P&ulReturn=true&token=EC-69L46378HJ6101738&hermes=1&fromLite=1#/checkout/genericError?code=UEFZTUVOVF9ERU5JRUQ%3D
genericError?code=UEFZTUVOVF9ERU5JRUQ%3D, es lo que resalta
todo bien hasta cuando logueamos al usuario sandbox
automaticamente pasa al metodo pago (como si le hubiera dado click a pagar)
y genera ese link con el mensaje "No es posible procesar el pago con su cuenta de PayPal en este momento. Regrese al sitio web del comercio e intente utilizar otra forma de pago."
alguien le paso lo mismo?
Debes crear la app en la cuenta bussines que acabas de crear, no en la que viene por default
Para implementar PayPal Checkout es similar?
Hola. ¿Te refieres al SDK de PayPal Checkout con Javascript?
Pronto subiré un video sobre eso.
@@programacionymas Es posible realizar pagos sin cuenta de paypal, es decir con tarjeta de crédito o débito?
Sí, justamente con el Javascript SDK de PayPal se puede hacer eso.
Hace poco lo implementé y lo grabé como video.
Espero poder editarlo pronto para subirlo al canal.
Bro me sale un error, Credential not found for default user. Please make sure your configuration/APIContext has credential information seguí todo el video al pie de la letra :/
Hola, tienes tus credenciales de Sandbox en tu archivo .env?
@@programacionymas así es, es más, las declaré directamente desde el controlador para ver si respondía correctamente y no bro :(
gracias por el video, puedes hacer uno tambien para integrar pagos con tarjeta como el q estas usando ?
Hola. Sí, gracias por comentar.
Creo que haré uno sobre PayU.
Pensaba hacer uno sobre Culqi, pero parece que dejó de aceptar pagos internacionales.
@@programacionymas A la espera de esta integración! :D
ya logre solventar el error, perdon las inconveniencias, el error estaba en el config/paypal habia declarado mal los valores
Genial!
Amigoooo, no me sale el formulario para proceder al pago, que puede ser? 😩
Hola. Puedes revisar en la pestaña Network de la Developer Tools si te muestra algún error.
@@programacionymas , literal no sale nada, de hecho si pongo un return '123'; me salen perfectamente los numero, pero no el formulario, gracias por responder
hola como estas me sale este error a lo q intalo el paquete (Package paypal/rest-api-sdk-php is abandoned, you should avoid using it. No replacement was suggested)
Hola... es un warning, pero sí te debería dejar continuar.
@@programacionymas a lo que pongo (use PayPal) me subraya en rojo
dice que el paquete esta abandonado, en este caso que se haria?
Pronto publicaré un video más actualizado. Aunque el paquete esté deprecated se puede seguir usando.
@@programacionymas pero me da un error, de paypalconection, al parecer no me conecta con paypal
me da un error. Trying to access array offset on value of type null.
me falla el $payPalConfig['client_id'],
$payPalConfig['secret'], no consigo sacarlo.
esta todo bien, pero desde paymentcontroller no encuentra el paypal de config, y el paypal de config no se concatena con el .en- ayuda pls¿?
@@asisea.7368 Hola. Debes definir tus credenciales en tu archivo .env
Es decir, copiar desde tu cuenta de PayPal Developer tu client_id y client_secret y situarlos en tu proyecto.
@@programacionymas ya lo echo pero no hay manera de que se concatenen
En mi caso el pago si lo hace , pero por alguna razon se tarda en llegar la notificacion, cuando llega , me muestra que la hora de pago se hizo justo en el momento que le di a pagar , el problema que tengo es que se tarda en llegar la notificacion , a que crees que se deba? e hecho muchas pruebas
Hola. A qué notificación te refieres?
@@programacionymas A las notificaciones de "Pago recibido" Que muestra la cuenta creada para sandbox. El problema que tengo es que si yo, a las 11:30 compró algo mediante PayPal con esa cuenta, y revisó la notificación, no aparece si no dentro de como 5 minutos, y cuando pasan 5 min , la notificación dice que lo recibí a las 11:31 , o la misma hora, 11:30 , el problema es que no se porque se me tarda en mostrar esa notificación y pienso que no funciona lo que hice ya que lo acomode ya para mi sistema xd
Entonces tal vez en modo sandbox va lento pero en producción no 🤔
@@programacionymas entonces el problema es más por la versión de sandbox que lo que yo hice en el Código? Entonces, si es así, para cambiarlo a modo live solo cambió la palabra sandbox por live y las credenciales?
@@gadozx75 Sí, correcto
Hola a procesar el pago lo hace todo bien pero no me muestra el monto porque sera?
Hola... en dónde es que no te muestra el monto? En qué parte del flujo?
@@programacionymas ya cuándo se va a Paypal pero en live si funcionó en sandbox no se porque no funcionaba gracias. Y excelente material.
Hola, en el caso de integrarlo en un proyecto para que el cliente lo use con sus propias credenciales, tendría que crear el mismo una cuenta en la página de desarrolladores y crear una app o podría acceder a las credenciales desde su cuenta de business? gracias de antemano
Hola. Es correcto. El cliente usando su cuenta Business debe crear una aplicación Live y compartirte las credenciales para que pueda recibir pagos.
Pero eso puedes solicitarlo al final. Si dispones de credenciales Sandbox puedes usar esas mientras desarrollas.
@@programacionymas gracias por la aclaración
Gran trabajo y buen vídeo! 🤙🏻
Tengo una duda con respecto al pago en (USD) cuando mi moneda es soles (PEN).
tendría que consumir una API para hacer la conversión de Soles a Dolares?
Hola. Mi cuenta de PayPal está en USD, pero cuando he comprado productos en otras monedas veía 2 movimientos en mi cuenta, uno donde me descontaba en USD, y otro haciendo el pago con la moneda de la tienda.
Es decir, PayPal hace la conversión si es necesario. A menos que el usuario en su configuración haya indicado que no quiere hacer ello.
Hola, el paquete paypal/PayPal-PHP-SDK ya no está soportado.
¿Hay un plan para explicarnos la implementación del nuovo paquete PayPal SDK V.2?
Hola. Espero publicar un video pronto con la nueva versión.
Que esté deprecated significa que PayPal ya no va a actualizar esa versión, sin embargo tampoco la darán de baja por existir muchas apps usándola hoy en día.
Saludos.
Hola muy buen vídeo pero tengo un problema con las credenciales de Paypal me dice credentail not found for default user, no sé si alguien podría decirme como solucionar ese problema
Hola. ¿Sí creaste nuevas cuentas Sandbox en la consola de PayPal? ¿También agregaste tus credenciales en tu archivo .env y las cargaste en el constructor de tu controlador?
Gran tutorial, se agradece mucho! Pero me gustaría saber quién fue el visco que se equivocó de botón y en lugar de darle "Me gusta" le dió "No me gusta" 😂
Gracias por el comentario compañero!
@@programacionymas No no, gracias a tí. Estoy aprendiendo mucho.
Excelente video! me funciono correctamente en modo Sandbox, solo que al momento de cambiar a Live me muestra este error {"error":"invalid_client","error_description":"Client Authentication failed"}, ya verifique las credenciales y los nombres de las variables en el archivo .env /config, tambien cambie el PAYPAL_MODE a 'live', sin embargo sigo sin poder acceder. ¿hay algún paso que me este faltando, o debería de funcionar correctamente con esto?
Hola Daniel. El mensaje de error menciona explícitamente que falla la autenticación. Si ya has revisado tus credenciales en el .env te sugiero imprimirlas en algún lugar para asegurarte de que no hay valores antiguos en caché o algo similar.
@@programacionymas he estado imprimiendo en el archivo de paymentController, y si me manda las credenciales desde .env , hice un dd($paypalConfig), y me fije que en el arreglo de sandbox siempre manda un "app_id", pero en arreglo de Live ese campo esta vació no se si ese pueda ser el problema, me parece muy extraño porque ya subí la prueba de sandbox en un host y todo funciona correctamente.
Hola buen día, disculpa no me reconoce el use de Paypal me dice que la clase no se encuentra. Cuando hice la instalación con composer me marca Package paypal/rest-api-sdk-php is abandoned, you should avoid using it. No replacement was suggested. pero en el vendor si veo la carpeta entonces no sé qué puede estar mal. Soy super nueva con laravel y nunca había hecho integraciones de pagos entonces no más no puedo solucionar el problema, no sé si puedas ayudarme. Muchas gracias de antemano
Hola. ¿Cuál es la directiva use que estás usando en la parte superior?
@@programacionymas Mil gracias ya ví el error, tenia Paypal y era PayPal
Saludos Juan
Saludos Oscar. Gracias por comentar!
Muchas gracias, muy buena la explicacion, me ha servido mucho! tengo dos consultas por favor si puedes aclarar:
1.Con el sdk de php es posible ejecutar el pago desde una ventana modal (sin dirigir al usuario al sitio de paypal), o eso es solo posible con el sdk de js?
2.Existe forma de configurar la ruta para las IPN dentro del sdk de php? o eso solo puede configurarse desde el sitio de PayPal?
Gracias!
Hola. Probablemente ya has resuelto tus dudas, pero de igual forma respondo.
1- Con el SDK siempre se pasa a través de PayPal, ya que eso es lo que da al usuario la certeza de que PayPal es seguro. De hecho la implementación JS incluye un modal pero también termina abriendo PayPal como página.
2- Se hace desde el panel de administración, en el sitio para desarrolladores de PayPal.
@@programacionymas Genial, muchas gracias! no habia podido aclararlo hasta ahora, asi que gracias por responder!!
Gracias amigo, consulta. Soporta la API PayPal checkout API PHP V2? Ya que la API v1 quedará en desuso
Hola. Gracias por el aporte.
Cuando revisé la documentación no vi ningún alerta 🤔
Pero voy a revisar lo que comentas para subir una actualización.
Saludos.
@@programacionymas en el mismo repositorio lo indica, debajo del codigo.
No la soporta... Ya he probado. Puedes hacer todo esto y usarlo para probar sandbox, funciona perfecto pero cuando pasas a live, ya no te deja hacer pagos. Tienes que usar la nueva version y cambia un monton todo.
@@Levonor-Gestrel Hola Ernesto. En realidad tengo 3 aplicaciones usando código basado en el ejemplo del video y continúan aceptando pagos con normalidad.
Paypal al declarar como deprecated la versión 1 significa que no le dará más mantenimiento, pero su funcionamiento no es interrumpido.
De todas formas, espero preparar pronto un nuevo video usando la nueva API.
Hola, he seguido todos los pasos y checado varios blogs, pero no encuentro la solución a este error: Route [paypal/pay] not defined. --> me podrás apoyar?, mil gracias.
No se si ya hayas encontrado el error, pero debes tener declaradas esa rutas en el archivo web.php
Hola. Es correcto lo que dice Giovanny. El error que obtienes indica que estás tratando de usar una ruta que no ha sido declarada.
Buen video, pero tengo un error cuando se invoca $payment->create "Required parameter $path follows optional parameter $handlers". Copie el codigo tal cual, que será?
Hola. ¿En qué minuto del video se encuentra el código que mencionas? Para revisar.
@@programacionymas A partir del 17:32, la parte del código que me tira error es
try {
$payment->create($this->apiContext);
return redirect()->away($payment->getApprovalLink());
} catch (PayPalConnectionException $ex) {
echo $ex->getData();
}
@@enamoradizza Hola, disculpa. Pudiste resolver este problema? Lo que pasa es que a mi también me sale lo mismo, si me puedes ayudar gracias.
@@cristhianganchala8463 Que tal, la verdad no me acuerdo, creo que seguí otro video y me salió con ese.
Si no estoy mal fue ua-cam.com/video/LlkJvoybDoU/v-deo.html&ab_channel=WebDevMatics
Espero te salga!
Qué tal campeón como hago para poner otro tipo de métodos de pago
PayPal con su SDK de Javascript también permite aceptar pagos con tarjetas. Es decir, que el usuario ingrese los detalles de su tarjeta sin tener una cuenta de PayPal.
Actualmente estoy trabajando en un video sobre Google Maps en Android, luego de publicar ese editaré el de PayPal JS SDK, que lo tengo pendiente también.
Saludos!
Si entiendo campeón, yo ya tengo el de PayPal, lo que me falta es agregar otro tipo de pago que sería de Paraguay! Y lo que yo tengo es una página web de laravel y lo que no encuentro es el código donde agregarlo
PayPal Cards está disponible internacionalmente.
La integración de cualquier método de pago sigue la misma idea... procesar las peticiones a la API correspondiente desde el controlador.
@@programacionymas y como hago para contratarme con ustedes? Viste que acá en Paraguay no te quieren decir nadie de cómo poner!
hola, tienes algún link de donde descargar esa api ? , porque no me permite descargarla de ningún lado de github , salvo la ultima versión.
Hola. ¿Es decir te da error al usar composer require?
@@programacionymas hola, sera que te puedo contactar directamente, mi numero de whatssap es +51 917183231.
Sería bueno un video de un Erp desde cero con larabel
Bueno, los ERP engloban muchos módulos. Habría que decidir primero cuáles considerar.
Programación y más realizar unos dos módulos para ver cómo funciona la herramienta laravel
Sirve para laravle 6?
Sí. Te debe funcionar incluyendo las versiones más recientes, como 6 y 7.
@@programacionymas Buen video
Below is the message when trying to install the package included in this video.
We should go to PayPal SDK V.2. A new tutorial is needed for that. thanks.
- Installing paypal/rest-api-sdk-php (1.14.0): Downloading (100%)
Package phpunit/php-token-stream is abandoned, you should avoid using it. No replacement was suggested.
Package paypal/rest-api-sdk-php is abandoned, you should avoid using it. No replacement was suggested.
I'm sorry for the late reply. I will post a new video about it.
Probably Tuesday next week.
Thanks for your comment!
developer.paypal.com/home es gratuito verdad, o se paga algo?
Sí amigo, es correcto.
Solamente PayPal cobra un % por cada transacción, como cualquier otra plataforma de pago.
@@programacionymas a lo que voy, al momentonde hacer pruebas. Ya en produccion se que cobra comision
Una pregunta a alguienle ha salidoeste error:
Required parameter $path follows optional parameter $handlers
¿En qué línea te salta este error?
@@programacionymas Me lo da en el $payment->create, pero lo raro es que solo me lo da en local si lo subo a mi hosting el $payment->create funciona.
¿El mensaje de error no indica ninguna línea de código o clase de donde ocurre? Es decir, de manera específica de la dependencia de PayPal.
@@programacionymas Si es solo en las dependencias de paypal concretamente aqui "vendor\paypal
est-api-sdk-php\lib\PayPal\Transport\PayPalRestCall.php:53"
buen video.. pero como podría implementarse con laravel + vue
Hola. Si eres nuevo en Vue te recomiendo empezar por aquí: ua-cam.com/video/UzegdHgNEF4/v-deo.html
Saludos.
kulki cual es amigo muy buen video??
Hola Raúl. Culqi es un medio de pago disponible en Perú.
Dado que Stripe aún no está disponible en Perú, es una alternativa, al igual que PayU.
Solo funciona con la version 1.13.0
Hola. Dónde confirmas la versión?
@@programacionymas Gracias me sirvio mucho este video
Con gusto. Y gracias también por comentar!
Alguna integración con Stripe?
Tengo pendiente hacer un video sobre Stripe.
Esperando con ansias !!! Gracias por responder!
La integración con stripe es demasiado sencilla en Laravel.
Buena tarde. Gracias por este gran aporte. Lo estoy implementando desde mi localhost, pero me marca un error de CORS, Access to XMLHttpRequest at 'www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token='' (redirected from 'localhost:8000') from origin 'localhost:8000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request. He buscado soluciones, pero no he logrado conectarme con paypal, ¿puedes orientarme al respecto?
Hola. Lo siento, recién veo tu mensaje. YT no me envió notificación. ¿Ya lo solucionaste?
¿El error en qué paso te aparece? ¿El link de pago lo generas desde tu controlador?
Hola amigo estaba viendo tus videos de Microcode, como podría hacer el contador pero con un PIC16F877A pero agregandole una pantalla LCD en los puertos B y los dos contadores en el puerto C? Ya que en mi código solo se puede leer el contador en la pantalla pero los otros contadores no, te agredecería si me ayudarás .
Así tengo mi codigo para contador de la pantalla (va contando de 5 en 5 por cierto) Te queria mandar un mensaje por twitter pero no pude
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 0
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 1
contador VAR BYTE
PAUSE 100
limpiar:
contador=0
LCDOUT $fe,1
ciclo:
LCDOUT $fe,2
LCDOUT "Contador:", DEC contador
PAUSE 200
contador=contador+5
IF contador >95 THEN limpiar
GOTO ciclo
end
Hola. Ahora mismo no tengo instalado ningún programa para poder probar tu código. ¿Pero qué mensaje de error obtienes?
Ya no funciona el paquete de Paypal 😥
Hola. ¿Te aparece un warning? Si es así puedes omitirlo por ahora.
¿O es un error que no se puede saltar?
@@programacionymas sale este mensaje: "Este repositorio ha sido archivado por el propietario. Ahora es de solo lectura."
Hmm entiendo que es de sólo lectura pero sí te debe dejar agregarlo como dependencia.
@@programacionymas no me reconoce al momento de hacer uso del namespace de paypal :c
PayPal PHP SDK DEPRECATED !
I just published an updated alternative, using the PayPal JS SDK: ua-cam.com/video/X3skr1a-kk4/v-deo.html
Thanks for watching.