Class: SuperpayApi::WebService

Inherits:
Object
  • Object
show all
Defined in:
lib/superpay_api/web_service.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeWebService

Nova instancia da classe WebService Será considerado o ambiente informado nas configurações



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/superpay_api/web_service.rb', line 12

def initialize
  @savon_client = Savon.client(
    wsdl: ::SuperpayApi.url,
    env_namespace: :soapenv,
    convert_request_keys_to: :lower_camelcase,
    namespace_identifier: :pag,
    namespaces: {
      "xmlns:soapenv" => "http://schemas.xmlsoap.org/soap/envelope/",
      "xmlns:pag" => "http://pagamentos.webservices.superpay.ernet.com.br/",
    }
  )

  @savon_client_estorno = Savon.client(
    wsdl: ::SuperpayApi.url_estorno,
    env_namespace: :soapenv,
    convert_request_keys_to: :lower_camelcase,
    namespace_identifier: :est,
    namespaces: {
      "xmlns:soapenv" => "http://schemas.xmlsoap.org/soap/envelope/",
      "xmlns:est" => "http://estorno.webservices.superpay.ernet.com.br/",
    }
  )
end

Instance Attribute Details

#savon_clientObject (readonly)

Atributo para o cliente SOAP



8
9
10
# File 'lib/superpay_api/web_service.rb', line 8

def savon_client
  @savon_client
end

Instance Method Details

#cancelar_transacao(numero_transacao) ⇒ Object

Função que faz a requisição para cancelar_transacao



81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/superpay_api/web_service.rb', line 81

def cancelar_transacao(numero_transacao)
  # Monta os parâmetros
  params = helper.build_request_cancelar_transacao(numero_transacao)

  # Faz a requisição para o wsdl
  begin
    retorno = @savon_client.call(:operacao_transacao, message: params)
  rescue Savon::SOAPFault => error
    return helper.build_response_error(error)
  end

  # Verifica se a retorno veio correta ou se deu problema
  if retorno.blank?
    retorno = SuperpayApi::Retorno.new
    retorno.errors.add(:mensagem, "Resposta vazia")
    return retorno
  else
    return helper.build_response_retorno(retorno)
  end
end

#capturar_transacao(numero_transacao) ⇒ Object

Função que faz a requisição para capturar_transacao



103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# File 'lib/superpay_api/web_service.rb', line 103

def capturar_transacao(numero_transacao)
  # Monta os parâmetros
  params = helper.build_request_capturar_transacao(numero_transacao)

  # Faz a requisição para o wsdl
  begin
    retorno = @savon_client.call(:operacao_transacao, message: params)
  rescue Savon::SOAPFault => error
    return helper.build_response_error(error)
  end

  # Verifica se a retorno veio correta ou se deu problema
  if retorno.blank?
    retorno = SuperpayApi::Retorno.new
    retorno.errors.add(:mensagem, "Resposta vazia")
    return retorno
  else
    return helper.build_response_retorno(retorno)
  end
end

#consulta_transacao_completa(numero_transacao) ⇒ Object

Função que faz a requisição para consulta_transacao_completa



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/superpay_api/web_service.rb', line 37

def consulta_transacao_completa(numero_transacao)
  # Monta os parâmetros
  params = helper.build_request_consulta_transacao_completa(numero_transacao)

  # Faz a requisição para o wsdl
  begin
    retorno = @savon_client.call(:consulta_transacao_completa, message: params)
  rescue Savon::SOAPFault => error
    return helper.build_response_error(error)
  end

  # Verifica se a retorno veio correta ou se deu problema
  if retorno.blank?
    retorno = SuperpayApi::Retorno.new
    retorno.errors.add(:mensagem, "Resposta vazia")
    return retorno
  else
    return helper.build_response_retorno(retorno)
  end
end

#estorno_de_transacao(numero_transacao, valor_estorno) ⇒ Object

Função que faz a requisição para Estorno de transação



125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# File 'lib/superpay_api/web_service.rb', line 125

def estorno_de_transacao(numero_transacao, valor_estorno)
  # Monta os parâmetros
  params = helper.build_request_estorno_de_transacao(numero_transacao, valor_estorno)

  # Faz a requisição para o wsdl
  begin
    retorno = @savon_client_estorno.call(:estorna_transacao, message: params)
  rescue Savon::SOAPFault => error
    return helper.build_response_error_estorno(error)
  end

  # Verifica se a retorno veio correta ou se deu problema
  if retorno.blank?
    return "Resposta vazia"
  else
    return helper.build_response_retorno_estorno(retorno)
  end
end

#pagamento_transacao_completa(transacao) ⇒ Object

Função que faz a requisição para pagamento_transacao_completa



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/superpay_api/web_service.rb', line 59

def pagamento_transacao_completa(transacao)
  # Monta os parâmetros
  params = helper.build_request_pagamento_transacao_completa(transacao)

  # Faz a requisição para o wsdl
  begin
    retorno = @savon_client.call(:pagamento_transacao_completa, message: params)
  rescue Savon::SOAPFault => error
    return helper.build_response_error(error)
  end

  # Verifica se a retorno veio correta ou se deu problema
  if retorno.blank?
    retorno = SuperpayApi::Retorno.new
    retorno.errors.add(:mensagem, "Resposta vazia")
    return retorno
  else
    return helper.build_response_retorno(retorno)
  end
end