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.