Integración de Paypal en PHP (PDT)

Поділитися
Вставка
  • Опубліковано 9 січ 2025

КОМЕНТАРІ •

  • @fabianrodriguez1281
    @fabianrodriguez1281 2 роки тому

    Muy bueno genialmente explicado gracias lo voy a implementar

  • @oquanghuong8731
    @oquanghuong8731 2 роки тому

    Thank you! Very good video, added the source code. Great!

  • @brunom.ariasbonacchi2306
    @brunom.ariasbonacchi2306 2 роки тому +1

    Hola, excelente el video! Muy util y muy bien explicado!! El relacion a verificar el txn_id de la transaccion me surgió una duda, De que forma podria hacerse? o ya esta dentro del codigo?? Gracias!

    • @code_index
      @code_index  2 роки тому

      Hola Bruno,
      ¡Muchas gracias! Y muy buena pregunta, una forma de comprobarlo sería que nosotros guardemos un registro en base de datos de los pagos que hemos recibido y en ese registro guardaremos en txn_id, entonces antes de procesar cualquier transacción vamos a consultar a nuestra base de datos para saber si ese txn_id ya lo hemos procesado,.
      Si no lo hemos procesado:
      • Creamos el registro y procesamos la orden.
      Si ya lo procesamos:
      • Cortamos la ejecución y no procesamos nada.
      Espero que te sea de ayuda.
      Un saludo!

  • @fosho525
    @fosho525 2 роки тому +2

    necesito ayuda hice todo lo del video , pero cuando me proceso el pago , que me debería redirigir a receptor.php la vista se queda en blanco, coloco en echo een algunos de los if de la validacion y nada , nisiquiera entra alli, la variable $keyarray la bota en [0]{}

    • @fosho525
      @fosho525 2 роки тому

      ayuda!!!

    • @code_index
      @code_index  2 роки тому

      Hola jhon,
      Disculpa por responder hasta ahora, seguro ya lo has solucionado, pero dejo respuesta por si a alguien más le sirve.
      Puede ser que a lo mejor la url definida en “return” del formulario no sea la correcta, asegúrate de que esa url sea la correcta, recuerda que la hemos definido en el archivo formulario.php.
      Una forma para comprobar esa url es copiarla e ir a ese enlace, por ejemplo:
      localhost/paypal-pdt-php/buy_now_button/receptor.php?tx=hola
      El resultado debería ser FAIL ya que es tx que no existe.
      Recuerda que el código lo tenemos en:
      github.com/mario4vila/paypal-pdt-php
      Un saludo.

    • @davidarmandoguevara9458
      @davidarmandoguevara9458 Рік тому

      @@code_index por más que copio y reviso tu código no me funciona

  • @levp7522
    @levp7522 2 роки тому +1

    Por favor, sugiérame excelentes libros de PHP con MySQL donde pueda saber sobre:
    [1] Todo sobre transacciones
    [2] Seguridad web
    [3] Pasarela de pago: Paypal, tarjetas de crédito y/o débito, etc.
    Quiero saber todo eso para construir:
    Una página de loterías.
    Otra página de venta por internet de productos de un supermercado.
    Y otra página para retirar y depositar dinero en un banco.
    Quiero buenos libros donde pueda encontrar de todo para no perder más tiempo buscando y buscando en internet o en otros libros.

    • @code_index
      @code_index  2 роки тому +2

      Hola levp,
      Gracias por escribir, es curioso que he leído muchos libros, pero sobre PHP solo he leído uno que me pareció muy bueno y es Head First PHP & Mysql. Y bueno quieres aprender muchas cosas y eso está bien, pero dado que tienes una meta clara de lo que quieres lograr yo te sugeriría lo siguiente:
      * Lee un libro de PHP y MySQL, el que te he sugerido u otro para aprender las bases.
      * Aprende un Framework PHP Symfony o Laravel, ya que estos Frameworks te proveen de muchas utilidades pensadas en mejorar la calidad y seguridad de nuestras aplicaciones.
      * Busca cursos (Udemy, UA-cam o donde sea) en el que utilicen el Framework que quieras aprender con ejemplos de aplicaciones que se puedan parecer a lo que tú quieres desarrollar.
      * Práctica, práctica y práctica.
      Sobre pasarelas de pago lo mejor que puedes hacer una vez que domines lo anterior es aprender sobre protocolos de comunicación http en especial API que es el que se suele utilizar, ya que según tu contexto tendrás disponibles distintas opciones para ofrecer métodos de pago y cada método de pago suelen ofrecer muy buena documentación para que puedas implementarlo.
      ¡Espero que te sea de ayuda, un saludo!

    • @aliciasolis5420
      @aliciasolis5420 2 роки тому

      @@code_index excelente

  • @albertoreyes8392
    @albertoreyes8392 2 роки тому

    HOLA EXCELENTE VIDEO, A MI SI ME GENERA EL PAGO REVISO EL USUARIO PRUEBA Y TIENE EL MONTO INDICADO, PERO EN EL ARCHIVO receptor.php la variable "response " me devuelve un valor "false" y por ende no me muestra el mensaje de "¡Hemos procesado tu pago exitosamente!" ya que entra en el if donde verifica a esa variable independite de este valor el pago si lo realiza, hice una prueba con POSTMAN y los valores si me arroja El VALOR SUCCES, alguna idea , Gracias!

  • @cristianssanchez438
    @cristianssanchez438 2 роки тому

    Todo bien pero cuando hace el return al archivo receptor la variable $response me retorna acceso denegado

  • @kr_tavarez5820
    @kr_tavarez5820 Рік тому

    Saludos hice el proceso bien pero en servidor y dice fail. a ver si me podrias ayudar... gracias de ante mano

  • @giovannitorrealba2684
    @giovannitorrealba2684 2 роки тому

    Saludos CodeIndex.... muy buenos tus videos... Tengo una inquietud... en tus 2 primeros videos (PDT) se observa que al usuario ingresar a PayPal tiene la opción de "Mantener abierta la sesión para entrar con mayor rapidez"... en tu tercer video (IPN) veo que te sucede lo mismo que a mi: no aparece la opción al usuario para mantener la sesión abierta... la inquietud es que al implementar estos mecanismos, deberíamos darle la opción al usuario de que no mantenga abierta la sesión... imagina en caso de que un usuario use un equipo público, no es lógico que se mantenga abierta la sesión... mucho te agradezco me informes lo que puedas... GRACIAS DE ANTEMANO.

  • @ricardovillegas2238
    @ricardovillegas2238 3 роки тому +2

    Hola amigo una duda del ultimo if, de que sirve la leyenda "La moneda no es la correcta" si el pago esta completa? , saludos

    • @code_index
      @code_index  3 роки тому

      Hola Ricardo, Paypal nos recomienda que comprobemos la moneda ya que pese a que el pago está Completado puede suceder algún error de cualquier tipo (por ejemplo, de configuración) y que la moneda no corresponda con la esperada. Por ejemplo, no es lo mismo 20 dólares estadunidenses que 20 pesos mexicanos.
      Acá te dejo todos los códigos de moneda que soporta Paypal developer.paypal.com/docs/api/reference/currency-codes/
      Espero haberte ayudado.
      Un saludo.

    • @Hangman2
      @Hangman2 2 роки тому

      Hola CodeIndex, creo que lo que te quiere decir Ricardo (corrígeme si me equivoco Ricardo) es que la validación de la moneda, entre otras, las tendrías que realizar antes de ejecutar la operación en PayPal, puesto que si ejecutas la operación, se realiza, y luego le dices al usuario: "La moneda no es correcta" Posteriormente tendrás conflictos con el usuario, tendrás que realizar devoluciones, etc... De todas formas gracias por el aporte, si sabes algo de programación esto te facilita mucho la curva de aprendizaje y te da una idea de cómo solucionar tu problema particular. Yo tengo que implementar un pago por SAAS y me dio la idea para hacerlo. Gracias!

  • @eficacio
    @eficacio 3 роки тому +1

    Hola, mu buen video. Solo u a duda, para pasar a modo ñroduccio (live), solo hay que quitar "sandbox" de la dieccion? Se queda el mismo token y la misma direccion? Gracias

    • @code_index
      @code_index  3 роки тому

      Hola Santiago Carrasco,
      También deberás cambiar el token (por el generado en la cuenta real de Paypal) y el email (en el campo business) en el formulario.
      Pruébalo y nos cuentas, un saludo.

    • @eficacio
      @eficacio 3 роки тому

      @@code_index Lo imaginé, y creé una cuenta Live, pero al hacerlo no veo la forma de obtener el token. me dá un ID y secret code pero no sé si alguno corresponde al token, en fin voy estudiandolo. Gracias por responder.

  • @Luis_ALopezF47
    @Luis_ALopezF47 Рік тому

    muy bueno

  • @carlosa.lermaramirez2580
    @carlosa.lermaramirez2580 3 роки тому +2

    hola, me sale siempre fail, después de que dice tu pago a sido procesado le doy volver a la tienda y me sale como error, que podría estar mal?, gracias

    • @code_index
      @code_index  3 роки тому

      Hola Carlos, según entiendo justo después de pagar en Paypal no te redirecciona a tu tienda y si le das clic en "volver a tienda" te aparece el error, si es así entonces el error debe estar en el archivo formulario.php en la definición de los parámetros "return" y "cancel_return", te animo a que verifiques eso, si no funciona indícanos más detalles para poder ayudarte.
      Un saludo.

    • @carlosa.lermaramirez2580
      @carlosa.lermaramirez2580 3 роки тому

      @@code_index si era un problema del formulario, era no había puesto usuario del vendedor, gracias por la ayuda 🙉🙈

  • @JoseEmanuelRojasRivas1
    @JoseEmanuelRojasRivas1 3 роки тому +1

    Hola amigo, muy bien el video, puedes hacer lo mismo pero aceptando tarjetas de crédito desde paypal en modo visitante?

    • @code_index
      @code_index  3 роки тому +1

      Hola Jose Emanuel, gracias por apoyar al canal y muy buena pregunta, la respuesta es que SI se puede, el proceso es el mismo.
      Solo que debemos asegurarnos que en la cuenta de Paypal del "Vendedor" tengamos la opción de "Cuenta Paypal Opcional" Activada.
      Para realizar pruebas de este tipo puedes iniciar sesión en developer.paypal.com ir a la sección de "Credit Card Generator" para generar tarjetas para que puedas simular pagos en modo un visitante.
      Espero que te sea de ayuda, un saludo.

    • @JoseEmanuelRojasRivas1
      @JoseEmanuelRojasRivas1 3 роки тому

      @@code_index Muchísimas gracias por la respuesta, estuve buscando dicha configuración en la cuenta de PayPal y no la conseguí, solo deja que mis clientes paguen si tienen cuenta de paypal. Seria genial que hagan un video al respecto.

  • @yisuspeace1452
    @yisuspeace1452 2 роки тому

    hice todos los pasos pero cuando hago la compra, el dinero pasa a la cuenta de vendedor como 'retenido'

  • @giovannitorrealba2684
    @giovannitorrealba2684 2 роки тому

    Otra inquietud Codeindex, es la siguiente... luego de que el usuario acepta pagar, aparece la pantalla informándote al respecto y que te redirigirá al sitio en tantos segundos... también dice que si no es redirigido entonces presione el siguiente link... resulta que si presionas el link entonces suceden 2 llamadas al sitio... sabes de alguna manera de controlar eso ?... eres muy amable...

  • @ricardorivera3967
    @ricardorivera3967 2 роки тому +1

    hola amigo tengo una duda muy grande, yo estoy integrando el advanced checkout donde me integra un formulario personalizado, el detalle es que cuando activo los meses sin intereses en pago por paypal si me aparece pero en pago con tarjeta desde mi pagina sale bloqueado asi como enabled y no puedo elegir los meses, alguna idea de el porque? estoy ocupando el paymode live :(

    • @code_index
      @code_index  2 роки тому

      Hola Ricardo Rivera,
      Muy buena pregunta, y lo cierto es que nunca he probado esa característica, he encontrado en la documentación de que para ese tipo de pagos es necesario tener una cuenta de Paypal Business y que además debe ser aprobada por Paypal, te dejo el enlace por cualquier cosa.
      developer.paypal.com/docs/checkout/advanced/integrate/#link-enableyouraccount
      Si era otra cosa, por favor cuéntanos, quizá nos pueda servir a futuro.
      Un saludo!

  • @ximotuber221
    @ximotuber221 6 місяців тому

    Puedes subir un video de eso para montar una pagina web para ganar dinero para paypal?

  • @lucassaucedo3031
    @lucassaucedo3031 3 роки тому +1

    una pregunta esto lo puedo implementar como sistema de pago para mi sitio web?

    • @code_index
      @code_index  3 роки тому +2

      Muy buenas, por supuesto que lo puedes implementar, solo que te recomiendo que antes de enviarlo a Paypal, se registre el pedido en estado "Proceso de pago" o algo parecido, ya que solo dependemos de que al realizar el pago Paypal retorne el usuario a nuestro sitio, en caso de que no lo haga al menos tendrás ese registro.
      Pronto publicare un nuevo video explicando IPN(Instant Payment Notification) que es una alternativa/complemento para procesar pagos de Paypal.
      Un saludo.

    • @lucassaucedo3031
      @lucassaucedo3031 3 роки тому

      @@code_index perfecto entonces espero a tu nuevo video ya que necesito una pasarela de pago de paypal

  • @eduardoperezrivera4170
    @eduardoperezrivera4170 2 роки тому +1

    Si quisiera que los datos se mi compra no sean editables bro

    • @code_index
      @code_index  2 роки тому

      Hola Eduardo,
      Lo siento por responderte hasta ahora, Excelente pregunta y seguro ya has encontrado la solución, pero por si a alguien le sirve dejo una solución;
      En vez de enviar directamente el form a Paypal, lo enviamos a nuestro server y realizamos todas las validaciones correspondientes, luego hacemos "echo" del form con todos los datos necesarios para enviar a Paypal pero ocultos y agregamos un scrip para el envió automático del form con "document.getElementById("form").submit();"
      Acá dejo un ejemplo:
      ua-cam.com/video/5ODUVzoJQZI/v-deo.html
      ¡Un saludo!

  • @johnj.okumura7458
    @johnj.okumura7458 3 роки тому

    todo bien, me dice
    Su pago se ha completado. Para continuar comprando, vuelva al sitio web del comercio.
    y cuando le doy clic me regresa a la url de pedido cancelado. obvio estoy en modo sandbox, es normal, o q error existe y como solucionarlo? xq no me animo a pasar a live con este error

    • @code_index
      @code_index  3 роки тому

      Hola John,
      Tienes que revisar los parámetros "return" y "cancel_return" ya que en caso de Pagar correctamente Paypal tiene que redireccionarte a la url indicada en "return".
      En el min 5:15 se puede apreciar la diferencia ua-cam.com/video/EdGmUHW5Fdk/v-deo.html
      Un saludo.

    • @johnj.okumura7458
      @johnj.okumura7458 3 роки тому +1

      @@code_index es correcto. Ahi estan las 2 urls. y mis 2 urls estan correctos, de echo en tu ejemplo estan correctas, lo descargue y lo subi sin modificar nada y todo esta correcto, pero paypal al pagar, arroja el MENSAJE de q todo esta bien pago exitoso, y aparece un boton azul q dice para continuar comprando vuelva al sitio web y al dar clic alli
      manda a la url de cancelacion, es un fallo del sandbox quiero pensa

  • @arturojuarez5245
    @arturojuarez5245 3 роки тому +1

    Hola amigo, a mí me surgió un error y es que cuando realizó el pago al regresar a receptor.php marca que la variable tx no está definida, sabes a qué se deba este error? Saludos, excelente video por cierto!

    • @code_index
      @code_index  3 роки тому +1

      Hola Arturo Juárez,
      Lo primero es revisar que la variable tx efectivamente este definida, aquí puedes ver el código del ejemplo:
      github.com/mario4vila/paypal-pdt-php/blob/master/buy_now_button/receptor.php
      Deberías tener esta línea en tu código:
      $tx = $_GET['tx'];
      Si la tienes y aun así te sigue dando el error, debes revisar la URL después de pagar cuando paypal nos redirige a receptor.php, ya que Paypal nos envía parámetros por medio de GET y los parámetros que vienen por GET se ven en la URL, debe tener un formato tipo:
      localhost/ruta_proyecto/receptor.php?PayerID=xx&st=xx&tx=xx&cc=xx&amt=xx
      Lo puedes ver claramente en el video en el minuto 7:27:
      ua-cam.com/video/EdGmUHW5Fdk/v-deo.html
      Y por último puedes hacer una prueba rápida para comprobar que tu código si está capturando el parámetro “tx” proveniente de una petición GET llamando tú mismo a; “receptor.php?tx=HolaMundo”, imprimiendo el valor de tx y parando la ejecución del programa, ejemplo:
      localhost/ruta_proyecto/receptor.php?tx=HolaMundo
      $tx = $_GET['tx'];
      echo $tx;
      die('Prueba.');
      Gracias por tu comentario, espero que sea de ayuda, un saludo.

    • @davidarmandoguevara9458
      @davidarmandoguevara9458 Рік тому

      @@code_index Me sucede lo mismo, le he dado al menos unas 30 revisadas y no logro ver la razón, se que paypal retorna la tx pero aún así no funciona

  • @JeanPierre-xr2fq
    @JeanPierre-xr2fq 2 роки тому

    como puedo cambiar el tipo de moneda gaaaaaa

    • @code_index
      @code_index  2 роки тому

      Hola amigo, espero que hayas encontrado rápidamente la solución.
      Yo lo hago de esta manera:
      Si encontraste otra manera, siéntete libre compartir por si a otra persona le ayuda.
      Saludos!

  • @tonicamposgomez8475
    @tonicamposgomez8475 2 роки тому

    Yo no tengo la aplicación PayPal.
    Me jaquean mi número de cuenta y pagan con PayPal.
    He denunciado a la policia

    • @code_index
      @code_index  2 роки тому

      Recuerda que también puedes contactar con soporte de paypal, un saludo!
      www.paypal.com/es/smarthelp/contact-us

  • @jordyvalverde2415
    @jordyvalverde2415 2 роки тому

    Hola, buen día. He entendido tu código pero tengo un problemin en el return.php, sucede que el metodo GET que manda paypal ahora es sólo el PayerID y ya no incluye las variables: st, tx, cc y amt. Así que cuando trata de obtener el _GET['tx'] sale error de que no es valido. Por lo mismo que mencioné, paypal retorna esta estructura:
    paypal/receptor.php?PayerID=S8SZYXNXKPHE6. Entonces, mi duda es: Cómo puedo modificar el $query para que pueda trabajar con el PayerID?
    Help :c

    • @jordyvalverde2415
      @jordyvalverde2415 2 роки тому

      Adicional, en la ventana de paypal no te retorna de manera automática como se visualiza en tu video, así que antes de hacer el return te muestra los siguientes parámetros, quise utilizarlos pero nada :C
      www.sandbox.paypal.com/webapps/hermes?
      flow=1-P
      ulReturn=true
      token=1C2097355W611253D
      useraction=commit
      mfid=1655650564075_570436ecdf979
      rcache=2
      cookieBannerVariant=1
      country.x=ES
      locale.x=es_ES