2009-01-18 4 views
6

Ich erstelle gerade ein Geschäft mit Active Merchant und PayPal Sandbox. Es scheint gut zu funktionieren, aber ich glaube nicht, dass es auch nur annähernd sicher ist. Ich weiß nicht wirklich viel über HTTPS und wie sichere Verbindungen implementiert werden.So erstellen Sie ein sicheres Kreditkarten-Gateway mit Paypal/Ruby on Rails/aktiver Händler

Ich übergebe derzeit die Kreditkarten- und Rechnungsinformationen in der Sitzung (wahrscheinlich nicht die klügste Idee). Mein aktueller Code ist unten veröffentlicht. Ich brauche wirklich Hilfe in welcher Richtung und mit welchen Schritten, um dies zu einem sicheren, nutzbaren Geschäft zu machen.

def payment 
session[:billing_address] = params[:billing_address] 
end 

def summary 
    @credit_card = params[:credit_card] 
    session[:credit_card] = params[:credit_card] 
    @billing_address = session[:billing_address] 
    @cart = get_cart 
    @purchases = @cart.purchases 
    @total = @cart.total 
end 

def finish 
    @cart = get_cart 
    @total = @cart.total 

    credit_card = ActiveMerchant::Billing::CreditCard.new(session[:credit_card]) 

    billing_address = session[:billing_address] 

    flash[:notice] = credit_card.errors and return unless credit_card.valid? 

    gateway = ActiveMerchant::Billing::PaypalGateway.new(:login=>$PAYPAL_LOGIN, :password=>$PAYPAL_PASSWORD) 

    res = gateway.authorize(@total, credit_card, :ip=>request.remote_ip, :billing_address=>billing_address) 

    if res.success? 
     gateway.capture(@total, res.authorization) 
     flash[:notice] = "Authorized" 
    else 
     flash[:notice] = "Failure: " + res.message.to_s 
    end  
    end 

Antwort

7

Es gab eine gute Railscast darüber, wie ssl zu implementieren.

http://railscasts.com/episodes/143-paypal-security

+0

Okay. Aber ist es in Ordnung, Kreditkarteninformationen an die Ansicht in der Sitzung zu übergeben? Ist das sicher genug? Wie kann ich es mit https arbeiten? – Sam

+0

Wenn Sie möchten, dass die gesamte Site unter HTTPS ausgeführt wird, besteht der einfachste Weg darin, Ihre Rails-Anwendung mit Passenger (http://www.modrails.com/) auszuführen und dann Apache HTTPS für den virtuellen Host zu verwenden, den Sie verwenden. Re läuft auf (http://www.securityfocus.com/infocus/1818) –

+0

Als ob die Kreditkarteninformationen mit der Sitzung übergeben werden. Ich erinnere mich zu lesen, dass alle Sitzungsinformationen verschlüsselt sind, das ist mit dem Auth-Schlüssel in den Formularen, aber ich bin keine Autorität in diesem Bereich. –