Class: Transbank::Webpay::TransaccionCompleta::Transaction

Inherits:
Common::BaseTransaction show all
Defined in:
lib/transbank/sdk/webpay/transaccion_completa/transaction.rb

Constant Summary collapse

RESOURCES_URL =
::Transbank::Common::ApiConstants::WEBPAY_ENDPOINT
CREATE_ENDPOINT =
(RESOURCES_URL + '/transactions/').freeze
INSTALLMENTS_ENDPOINT =
(RESOURCES_URL + '/transactions/%{token}/installments').freeze
COMMIT_ENDPOINT =
(RESOURCES_URL + '/transactions/%{token}').freeze
STATUS_ENDPOINT =
(RESOURCES_URL + '/transactions/%{token}').freeze
REFUND_ENDPOINT =
(RESOURCES_URL + '/transactions/%{token}/refunds').freeze
CAPTURE_ENDPOINT =
(RESOURCES_URL + '/transactions/%{token}/capture').freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Transaction

Returns a new instance of Transaction.



14
15
16
# File 'lib/transbank/sdk/webpay/transaccion_completa/transaction.rb', line 14

def initialize(options)
  super
end

Class Method Details

.build_for_integration(commerce_code, api_key) ⇒ Object



22
23
24
25
26
27
28
29
30
# File 'lib/transbank/sdk/webpay/transaccion_completa/transaction.rb', line 22

def self.build_for_integration(commerce_code, api_key)
  options = Options.new(
    commerce_code,
    api_key,
    :integration
  )
  
  new(options)
end

.build_for_production(commerce_code, api_key) ⇒ Object



32
33
34
35
36
37
38
39
# File 'lib/transbank/sdk/webpay/transaccion_completa/transaction.rb', line 32

def self.build_for_production(commerce_code, api_key)
  options = Options.new(
    commerce_code,
    api_key,
    :production
  )
  new(options)
end

.new(options) ⇒ Object



18
19
20
# File 'lib/transbank/sdk/webpay/transaccion_completa/transaction.rb', line 18

def self.new(options)
  super(options)
end

Instance Method Details

#capture(token, buy_order, authorization_code, amount) ⇒ Object



84
85
86
87
88
89
# File 'lib/transbank/sdk/webpay/transaccion_completa/transaction.rb', line 84

def capture(token, buy_order, authorization_code, amount)
  request_service = ::Transbank::Shared::RequestService.new(
    @environment, format(CAPTURE_ENDPOINT, token: token), @commerce_code, @api_key, @timeout
  )
  request_service.put(buy_order: buy_order, authorization_code: authorization_code, capture_amount: amount)
end

#commit(token, id_query_installments, deferred_period_index, grace_period) ⇒ Object



63
64
65
66
67
68
# File 'lib/transbank/sdk/webpay/transaccion_completa/transaction.rb', line 63

def commit(token, id_query_installments, deferred_period_index, grace_period)
  request_service = ::Transbank::Shared::RequestService.new(
    @environment, format(COMMIT_ENDPOINT, token: token), @commerce_code, @api_key, @timeout
  )
  request_service.put({id_query_installments: id_query_installments, deferred_period_index: deferred_period_index, grace_period: grace_period})
end

#create(buy_order, session_id, amount, cvv, card_number, card_expiration_date) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/transbank/sdk/webpay/transaccion_completa/transaction.rb', line 41

def create(buy_order, session_id, amount, cvv, card_number, card_expiration_date)

  Transbank::Common::Validation.has_text_with_max_length(buy_order, Transbank::Common::ApiConstants::BUY_ORDER_LENGTH, "buy_order")
  Transbank::Common::Validation.has_text_with_max_length(session_id, Transbank::Common::ApiConstants::SESSION_ID_LENGTH, "session_id")
  Transbank::Common::Validation.has_text_with_max_length(card_number, Transbank::Common::ApiConstants::CARD_NUMBER_LENGTH, "card_number")
  Transbank::Common::Validation.has_text_with_max_length(card_expiration_date, Transbank::Common::ApiConstants::CARD_EXPIRATION_DATE_LENGTH, "card_expiration_date")

  request_service = ::Transbank::Shared::RequestService.new(
    @environment, CREATE_ENDPOINT, @commerce_code, @api_key, @timeout
  )
  request_service.post({
                         buy_order: buy_order, session_id: session_id, amount: amount, cvv: cvv, card_number: card_number, card_expiration_date: card_expiration_date
                       })
end

#installments(token, installments_number) ⇒ Object



56
57
58
59
60
61
# File 'lib/transbank/sdk/webpay/transaccion_completa/transaction.rb', line 56

def installments(token, installments_number)
  request_service = ::Transbank::Shared::RequestService.new(
    @environment, format(INSTALLMENTS_ENDPOINT, token: token), @commerce_code, @api_key, @timeout
  )
  request_service.post({installments_number: installments_number})
end

#refund(token, amount) ⇒ Object



77
78
79
80
81
82
# File 'lib/transbank/sdk/webpay/transaccion_completa/transaction.rb', line 77

def refund(token, amount)
  request_service = ::Transbank::Shared::RequestService.new(
    @environment, format(REFUND_ENDPOINT, token: token), @commerce_code, @api_key, @timeout
  )
  request_service.post(amount: amount)
end

#status(token) ⇒ Object



70
71
72
73
74
75
# File 'lib/transbank/sdk/webpay/transaccion_completa/transaction.rb', line 70

def status(token)
  request_service = ::Transbank::Shared::RequestService.new(
    @environment, format(STATUS_ENDPOINT, token: token), @commerce_code, @api_key, @timeout
  )
  request_service.get
end