2009-01-18 35 views
6

Estoy creando una tienda utilizando ActiveCenter de Active Merchant y PayPal ahora mismo. Parece estar funcionando bien, pero no creo que sea remotamente seguro. Realmente no sé mucho sobre HTTPS y cómo implementar conexiones seguras.Cómo crear una puerta de enlace de tarjeta de crédito segura usando paypal/ruby ​​on rails/active merchant

Actualmente estoy pasando la tarjeta de crédito y la información de facturación en la sesión (probablemente no es la idea más inteligente). Mi código actual se publica a continuación. Realmente necesito ayuda con la dirección y los pasos a seguir para hacer de esta una tienda segura y utilizable.

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 

Respuesta

7

Hubo un buen railscast sobre cómo implementar ssl.

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

+0

Bien. Pero está bien pasar información de la tarjeta de crédito a la vista en la sesión. ¿Eso es lo suficientemente seguro? Además, ¿cómo hago que funcione con https. – Sam

+0

Si desea que todo el sitio se ejecute en HTTPS, la manera más fácil sería ejecutar su aplicación Rails con Passenger (http://www.modrails.com/) y luego tener Apache para usar HTTPS para el host virtual que usted ' volver a ejecutar (http://www.securityfocus.com/infocus/1818) –

+0

En cuanto a si pasa la información de la tarjeta de crédito usando la sesión. Recuerdo haber leído que toda la información de la sesión está encriptada, y que con ella usa la clave de autenticación en los formularios, pero no soy una autoridad en esa área. –

Cuestiones relacionadas