Paypal è un'applicazione web basata sull'e-commerce, che trasferisce l'importo tra due conti. Quasi tutte le aziende con sede negli Stati Uniti utilizzano PayPal per ricevere ed effettuare i pagamenti. Vediamo come integrare questo servizio nell'applicazione ferroviaria in diversi passaggi.
Nota: Ho provato questi passaggi in modalità di sviluppo, sul mio computer locale. Funziona bene ma non è stato testato in produzione.
Passo 1: a> Nel caso in cui non si disponga di un conto PayPal, è possibile visitare http://developer.paypal.com e registrati per creare un account. Quindi accedi utilizzando quell'account.
b> Per testare l'applicazione l'utente deve disporre di conti di prova su PayPal. Ad esempio – ho creato due account, uno come acquirente e l'altro come venditore. Entrambi hanno un accesso sicuro e in seguito possono utilizzare questi account per inviare o ricevere pagamenti.
c> Questi account preconfigurati possono essere creati accedendo alla scheda Account di prova. Quindi fare clic sull'opzione preconfigurata per creare account di prova su PayPal con poche informazioni aggiuntive. Prendi nota dell'ID account e della password generati sia per l'acquirente che per il venditore .
d> Ora, in base ai requisiti, seleziona la casella di controllo del particolare account e fai clic sulla casella di collegamento per accedere a quel particolare account di prova. Facendo clic su di esso verrai reindirizzato a http://sandbox.paypal.com. Utilizzando le informazioni del tuo account puoi accedere a quel particolare account. Questi account e pagamenti sono simulati come si comporterà qualsiasi account originale.
e> Ora codifichiamo la nostra applicazione ferroviaria per utilizzare questi account. Sto utilizzando l'opzione "Aggiungi al carrello" per selezionare alcuni articoli e aggiungerli al carrello, facendo clic sul pulsante di pagamento, reindirizza al sito PayPal.
Nella pagina successiva:
f> Nel mio metodo cart.rb,paypal_url per reindirizzare al sito PayPal:
def paypal_url(return_url,notify_url) #1° URL per tornare alla tua app,2° URL per PayPal per inviare notifiche valori = { :business => '[email protected]', #account generato da paypal :cmd => 'carrello', :upload => 1, :return => return_url, :invoice => id, :notify_url => notify_url } line_items.each_with_index do |item, index| valori.merge!({ “importo#{index+1}” => articolo.prodotto.prezzo, “item_name_#{index+1}” => articolo.prodotto.titolo, “item_number_#{index+1}” => articolo. product.id, “quantity_#{index+1}” => item.quantity }) end “https://www.sandbox.paypal.com/cgi-bin/webscr?” + valori.to_query end
g> Nel mio show.html.erb, ho inserito il pulsante di pagamento con l'URL per tornare a:
h> Devi essere loggato durante la simulazione di questo servizio.
i> Dopo aver cliccato su checkout, questo ti reindirizzerà al sito Paypal con connessione sicura.
Apparirà così: Contiene i dettagli del carrello e il modulo per l'accesso dell'acquirente.
j> In questa pagina di pagamento, è necessario fornire l'ID e la password del proprio account acquirente per accedere. Dopo aver effettuato l'accesso verranno visualizzati anche altri dettagli dell'utente con l'opzione paga adesso. Dopo aver pagato, l'acquirente può tornare al proprio negozio tramite cliccando sul link fornito nella pagina.
Notifiche da Paypal
a> Le notifiche inviate da PayPal possono essere salvate nel database. Per questo abbiamo bisogno di un modello con i campi appropriati. ie- rails g model Notifica di pagamento params:text status:string Transaction_id:string cart_id:integer
Il mio controller delle notifiche (metodo di creazione) sarà simile al seguente: -
def create PaymentNotification.create!(:params => params, :cart_id => params[:invoice], :status => params[:payment_status], :transaction_id => params[:txn_id]) render :nothing => true end
b> Non è possibile testarlo direttamente, a meno che non venga distribuito in produzione, ma può essere testato nella console utilizzando il comando curl. es.-curl -d “txn_id=9JU83038HS278211W&invoice=1&payment_status=Completed” http://localhost:3000/payment_notifications
c> Se questo comando viene eseguito senza fornire eccezioni, tutto va bene e i valori verranno archiviati nel database.
Inizia subito a effettuare il pagamento.
Grazie per aver letto !!!
Mettiti in contatto con noi.