Paypal ist eine E-Commerce-basierte Webanwendung, die den Betrag zwischen zwei Konten überträgt. Fast alle in den USA ansässigen Unternehmen nutzen Paypal für den Empfang und die Abwicklung von Zahlungen, und wir werden sehen, wie dieser Dienst in verschiedenen Schritten in die Rails-Anwendung integriert werden kann.
Hinweis: Ich habe diese Schritte im Entwicklungsmodus, auf meinem lokalen Rechner ausprobiert. Es funktioniert gut, aber ich habe es nicht in der Produktion getestet.
Schritt 1: a> Falls man kein Paypal-Konto hat, kann man die Seite http://developer.paypal.com und melden Sie sich an, um ein Konto einzurichten. Melden Sie sich dann mit diesem Konto an.
b> Um die Anwendung zu testen, sollten Benutzer Testkonten bei Paypal haben. Ich habe z.B. zwei Konten erstellt, eines als Käufer und eines als Verkäufer. Beide haben dort ein sicheres Login und später können sie diese Konten verwenden, um Zahlungen zu senden oder zu empfangen.
c> Diese vorkonfigurierten Konten können erstellt werden, indem Sie auf die Registerkarte "Testkonten" gehen und dann auf die Option "Vorkonfiguriert" klicken, um Testkonten auf Paypal mit wenigen zusätzlichen Informationen zu erstellen.
d> Aktivieren Sie nun je nach Anforderung das Kontrollkästchen des jeweiligen Kontos und klicken Sie auf das Linkfeld, um das jeweilige Testkonto zu öffnen. Wenn Sie darauf klicken, werden Sie weitergeleitet zu http://sandbox.paypal.com. Diese Konten und Zahlungen werden so simuliert, wie sich ein Original-Konto verhalten würde.
Ich verwende die Option "In den Warenkorb legen", um einige Artikel auszuwählen und sie in den Warenkorb zu legen, indem ich auf die Schaltfläche "Zur Kasse gehen" klicke.
Auf der nächsten Seite:
f> In meiner cart.rb, paypal_url Methode, um auf die Paypal-Seite umzuleiten:
def paypal_url(return_url,notify_url) #1st url um zur eigenen App zurückzukehren,2. url für paypal um Benachrichtigung zu senden values = { :business => '[email protected]', #account generiert von paypal :cmd => 'cart', :upload => 1, :return => return_url, :invoice => id, :notify_url => notify_url } line_items.each_with_index do |item, index| values.merge!({ "amount#{index+1}" => item.product.price, "item_name_#{index+1}" => item.product.title, "item_number_#{index+1}" => item.product.id, "quantity_#{index+1}" => item.quantity }) end "https://www.sandbox.paypal.com/cgi-bin/webscr?" + values.to_query end
g> In meiner show.html.erb habe ich den Checkout-Button mit einer URL platziert, zu der man zurückkehren kann:
h> Sie müssen eingeloggt sein, um diesen Dienst zu simulieren.
i> Nachdem Sie auf Kasse geklickt haben, werden Sie zur Paypal-Website mit sicherer Verbindung weitergeleitet.
Dieses sieht wie folgt aus: Es enthält die Details des Warenkorbs und ein Formular, mit dem sich der Käufer anmelden kann.
j> Auf dieser Zahlungsseite muss der Käufer seine Kontonummer und sein Passwort eingeben, um sich einzuloggen. Nach der Anmeldung werden auch andere Benutzerdetails mit der Option "Jetzt bezahlen" angezeigt. nach der Bezahlung kann der Käufer zu seinem eigenen Shop zurückkehren, indem er auf den Link auf der Seite klickt.
Benachrichtigungen von Paypal
a> Benachrichtigungen, die von paypal gesendet werden, können in der Datenbank gespeichert werden. dafür brauchen wir ein Modell mit den richtigen Feldern. z.B. rails g model Payment Notification params:text status:string transaction_id:string cart_id:integer
Mein Benachrichtigungs-Controller (Erstellungsmethode) wird wie folgt aussehen:-
def create PaymentNotification.create!(:params => params, :cart_id => params[:invoice], :status => params[:payment_status], :transaction_id => params[:txn_id]) render :nothing => true end
b> Es gibt keine direkte Möglichkeit, dies zu testen, es sei denn, es wird in der Produktion eingesetzt, aber es kann in der Konsole mit dem Befehl curl getestet werden. eg-curl -d "txn_id=9JU83038HS278211W&invoice=1&payment_status=Completed" http://localhost:3000/payment_notifications
c> Wenn dieser Befehl ohne Ausnahmen ausgeführt wird, dann ist alles in Ordnung und die Werte werden in der Datenbank gespeichert.
Beginnen Sie jetzt mit der Zahlung.
Danke fürs Lesen!!!
Nehmen Sie Kontakt mit uns auf.