Permalink
Browse files

adicionando validações

  • Loading branch information...
1 parent 4982c9e commit 570fd2a979ef48d725d81c4413e68ea85affdfec Juan Maiz committed May 17, 2011
Showing with 375 additions and 298 deletions.
  1. +1 −1 lib/moip/client.rb
  2. +35 −2 lib/moip/direct_payment.rb
  3. +339 −295 spec/moip_spec.rb
View
@@ -17,8 +17,8 @@ class << self
# Envia uma instrução para pagamento único
def checkout(attributes = {})
+ #raise DirectPayment.body(attributes).inspect
full_data = peform_action!(:post, 'EnviarInstrucao/Unica', :body => DirectPayment.body(attributes))
-
get_response!(full_data["ns1:EnviarInstrucaoUnicaResponse"]["Resposta"])
end
View
@@ -3,17 +3,50 @@
module MoIP
- class MissingPaymentTypeError < StandardError ; end
- class MissingPayerError < StandardError ; end
+ class ValidationError < StandardError; end
+
+ class MissingPaymentTypeError < ValidationError; end
+ class MissingPayerError < ValidationError; end
+ class InvalidInstitution < ValidationError; end
+ class InvalidValue < ValidationError; end
+
+ # Baseado em http://labs.moip.com.br/pdfs/Integra%C3%A7%C3%A3o%20API%20-%20Autorizar%20e%20Cancelar%20Pagamentos.pdf
+ CodigoErro = 0..999
+ CodigoEstado = %w{AC AL AM AP BA CE DF ES GO MA MG MS MT PA PB PE PI PR RJ RN RO RR RS SC SE SP TO}
+ CodigoMoeda = "BRL"
+ CodigoPaís = "BRA"
+ Destino = %w{Nenhum MesmoCobranca AInformar PreEstabelecido}
+ InstituicaoPagamento = %w{MoIP Visa AmericanExpress Mastercard Diners BancoDoBrasil Bradesco Itau BancoReal Unibanco Aura Hipercard Paggo Banrisul}
+ FormaPagamento = %w{CarteiraMoIP CartaoCredito CartaoDebito DebitoBancario FinanciamentoBancario BoletoBancario}
+ FormaRestricao = %w{Contador Valor}
+ PapelIndividuo = %w{Integrador Recebedor Comissionado Pagado}
+ OpcaoDisponivel = %w{Sim Não PagadorEscolhe}
+ Parcelador = %w{Nenhum Administradora MoIP Recebedor}
+ StatusLembrete = %w{Enviado Realizado EmAndamento Aguardando Falha}
+ StatusPagamento = %w{Concluido EmAnalise Autorizado Iniciado Cancelado BoletoImpresso Estornado}
+ TipoDias = %w{Corridos Uteis}
+ TipoDuracao = %w{Minutos Horas Dias Semanas Meses Ano}
+ TipoFrete = %w{Proprio Correio}
+ TipoIdentidade = %w{CPF CNPJ}
+ TipoInstrucao = %w{Unico Recorrente PrePago PosPago Remessa}
+ TipoLembrete = %w{Email SMS}
+ TipoPeriodicidade = %w{Anual Mensal Semanal Diaria}
+ TipoRecebimento = %w{AVista Parcelado}
+ TipoRestricao = %w{Autorizacao Pagamento}
+ TipoStatus = %w{Sucesso Falha}
class DirectPayment
class << self
# Cria uma instrução de pagamento direto
def body(attributes = {})
+
+#raise "#{attributes[:valor]}--#{attributes[:valor].to_f}"
raise(MissingPaymentTypeError, "É necessário informar a razão do pagamento") if attributes[:razao].nil?
raise(MissingPayerError, "É obrigatório passar as informações do pagador") if attributes[:pagador].nil?
+ raise(InvalidValue, "Valor deve ser maior que zero.") if attributes[:valor].to_f <= 0.0
+ raise(InvalidInstitution, "A instituição #{attributes[:instituicao]} é inválida. Escolha uma destas: #{InstituicaoPagamento.join(', ')}") if attributes[:forma] == "CartaoCredito" && !InstituicaoPagamento.include?(attributes[:instituicao])
builder = Nokogiri::XML::Builder.new(:encoding => "UTF-8") do |xml|
Oops, something went wrong.

0 comments on commit 570fd2a

Please sign in to comment.