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

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.



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

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



58
59
60
61
62
63
# File 'lib/transbank/sdk/webpay/transaccion_completa/mall_transaction.rb', line 58

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



37
38
39
40
41
42
# File 'lib/transbank/sdk/webpay/transaccion_completa/mall_transaction.rb', line 37

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



18
19
20
21
22
23
24
25
# File 'lib/transbank/sdk/webpay/transaccion_completa/mall_transaction.rb', line 18

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

#installments(token, details) ⇒ Object



27
28
29
30
31
32
33
34
35
# File 'lib/transbank/sdk/webpay/transaccion_completa/mall_transaction.rb', line 27

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



51
52
53
54
55
56
# File 'lib/transbank/sdk/webpay/transaccion_completa/mall_transaction.rb', line 51

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

#status(token) ⇒ Object



44
45
46
47
48
49
# File 'lib/transbank/sdk/webpay/transaccion_completa/mall_transaction.rb', line 44

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