Class: Transbank::TransaccionCompleta::Transaction
- Inherits:
-
Object
- Object
- Transbank::TransaccionCompleta::Transaction
- Extended by:
- Utils::NetHelper
- Defined in:
- lib/transbank/sdk/transaccion_completa/transaction.rb
Constant Summary collapse
- CREATE_TRANSACTION_ENDPOINT =
'rswebpaytransaction/api/webpay/v1.0/transactions'- TRANSACTION_INSTALLMENTS_ENDPOINT =
'rswebpaytransaction/api/webpay/v1.0/transactions/:token/installments'- COMMIT_TRANSACTION_ENDPOINT =
'rswebpaytransaction/api/webpay/v1.0/transactions/:token'- TRANSACTION_STATUS_ENDPOINT =
'rswebpaytransaction/api/webpay/v1.0/transactions/:token'- REFUND_TRANSACTION_ENDPOINT =
'rswebpaytransaction/api/webpay/v1.0/transactions/:token/refunds'- CAPTURE_TRANSACTION_ENDPOINT =
'rswebpaytransaction/api/webpay/v1.0/transactions/:token/capture'
Class Method Summary collapse
- .capture(token:, buy_order:, authorization_code:, capture_amount:, options: nil) ⇒ Object
- .commit(token:, id_query_installments:, deferred_period_index:, grace_period:, options: nil) ⇒ Object
- .create(buy_order:, session_id:, amount:, card_number:, cvv:, card_expiration_date:, options: nil) ⇒ Object
- .default_integration_params ⇒ Object
- .installments(token:, installments_number:, options: nil) ⇒ Object
- .refund(token:, amount:, options: nil) ⇒ Object
- .status(token:, options: nil) ⇒ Object
Methods included from Utils::NetHelper
http_delete, http_get, http_post, http_put, keys_to_camel_case, patpass_comercio_headers, snake_to_camel_case, webpay_headers
Class Method Details
.capture(token:, buy_order:, authorization_code:, capture_amount:, options: nil) ⇒ Object
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
# File 'lib/transbank/sdk/transaccion_completa/transaction.rb', line 112 def capture(token:, buy_order:, authorization_code:, capture_amount:, options: nil) api_key = &.api_key || default_integration_params[:api_key] commerce_code = &.commerce_code || default_integration_params[:commerce_code] integration_type = &.integration_type || default_integration_params[:integration_type] base_url = integration_type.nil? ? TransaccionCompleta::Base.integration_type[:TEST] : TransaccionCompleta::Base.integration_type_url(integration_type) body = { buy_order: buy_order, authorization_code: , capture_amount: capture_amount } url = base_url + CAPTURE_TRANSACTION_ENDPOINT.gsub(':token', token) headers = webpay_headers(commerce_code: commerce_code, api_key: api_key) resp = http_put(uri_string: url, body: body, headers: headers) body = JSON.parse(resp.body) return ::Transbank::TransaccionCompleta::TransactionCaptureResponse.new(body) if resp.is_a? Net::HTTPSuccess raise Errors::TransactionCaptureError.new(body['error_message'], resp.code) end |
.commit(token:, id_query_installments:, deferred_period_index:, grace_period:, options: nil) ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/transbank/sdk/transaccion_completa/transaction.rb', line 56 def commit(token:, id_query_installments:, deferred_period_index:, grace_period:, options: nil) api_key = &.api_key || default_integration_params[:api_key] commerce_code = &.commerce_code || default_integration_params[:commerce_code] integration_type = &.integration_type || default_integration_params[:integration_type] base_url = integration_type.nil? ? TransaccionCompleta::Base.integration_type[:TEST] : TransaccionCompleta::Base.integration_type_url(integration_type) url = base_url + COMMIT_TRANSACTION_ENDPOINT.gsub(':token', token) headers = webpay_headers(commerce_code: commerce_code, api_key: api_key) body = { id_query_installments: id_query_installments, deferred_period_index: deferred_period_index, grace_period: grace_period } resp = http_put(uri_string: url, body: body, headers: headers) body = JSON.parse(resp.body) return ::Transbank::TransaccionCompleta::TransactionCommitResponse.new(body) if resp.is_a? Net::HTTPSuccess raise Errors::TransactionCommitError.new(body['error_message'], resp.code) end |
.create(buy_order:, session_id:, amount:, card_number:, cvv:, card_expiration_date:, options: nil) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/transbank/sdk/transaccion_completa/transaction.rb', line 14 def create(buy_order:, session_id:, amount:, card_number:, cvv:, card_expiration_date:, options: nil) api_key = &.api_key || default_integration_params[:api_key] commerce_code = &.commerce_code || default_integration_params[:commerce_code] integration_type = &.integration_type || default_integration_params[:integration_type] base_url = integration_type.nil? ? TransaccionCompleta::Base.integration_type[:TEST] : TransaccionCompleta::Base.integration_type_url(integration_type) body = { buy_order: buy_order, session_id: session_id, amount: amount, card_number: card_number, cvv: cvv, card_expiration_date: card_expiration_date } url = base_url + CREATE_TRANSACTION_ENDPOINT headers = webpay_headers(commerce_code: commerce_code, api_key: api_key) resp = http_post(uri_string: url, body: body, headers: headers, camel_case_keys: false) body = JSON.parse(resp.body) return ::Transbank::TransaccionCompleta::TransactionCreateResponse.new(body) if resp.is_a? Net::HTTPSuccess raise Errors::TransactionCreateError.new(body['error_message'], resp.code) end |
.default_integration_params ⇒ Object
133 134 135 136 137 138 139 140 |
# File 'lib/transbank/sdk/transaccion_completa/transaction.rb', line 133 def default_integration_params { api_key: TransaccionCompleta::Base.api_key, commerce_code: TransaccionCompleta::Base.commerce_code, integration_type: TransaccionCompleta::Base.integration_type, base_url: TransaccionCompleta::Base.current_integration_type_url } end |
.installments(token:, installments_number:, options: nil) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/transbank/sdk/transaccion_completa/transaction.rb', line 36 def installments(token:, installments_number:, options: nil) api_key = &.api_key || default_integration_params[:api_key] commerce_code = &.commerce_code || default_integration_params[:commerce_code] integration_type = &.integration_type || default_integration_params[:integration_type] base_url = integration_type.nil? ? TransaccionCompleta::Base.integration_type[:TEST] : TransaccionCompleta::Base.integration_type_url(integration_type) url = base_url + TRANSACTION_INSTALLMENTS_ENDPOINT.gsub(':token', token) headers = webpay_headers(commerce_code: commerce_code, api_key: api_key) body = { installments_number: installments_number } resp = http_post(uri_string: url, body: body, headers: headers, camel_case_keys: false) body = JSON.parse(resp.body) if resp.is_a? Net::HTTPSuccess return ::Transbank::TransaccionCompleta::TransactionInstallmentsResponse.new(body) end raise Errors::TransactionInstallmentsError.new(body['error_message'], resp.code) end |
.refund(token:, amount:, options: nil) ⇒ Object
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
# File 'lib/transbank/sdk/transaccion_completa/transaction.rb', line 93 def refund(token:, amount:, options: nil) api_key = &.api_key || default_integration_params[:api_key] commerce_code = &.commerce_code || default_integration_params[:commerce_code] integration_type = &.integration_type || default_integration_params[:integration_type] base_url = integration_type.nil? ? TransaccionCompleta::Base.integration_type[:TEST] : TransaccionCompleta::Base.integration_type_url(integration_type) body = { amount: amount } url = base_url + REFUND_TRANSACTION_ENDPOINT.gsub(':token', token) headers = webpay_headers(commerce_code: commerce_code, api_key: api_key) resp = http_post(uri_string: url, body: body, headers: headers, camel_case_keys: false) body = JSON.parse(resp.body) return ::Transbank::TransaccionCompleta::TransactionRefundResponse.new(body) if resp.is_a? Net::HTTPSuccess raise Errors::TransactionRefundError.new(body['error_message'], resp.code) end |
.status(token:, options: nil) ⇒ Object
78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/transbank/sdk/transaccion_completa/transaction.rb', line 78 def status(token:, options: nil) api_key = &.api_key || default_integration_params[:api_key] commerce_code = &.commerce_code || default_integration_params[:commerce_code] integration_type = &.integration_type || default_integration_params[:integration_type] base_url = integration_type.nil? ? TransaccionCompleta::Base.integration_type[:TEST] : TransaccionCompleta::Base.integration_type_url(integration_type) url = base_url + TRANSACTION_STATUS_ENDPOINT.gsub(':token', token) headers = webpay_headers(commerce_code: commerce_code, api_key: api_key) resp = http_get(uri_string: url, headers: headers) body = JSON.parse(resp.body) return ::Transbank::TransaccionCompleta::TransactionStatusResponse.new(body) if resp.is_a? Net::HTTPSuccess raise Errors::TransactionStatusError.new(body['error_message'], resp.code) end |