Class: Cielo::WS15

Inherits:
Object
  • Object
show all
Defined in:
lib/cielo/ws15.rb

Overview

Integração com o Webservice 1.5; esse participante faz um papel de facilitador para a construção de todos os participantes importantes para a integração. Através de factory methods, é possível criar as instâncias pré-configuradas com os parâmetros mínimos necessários para a execução das operações.

Constant Summary collapse

PRODUCTION =

Ambiente de produção da Cielo

"https://ecommerce.cielo.com.br/servicos/ecommwsec.do"
TEST =

Ambiente de testes da Cielo

"https://qasecommerce.cielo.com.br/servicos/ecommwsec.do"
NAMESPACE =

Namespace dos XML de requisição e resposta

"http://ecommerce.cbmp.com.br"
VERSION =

Versão do XML utilizado na integração

"1.3.0"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(affiliation_id, affiliation_key, endpoint = WS15::PRODUCTION) ⇒ WS15

Inicializa uma nova instância de WS15 informando as credenciais e o ambiente

Parameters:

  • affiliation_id (String)

    Número de afiliação na Cielo

  • affiliation_key (String)

    Chave de afiliação

  • endpoint (String) (defaults to: WS15::PRODUCTION)

    Ambiente onde será executada a integração



42
43
44
45
46
47
48
49
# File 'lib/cielo/ws15.rb', line 42

def initialize(
  affiliation_id,
  affiliation_key,
  endpoint = WS15::PRODUCTION)

  @merchant = Merchant.new(affiliation_id, affiliation_key)
  @endpoint = endpoint
end

Instance Attribute Details

#endpoint=(value) ⇒ Object

Sets the attribute endpoint

Parameters:

  • value

    the value to set the attribute endpoint to.



34
35
36
# File 'lib/cielo/ws15.rb', line 34

def endpoint=(value)
  @endpoint = value
end

#merchant=(value) ⇒ Object

Sets the attribute merchant

Parameters:

  • value

    the value to set the attribute merchant to.



34
35
36
# File 'lib/cielo/ws15.rb', line 34

def merchant=(value)
  @merchant = value
end

Instance Method Details

#authorization_request(transaction) ⇒ Transaction

Envia uma requisicao-autorizacao-tid para a Cielo

Parameters:

  • transaction (Transaction)

    A transação que será enviada na requisição

Returns:

  • (Transaction)

    A transação com o retorno da Cielo



143
144
145
146
147
148
149
# File 'lib/cielo/ws15.rb', line 143

def authorization_request(transaction)
  authorization_message = WS15Message::AuthorizationMessage.new

  response = send_request(authorization_message.serialize(transaction))

  return transaction
end

#cancellation_request(transaction, total = nil) ⇒ Transaction

Envia uma requisicao-cancelamento para a Cielo

Parameters:

  • transaction (Transaction)

    A transação que será enviada na requisição

  • total (Number) (defaults to: nil)

    O valor que será cancelado; se não informado, o cancelamento será total

Returns:

  • (Transaction)

    A transação com o retorno da Cielo



157
158
159
160
161
162
163
# File 'lib/cielo/ws15.rb', line 157

def cancellation_request(transaction, total = nil)
  cancellation_message = WS15Message::CancellationMessage.new

  response = send_request(cancellation_message.serialize(transaction, total))

  return cancellation_message.unserialize(response, transaction)
end

#capture_request(transaction, total = nil) ⇒ Transaction

Envia uma requisicao-captura para a Cielo

Parameters:

  • transaction (Transaction)

    A transação que será enviada na requisição

  • total (Number) (defaults to: nil)

    O valor que será capturado; se não informado, a captura será total

Returns:

  • (Transaction)

    A transação com o retorno da Cielo



171
172
173
174
175
176
177
# File 'lib/cielo/ws15.rb', line 171

def capture_request(transaction, total = nil)
   capture_message = WS15Message::CaptureMessage.new

   response = send_request(capture_message.serialize(transaction, total))

   return capture_message.unserialize(response, transaction)
end

#holder(token_or_number, expiration_year = nil, expiration_month = nil, indicator = nil, cvv = Holder::CVV_NOT_INFORMED) ⇒ Holder

Cria uma instância de Holder, que representa o portador de um cartão, definindo os dados do cartão ou apenas um token previamente gerado

