Integrering av Paypal i Rails Application

Paypal är en e-handelsbaserad webbapplikation, som överför beloppet mellan två konton. Nästan alla USA-baserade företag använder PayPal för att ta emot och göra betalningarna. Låt oss se hur man integrerar denna tjänst i rails-applikationen i olika steg.

Notera: Jag har provat dessa steg i utvecklingsläge, på min lokala dator. Det fungerar bra men har inte testat i produktion.

Steg 1: a> Om man inte har ett PayPal-konto kan du besöka http://developer.paypal.com och registrera dig för att skapa ett konto. Logga sedan in med det kontot.

b> För att testa applikationen bör användaren ha testkonton på PayPal. Till exempel – jag gjorde två konton, ett som köpare och ett som säljare. Båda har säker inloggning och senare kan de använda dessa konton för att skicka eller ta emot betalningar.

c> Dessa förkonfigurerade konton kan skapas genom att gå till fliken testkonton. Klicka sedan på förkonfigurerat alternativ för att skapa testkonton på PayPal med lite extra information. Notera konto-id och lösenord som genererats för både köpare och säljare .

d> Nu baserat på krav, markera kryssrutan för det specifika kontot och klicka på länkrutan för att ange det specifika testkontot. Om du klickar på det omdirigeras du till http://sandbox.paypal.com. Genom att använda din kontoinformation kan du logga in på just det kontot. Dessa konton och betalningar simuleras som vilket originalkonto som helst.

e> Låter nu koda vår rails-applikation för att använda dessa konton. Jag använder alternativet "Lägg till i kundvagn" för att välja några artiklar och lägga till dem i varukorgen, genom att klicka på kassaknappen, omdirigerar den till PayPals webbplats.

På nästa sida:

f> I min cart.rb, paypal_url-metod för att omdirigera till PayPals webbplats:

 def paypal_url(return_url, notify_url) #1:a webbadress för att återgå till din egen app, andra webbadress för PayPal för att skicka meddelandevärden = { :business => '[email protected]', #konto genererat av paypal', #konto genererat av paypal' :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}” => artikel. product.id, “quantity_#{index+1}” => item.quantity }) end “https://www.sandbox.paypal.com/cgi-bin/webscr?” + values.to_query end

g> I min show.html.erb har jag placerat kassaknappen med url för att återgå till:

h> Du måste vara inloggad när du simulerar denna tjänst.

i> Efter att ha klickat på kassan kommer detta att omdirigera till Paypal-webbplatsen med säker anslutning.

Detta kommer att se ut så här: Det innehåller kundvagnsdetaljer och formulär för köparen att logga in.

j> På den här betalningssidan måste man ange sitt köparkonto-id och lösenord för att logga in. Efter att ha loggat in kommer det att visa andra användaruppgifter med alternativet betala-nu. Efter att ha betalat kan köparen återvända till sin egen butik genom att klicka på länken på sidan.

Aviseringar från Paypal

a> Aviseringar som skickas från PayPal kan sparas i databasen. För det måste vi ha en modell med rätt fält. ie- rails g-modell Betalningsmeddelande params:text status:string transaktions-id:sträng cart_id:integer

Min aviseringskontroller (skapa metod) kommer att se ut så här:-

def create PaymentNotification.create!(:params => params, :cart_id => params[:faktura], :status => params[:payment_status], :transaction_id => params[:txn_id]) render :nothing => true end

b> Det finns ingen direkt att testa detta, såvida det inte används i produktionen men det kan testas i konsolen med hjälp av curl-kommandot. eg-curl -d “txn_id=9JU83038HS278211W&invoice=1&payment_status=Completed” http://localhost:3000/payment_notifications

c> Om detta kommando körs utan att ge några undantag, är allt bra och värden kommer att lagras i databasen.

Börja betala nu.

Tack för att du läser !!!

Kontakta oss.

Prenumerera för de senaste uppdateringarna

relaterade inlägg

Lämna en kommentar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

sv_SESwedish