Class: DineroMailIpn::Client
- Inherits:
-
Object
- Object
- DineroMailIpn::Client
- Includes:
- HTTParty
- Defined in:
- lib/dinero_mail_ipn.rb
Overview
Cliente para Dinero Mail API (v1 y v2)
Cliente para consumir los métodos de la API IPN v1 y v2.
Cliente para IPN v1
DineroMailIpn::Client.new(:email => '[email protected]', :account => '17128254', :pin => 'AYCN7IXDTM')
Cliente para IPN v2
DineroMailIpn::Client.new(:email => '[email protected]',
:account => '17128254', :pin => 'AYCN7IXDTM', :password => 'ipnv2password')
Paises
Por default el Cliente se crea para una cuenta de Argentina. Para consultar la API de una cuenta en otro país:
DineroMailIpn::Client.new(:email => '[email protected]',
:account => '17128254', :pin => 'AYCN7IXDTM', :pais => 'brasil')
Posibilidades
- 'argentina'
- 'chile'
- 'brasil'
- 'mexico'
Constant Summary collapse
- DEFAULT_COUNTRY =
País por default para consultas
'argentina'
Instance Attribute Summary collapse
-
#account ⇒ Object
readonly
Returns the value of attribute account.
-
#email ⇒ Object
readonly
Returns the value of attribute email.
-
#pais ⇒ Object
readonly
Returns the value of attribute pais.
-
#password ⇒ Object
readonly
Returns the value of attribute password.
-
#pin ⇒ Object
readonly
Returns the value of attribute pin.
Instance Method Summary collapse
-
#consulta_pago(start_date, end_date) ⇒ ConsultaPagoResponse
Devuelve una ConsultaPagoResponse.
-
#consulta_transacciones(transacciones = []) ⇒ Reporter
Devuelve un objeto [Reporter] con un array de objetos tipo [Report].
-
#format_date(a_date) ⇒ String
Devuelve un String con formato YYYYMMDD.
-
#initialize(opts) ⇒ Client
constructor
A new instance of Client.
Constructor Details
#initialize(opts) ⇒ Client
Returns a new instance of Client.
61 62 63 64 65 66 67 |
# File 'lib/dinero_mail_ipn.rb', line 61 def initialize(opts) @email = opts[:email] @account = opts[:account] @pin = opts[:pin] @password = opts[:password] @pais = opts[:pais] || DEFAULT_COUNTRY end |
Instance Attribute Details
#account ⇒ Object (readonly)
Returns the value of attribute account.
50 51 52 |
# File 'lib/dinero_mail_ipn.rb', line 50 def account @account end |
#email ⇒ Object (readonly)
Returns the value of attribute email.
50 51 52 |
# File 'lib/dinero_mail_ipn.rb', line 50 def email @email end |
#pais ⇒ Object (readonly)
Returns the value of attribute pais.
50 51 52 |
# File 'lib/dinero_mail_ipn.rb', line 50 def pais @pais end |
#password ⇒ Object (readonly)
Returns the value of attribute password.
50 51 52 |
# File 'lib/dinero_mail_ipn.rb', line 50 def password @password end |
#pin ⇒ Object (readonly)
Returns the value of attribute pin.
50 51 52 |
# File 'lib/dinero_mail_ipn.rb', line 50 def pin @pin end |
Instance Method Details
#consulta_pago(start_date, end_date) ⇒ ConsultaPagoResponse
Devuelve una DineroMailIpn::ConsultaPagoResponse.
74 75 76 77 78 79 |
# File 'lib/dinero_mail_ipn.rb', line 74 def consulta_pago(start_date, end_date) params = default_params.merge({:StartDate => format_date(start_date), :EndDate => format_date(end_date)}) response = self.class.get("https://#{@pais}.dineromail.com/vender/ConsultaPago.asp", :query => params) ConsultaPagoResponse.new( response.parsed_response) end |
#consulta_transacciones(transacciones = []) ⇒ Reporter
Devuelve un objeto [Reporter] con un array de objetos tipo [Report].
Los objetos de tipo [Report] están asociados a los ID de transacciones.
Ejemplo:
client.consulta_transacciones([1,2])
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
# File 'lib/dinero_mail_ipn.rb', line 100 def consulta_transacciones(transacciones = []) xml_builder = Nokogiri::XML::Builder.new do |xml| xml.REPORTE { xml.NROCTA @account xml.DETALLE { xml.CONSULTA { xml.CLAVE @password xml.TIPO 1 xml.OPERACIONES { transacciones.each do |transaction_id| xml.ID transaction_id end } } } } end body = xml_builder.to_xml body.sub!("<?xml version=\"1.0\"?>", "") body.gsub!(/\s/, '') response = self.class.post("http://#{@pais}.dineromail.com/Vender/Consulta_IPN.asp", :body => "DATA=#{body}", :headers => {"Content-type" => "application/x-www-form-urlencoded", "Content-length" => "#{body.length}" }).response.body DineroMailIpn::Reporter.new(response) end |
#format_date(a_date) ⇒ String
Devuelve un String con formato YYYYMMDD. (Por ej.: "20110201")
85 86 87 |
# File 'lib/dinero_mail_ipn.rb', line 85 def format_date(a_date) a_date.strftime("%Y%m%d") end |