Integración de Paypal en la aplicación Rails

Paypal es una aplicación web basada en comercio electrónico que transfiere el importe entre dos cuentas. Casi todas las empresas con sede en EE. UU. utilizan PayPal para recibir y realizar pagos. Veamos cómo integrar este servicio en la aplicación Rails en diferentes pasos.

Nota: Probé estos pasos en modo de desarrollo, en mi máquina local. Funciona bien pero no se ha probado en producción.

Paso 1: a> En caso de que uno no tenga una cuenta de PayPal, puede visitar http://developer.paypal.com y regístrate para crear una cuenta. Luego inicie sesión con esa cuenta.

b> Para probar la aplicación, el usuario debe tener cuentas de prueba en PayPal. Por ejemplo, hice dos cuentas, una como comprador y otra como vendedor. Ambos tienen un inicio de sesión seguro y luego pueden usar estas cuentas para enviar o recibir pagos.

c> Estas cuentas preconfiguradas se pueden crear yendo a la pestaña de cuentas de prueba. Luego haga clic en la opción preconfigurada para crear cuentas de prueba en PayPal con poca información adicional. Tome nota de la identificación de cuenta y la contraseña generadas tanto para el comprador como para el vendedor. .

d> Ahora, según los requisitos, marque la casilla de verificación de la cuenta en particular y haga clic en el cuadro de enlace para ingresar a esa cuenta de prueba en particular. Al hacer clic en eso, se le redirigirá a http://sandbox.paypal.com. Usando la información de su cuenta, uno puede iniciar sesión en esa cuenta en particular. Estas cuentas y pagos se simulan como se comportaría cualquier cuenta original.

e> Ahora codifiquemos nuestra aplicación Rails para usar estas cuentas. Estoy usando la opción "Agregar al carrito" para seleccionar algunos artículos y agregarlos al carrito; al hacer clic en el botón de pago, se redirige al sitio de PayPal.

En la página siguiente:

f> En mi cart.rb, método paypal_url para redirigir al sitio de PayPal:

 def paypal_url(return_url,notify_url) #1.ª URL para regresar a su propia aplicación, 2.ª URL para que PayPal envíe valores de notificación = { :business => '[email protected]', #account generada por Paypal :cmd => 'cart', :upload => 1, :return => return_url, :invoice => id, :notify_url => notify_url } line_items.each_with_index hacer |item, index| valores.merge!({ “cantidad#{índice+1}” => item.product.price, “item_name_#{index+1}” => item.product.title, “item_number_#{index+1}” => artículo. product.id, “cantidad_#{índice+1}” => item.cantidad }) finaliza “https://www.sandbox.paypal.com/cgi-bin/webscr?” + valores.to_query final

g> En mi show.html.erb, he colocado el botón de pago con la URL para regresar a:

h> Debes iniciar sesión mientras simulas este servicio.

i> Después de hacer clic en finalizar compra, esto le redirigirá al sitio de Paypal con una conexión segura.

Se verá así: Contiene los detalles del carrito y un formulario para que el comprador inicie sesión.

j> En esta página de pago, uno debe proporcionar su identificación de cuenta de comprador y contraseña para iniciar sesión. Después de iniciar sesión, también se mostrarán otros detalles del usuario con la opción de pagar ahora. Después de pagar, el comprador puede regresar a su propia tienda haciendo clic en el enlace proporcionado en la página.

Notificaciones de Paypal

a> Las notificaciones enviadas desde PayPal se pueden guardar en la base de datos. Para eso necesitamos tener un modelo con los campos adecuados. Es decir, modelo Rails g Parámetros de notificación de pago: estado del texto: cadena ID_transacción: cadena ID_carrito: entero

Mi controlador de notificaciones (método de creación) se verá así: -

def crear PaymentNotification.create!(:params => params, :cart_id => params[:invoice], :status => params[:paid_status], :transaction_id => params[:txn_id]) render :nada => true end

b> No es posible probar esto directamente, a menos que se implemente en producción, pero se puede probar en la consola usando el comando curl. por ejemplo, curl -d “txn_id=9JU83038HS278211W&invoice=1&paid_status=Completado” http://localhost:3000/payment_notifications

c> Si este comando se ejecuta sin dar excepciones, entonces todo está bien y los valores se almacenarán en la base de datos.

Comience a realizar el pago ahora.

Gracias por leer !!!

Póngase en contacto con nosotros.

Suscríbete para recibir las últimas actualizaciones

Artículos Relacionados

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

es_ESSpanish