ActiveMerchant未验证无效的信用卡

时间:2012-08-10 10:24:56

标签: credit-card activemerchant validating

我的rails 2.3.2应用程序中的ActiveMerchant信用卡验证存在问题。(ActiveMerchant 1.4.1)

我完全按照railscast#145剧集编码。

我的问题是,当我使用无效数据验证信用卡时,例如:first_name,:last_name为空,ActiveMerchant未提供验证错误

我在我的脚本/控制台

中尝试了这个
credit_card = ActiveMerchant::Billing::CreditCard.new(:number => "",:first_name => "")
credit_card.errors.full_messages #=> []
credit_card.errors #=> {}

我的payment.rb包含

validate_on_create :validate_card

private

def validate_card
  unless credit_card.valid?
    credit_card.errors.full_messages.each do |message|
       errors.add_to_base message
    end
  end
end

def credit_card
  @credit_card = ActiveMerchant::Billing::CreditCard.new(
    :number             => card_number,
    :month              => card_expires_on.month,
    :year               => card_expires_on.year,
    :first_name         => first_name,
    :last_name          => last_name,
    :verification_value => cvv_number, 
    :type               => card_type
    )
 end

信用卡错误未添加到我在控制器#create中创建的@payment对象中 请告诉我我错在哪里

1 个答案:

答案 0 :(得分:1)

请添加一个||在你的credit_card功能

def credit_card
  @credit_card ||= ActiveMerchant::Billing::CreditCard.new(
    :number             => card_number,
    :month              => card_expires_on.month,
    :year               => card_expires_on.year,
    :first_name         => first_name,
    :last_name          => last_name,
    :verification_value => cvv_number, 
    :type               => card_type
    )
 end