Class: Transbank::Webpay::TransaccionCompleta::MallTransaction

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

Constant Summary collapse

DEFAULT_ENVIRONMENT =
:integration
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
INCREASE_AMOUNT_ENDPOINT =
(RESOURCES_URL + '/transactions/%{token}/amount').freeze
INCREASE_AUTHORIZATION_DATE_ENDPOINT =
(RESOURCES_URL + '/transactions/%{token}/authorization_date').freeze
REVERSE_PRE_AUTHORIZED_AMOUNT_ENDPOINT =
(RESOURCES_URL + '/transactions/%{token}/reverse/amount').freeze
DEFERRED_CAPTURE_HISTORY_ENDPOINT =
(RESOURCES_URL + '/transactions/%{token}/details').freeze

Instance Method Summary collapse

Constructor Details

#initialize(commerce_code = ::Transbank::Common::IntegrationCommerceCodes::TRANSACCION_COMPLETA_MALL, api_key = ::Transbank::Common::IntegrationApiKeys::WEBPAY, environment = DEFAULT_ENVIRONMENT) ⇒ MallTransaction

Returns a new instance of MallTransaction.



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

def initialize(commerce_code = ::Transbank::Common::IntegrationCommerceCodes::TRANSACCION_COMPLETA_MALL, api_key = ::Transbank::Common::IntegrationApiKeys::WEBPAY, environment = DEFAULT_ENVIRONMENT)
  super(commerce_code, api_key, environment)
end

Instance Method Details

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



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

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

#commit(token, details) ⇒ Object



41
42
43
44
45
46
# File 'lib/transbank/sdk/webpay/transaccion_completa/mall_transaction.rb', line 41

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

#create(buy_order, session_id, card_number, card_expiration_date, details, cvv = nil) ⇒ Object



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

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

#deferred_capture_history(token, child_commerce_code, child_buy_order) ⇒ Object



108
109
110
111
112
113
114
115
116
117
118
# File 'lib/transbank/sdk/webpay/transaccion_completa/mall_transaction.rb', line 108

def deferred_capture_history(token, child_commerce_code, child_buy_order)
  
  Transbank::Common::Validation.has_text_with_max_length(child_commerce_code, Transbank::Common::ApiConstants::COMMERCE_CODE_LENGTH, "child_commerce_code")
  Transbank::Common::Validation.has_text_with_max_length(token, Transbank::Common::ApiConstants::TOKEN_LENGTH, "token")
  Transbank::Common::Validation.has_text_with_max_length(child_buy_order, Transbank::Common::ApiConstants::BUY_ORDER_LENGTH, "child_buy_order")

  request_service = ::Transbank::Shared::RequestService.new(
    @environment, format(DEFERRED_CAPTURE_HISTORY_ENDPOINT, token: token), @commerce_code, @api_key
  )
  request_service.post(commerce_code: child_commerce_code, buy_order: child_buy_order)
end

#increase_amount(token, child_commerce_code, child_buy_order, authorization_code, amount) ⇒ Object



69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/transbank/sdk/webpay/transaccion_completa/mall_transaction.rb', line 69

def increase_amount(token, child_commerce_code, child_buy_order, authorization_code, amount)
  
  Transbank::Common::Validation.has_text_with_max_length(child_commerce_code, Transbank::Common::ApiConstants::COMMERCE_CODE_LENGTH, "child_commerce_code")
  Transbank::Common::Validation.has_text_with_max_length(token, Transbank::Common::ApiConstants::TOKEN_LENGTH, "token")
  Transbank::Common::Validation.has_text_with_max_length(child_buy_order, Transbank::Common::ApiConstants::BUY_ORDER_LENGTH, "child_buy_order")
  Transbank::Common::Validation.has_text_with_max_length(authorization_code, Transbank::Common::ApiConstants::AUTHORIZATION_CODE_LENGTH, "authorization_code")

  request_service = ::Transbank::Shared::RequestService.new(
    @environment, format(INCREASE_AMOUNT_ENDPOINT, token: token), @commerce_code, @api_key
  )
  request_service.put(commerce_code: child_commerce_code, buy_order: child_buy_order, authorization_code: authorization_code, amount: amount)
end

#increase_authorization_date(token, child_commerce_code, child_buy_order, authorization_code) ⇒ Object



82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/transbank/sdk/webpay/transaccion_completa/mall_transaction.rb', line 82

def increase_authorization_date(token, child_commerce_code, child_buy_order, authorization_code)
  
  Transbank::Common::Validation.has_text_with_max_length(child_commerce_code, Transbank::Common::ApiConstants::COMMERCE_CODE_LENGTH, "child_commerce_code")
  Transbank::Common::Validation.has_text_with_max_length(token, Transbank::Common::ApiConstants::TOKEN_LENGTH, "token")
  Transbank::Common::Validation.has_text_with_max_length(child_buy_order, Transbank::Common::ApiConstants::BUY_ORDER_LENGTH, "child_buy_order")
  Transbank::Common::Validation.has_text_with_max_length(authorization_code, Transbank::Common::ApiConstants::AUTHORIZATION_CODE_LENGTH, "authorization_code")

  request_service = ::Transbank::Shared::RequestService.new(
    @environment, format(INCREASE_AUTHORIZATION_DATE_ENDPOINT, token: token), @commerce_code, @api_key
  )
  request_service.put(commerce_code: child_commerce_code, buy_order: child_buy_order, authorization_code: authorization_code)
end

#installments(token, details) ⇒ Object



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

def installments(token, details)
  request_service = ::Transbank::Shared::RequestService.new(
    @environment, format(INSTALLMENTS_ENDPOINT, token: token), @commerce_code, @api_key
  )
  details.map { 
    |detail| 
    request_service.post({commerce_code: detail['commerce_code'], buy_order: detail['buy_order'], installments_number: detail['installments_number']})
  }
end

#refund(token, buy_order, commerce_code_child, amount) ⇒ Object



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

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

#reverse_pre_authorized_amount(token, child_commerce_code, child_buy_order, authorization_code, amount) ⇒ Object



95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/transbank/sdk/webpay/transaccion_completa/mall_transaction.rb', line 95

def reverse_pre_authorized_amount(token, child_commerce_code, child_buy_order, authorization_code, amount)
  
  Transbank::Common::Validation.has_text_with_max_length(child_commerce_code, Transbank::Common::ApiConstants::COMMERCE_CODE_LENGTH, "child_commerce_code")
  Transbank::Common::Validation.has_text_with_max_length(token, Transbank::Common::ApiConstants::TOKEN_LENGTH, "token")
  Transbank::Common::Validation.has_text_with_max_length(child_buy_order, Transbank::Common::ApiConstants::BUY_ORDER_LENGTH, "child_buy_order")
  Transbank::Common::Validation.has_text_with_max_length(authorization_code, Transbank::Common::ApiConstants::AUTHORIZATION_CODE_LENGTH, "authorization_code")

  request_service = ::Transbank::Shared::RequestService.new(
    @environment, format(REVERSE_PRE_AUTHORIZED_AMOUNT_ENDPOINT, token: token), @commerce_code, @api_key
  )
  request_service.put(commerce_code: child_commerce_code, buy_order: child_buy_order, authorization_code: authorization_code, amount: amount)
end

#status(token) ⇒ Object



48
49
50
51
52
53
# File 'lib/transbank/sdk/webpay/transaccion_completa/mall_transaction.rb', line 48

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