class Cielo::Transaction
Attributes
chave_acesso[R]
numero_afiliacao[R]
Public Class Methods
new(numero_afiliacao = Cielo.numero_afiliacao, chave_acesso = Cielo.chave_acesso)
click to toggle source
# File lib/cielo/transaction.rb, line 8 def initialize numero_afiliacao = Cielo.numero_afiliacao, chave_acesso = Cielo.chave_acesso @numero_afiliacao = numero_afiliacao @chave_acesso = chave_acesso @connection = Cielo::Connection.new @numero_afiliacao, @chave_acesso end
Public Instance Methods
cancel!(cielo_tid)
click to toggle source
# File lib/cielo/transaction.rb, line 76 def cancel!(cielo_tid) return nil unless cielo_tid message = @connection.xml_builder("requisicao-cancelamento", :before) do |xml| xml.tid "#{cielo_tid}" end @connection.make_request! message end
catch!(cielo_tid)
click to toggle source
# File lib/cielo/transaction.rb, line 60 def catch!(cielo_tid) return nil unless cielo_tid message = @connection.xml_builder("requisicao-captura", :before) do |xml| xml.tid "#{cielo_tid}" end @connection.make_request! message end
cielo_page_create!(parameters={})
click to toggle source
# File lib/cielo/transaction.rb, line 43 def cielo_page_create!(parameters={}) analysis_parameters(parameters, :buy_page_cielo) message = @connection.xml_builder("requisicao-transacao") do |xml| default_transaction_xml(xml, parameters) end @connection.make_request! message end
create!(parameters = {}, buy_page = :cielo)
click to toggle source
# File lib/cielo/transaction.rb, line 14 def create!(parameters = {}, buy_page = :cielo) if buy_page == :store store_page_create!(parameters) else cielo_page_create!(parameters) end end
store_page_create!(parameters={})
click to toggle source
# File lib/cielo/transaction.rb, line 22 def store_page_create!(parameters={}) analysis_parameters(parameters, :buy_page_store) message = @connection.xml_builder('requisicao-transacao') do |xml| xml.tag!("dados-portador") do if parameters[:token].present? xml.tag!('token', CGI.escape(parameters[:token])) else xml.tag!('numero', parameters[:cartao_numero]) xml.tag!('validade', parameters[:cartao_validade]) xml.tag!('indicador', parameters[:cartao_indicador]) xml.tag!('codigo-seguranca', parameters[:cartao_seguranca]) xml.tag!('nome-portador', parameters[:cartao_portador]) xml.tag!('token', '') end end default_transaction_xml(xml, parameters) end @connection.make_request! message end
verify!(cielo_tid)
click to toggle source
# File lib/cielo/transaction.rb, line 51 def verify!(cielo_tid) return nil unless cielo_tid message = @connection.xml_builder("requisicao-consulta", :before) do |xml| xml.tid "#{cielo_tid}" end @connection.make_request! message end
Private Instance Methods
analysis_parameters(parameters={}, buy_page = :buy_page_cielo)
click to toggle source
# File lib/cielo/transaction.rb, line 102 def analysis_parameters(parameters={}, buy_page = :buy_page_cielo) to_analyze = [:numero, :valor, :bandeira, :"url-retorno"] if buy_page == :buy_page_store if parameters[:token].present? to_analyze.concat([:token]) else to_analyze.concat([:cartao_numero, :cartao_validade, :cartao_seguranca, :cartao_portador]) end end to_analyze.each do |parameter| raise Cielo::MissingArgumentError, "Required parameter #{parameter} not found" unless parameters[parameter] end parameters.merge!(:moeda => "986") unless parameters[:moeda] parameters.merge!(:"data-hora" => Time.now.strftime("%Y-%m-%dT%H:%M:%S")) unless parameters[:"data-hora"] parameters.merge!(:idioma => "PT") unless parameters[:idioma] parameters.merge!(:produto => "1") unless parameters[:produto] parameters.merge!(:parcelas => "1") unless parameters[:parcelas] parameters.merge!(:autorizar => "2") unless parameters[:autorizar] parameters.merge!(:capturar => "true") unless parameters[:capturar] parameters.merge!(:"url-retorno" => Cielo.return_path) unless parameters[:"url-retorno"] parameters.merge!(:cartao_indicador => '1') unless parameters[:cartao_indicador] && buy_page == :buy_page_store parameters.merge!(:"gerar-token" => false) unless parameters[:"gerar-token"] parameters end
default_transaction_xml(xml, parameters)
click to toggle source
# File lib/cielo/transaction.rb, line 85 def default_transaction_xml(xml, parameters) xml.tag!("dados-pedido") do [:numero, :valor, :moeda, :"data-hora", :idioma].each do |key| xml.tag!(key.to_s, parameters[key].to_s) end end xml.tag!("forma-pagamento") do [:bandeira, :produto, :parcelas].each do |key| xml.tag!(key.to_s, parameters[key].to_s) end end xml.tag!("url-retorno", parameters[:"url-retorno"]) xml.autorizar parameters[:autorizar].to_s xml.capturar parameters[:capturar].to_s xml.tag!("gerar-token", parameters[:"gerar-token"]) end