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
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
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) –
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. –