Я сейчас создаю магазин, используя Active Merchant и PayPal sandbox. Кажется, что он работает нормально, но я не думаю, что это даже удаленно безопасно. Я не слишком много знаю о HTTPS и о том, как реализовать безопасные соединения.
В настоящее время я передаю данные кредитной карты и счета в сеансе (вероятно, не самая умная идея). Мой текущий код размещен ниже. Мне действительно нужна помощь с указанием направления и шагов, которые необходимо предпринять, чтобы сделать этот магазин безопасным и удобным для использования.
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