Parameters:

  • token_or_number (String)

    token ou o número do cartão do cliente

  • expiration_year (String) (defaults to: nil)

    ano de expiração do cartão

  • expiration_month (String) (defaults to: nil)

    mês de expiração do cartão

  • indicator (Number) (defaults to: nil)

    indicador de visibilidade do código de segurança

  • cvv (String) (defaults to: Holder::CVV_NOT_INFORMED)

    Código de segurança do cartão

Returns:

  • (Holder)

    instância configurada com os dados informados



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/cielo/ws15.rb', line 61

def holder(
  token_or_number,
  expiration_year = nil,
  expiration_month = nil,
  indicator = nil,
  cvv = Holder::CVV_NOT_INFORMED)

  if expiration_year == nil
    return Holder.new(token_or_number)
  end

  return Holder.new(
    token_or_number,
    expiration_year,
    expiration_month,
    indicator,
    cvv
  )
end

#order(number, total, currency = 986, date_time = nil) ⇒ Order

Cria uma instância de Order, que representa um pedido, informando o número valor, moeda e data de criação.

Parameters:

  • number (String)

    Número do pedido na plataforma da loja

  • total (Number)

    Valor total do pedido em centavos

  • currency (Number) (defaults to: 986)

    Código ISO que representa a moeda; 986 para Real

  • date_time (String) (defaults to: nil)

    Data e hora do pedido na plataforma da loja

Returns:

  • (Order)

    instância de Order configurada com os dados informados



90
91
92
93
94
95
96
97
# File 'lib/cielo/ws15.rb', line 90

def order(
  number,
  total,
  currency = 986,
  date_time = nil)

  return Order.new(number, total, currency, date_time)
end

#payment_method(issuer, product = PaymentMethod::CREDITO_A_VISTA, installments = 1) ⇒ PaymentMethod

Cria uma instância de PaymentMethod, que representa a forma de pagamento, informando o banco emissor do cartão, produto Cielo e número de parcelas.

Parameters:

  • issuer (String)

    Banco emissor do cartão

  • product (String) (defaults to: PaymentMethod::CREDITO_A_VISTA)

    Produto Cielo que será utilizado

  • installments (Number) (defaults to: 1)

    Número de parcelas; 1 para transação à vista

Returns:

  • (PaymentMethod)

    instância de PaymentMethod configurada com os dados informados



107
108
109
110
111
112
113
# File 'lib/cielo/ws15.rb', line 107

def payment_method(
  issuer,
  product = PaymentMethod::CREDITO_A_VISTA,
  installments = 1)

  return PaymentMethod.new(issuer, product, installments)
end

#token_request(holder) ⇒ Token

Envia uma requisicao-token para a Cielo

Parameters:

  • holder (Holder)

    Dados do portador do cartão

Returns:

  • (Token)

    O token gerado para os dados do cartão



184
185
186
187
188
189
190
# File 'lib/cielo/ws15.rb', line 184

def token_request(holder)
   token_message = WS15Message::TokenMessage.new

   response = send_request(token_message.serialize(@merchant, holder))

   return token_message.unserialize(response)
end

#transaction(holder, order, payment_method, return_url, authorize, capture: true) ⇒ Transaction

Cria uma instância de Transaction, que representa uma transação, informando o portador do cartão, pedido, forma de pagamento, URL de retorno, método de autorização e forma de captura.

Parameters:

  • holder (Holder)

    Portador do cartão

  • order (Order)

    Pedido

  • payment_method (PaymentMethod)

    Forma de pagamento

  • return_url (String)

    URL de retorno

  • authorize (Number)

    Método de autorização

  • capture (Boolean) (defaults to: true)

    Se a transação deve ser capturada automaticamente

Returns:

  • (Transaction)

    instância de Transaction configurada com os dados informados



127
128
129
130
131
132
133
134
135
136
# File 'lib/cielo/ws15.rb', line 127

def transaction(
  holder,
  order,
  payment_method,
  return_url,
  authorize,
  capture: true)

  return Transaction.new(@merchant, holder, order, payment_method, return_url, authorize, capture:capture)
end

#transaction_request(transaction) ⇒ Transaction

Envia uma requisicao-transacao para a Cielo

Parameters:

  • transaction (Transaction)

    A transação que será enviada na requisição

Returns:

  • (Transaction)

    A transação com o retorno da Cielo



197
198
199
200
201
202
203
# File 'lib/cielo/ws15.rb', line 197

def transaction_request(transaction)
   transaction_message = WS15Message::TransactionMessage.new

   response = send_request(transaction_message.serialize(transaction))

   return transaction_message.unserialize(response, transaction)
end