Module: Transbank::Onepay::Utils::RequestBuilder
- Included in:
- Transaction
- Defined in:
- lib/transbank/sdk/utils/request_builder.rb
Instance Method Summary collapse
-
#commit_transaction(occ:, external_unique_number:, options: nil) ⇒ Object
Used internally by [Transaction]#commit.
-
#complete_options(options = {}) ⇒ Object
Fill options with default values.
-
#create_transaction(shopping_cart:, channel:, external_unique_number: nil, options: nil) ⇒ Object
Create a [Transaction] request.
-
#default_options ⇒ Hash
Return the default options values: api_key: Base::api_key app_key: Base::current_integration_type_app_key shared_secret: Base::shared_secret.
-
#refund_transaction(refund_amount:, occ:, external_unique_number:, authorization_code:, options: nil) ⇒ Object
Used internally by [Refund]#create This is given when you successfully #commit a [Transaction].
- #time_as_number ⇒ Object
Instance Method Details
#commit_transaction(occ:, external_unique_number:, options: nil) ⇒ Object
Used internally by [Transaction]#commit
39 40 41 42 43 44 45 46 |
# File 'lib/transbank/sdk/utils/request_builder.rb', line 39 def commit_transaction(occ:, external_unique_number:, options: nil) = () issued_at = Time.now.to_i request = TransactionCommitRequest.new(occ, external_unique_number, issued_at) request.() request.app_key = Base::current_integration_type_app_key request.sign(.fetch(:shared_secret)) end |
#complete_options(options = {}) ⇒ Object
Fill options with default values
75 76 77 78 |
# File 'lib/transbank/sdk/utils/request_builder.rb', line 75 def ( = {}) = {} if .nil? .merge() end |
#create_transaction(shopping_cart:, channel:, external_unique_number: nil, options: nil) ⇒ Object
Create a [Transaction] request. Used internally by [Transaction]#create he/she intends to purchase are on the [Channel] class
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/transbank/sdk/utils/request_builder.rb', line 12 def create_transaction(shopping_cart:, channel:, external_unique_number: nil, options: nil) channel = Base.default_channel if channel.nil? external_unique_number = time_as_number if external_unique_number.nil? = () issued_at = Time.now.to_i request = TransactionCreateRequest.new( external_unique_number: external_unique_number, total: shopping_cart.total, items_quantity: shopping_cart.items_quantity, issued_at: issued_at, items: shopping_cart.items, callback_url: Base.callback_url, channel: channel, app_scheme: Base.app_scheme, commerce_logo_url: [:commerce_logo_url], width_height: [:qr_width_height] ) request.() request.app_key = Base::current_integration_type_app_key request.sign(.fetch(:shared_secret)) end |
#default_options ⇒ Hash
Return the default options values: api_key: Base::api_key app_key: Base::current_integration_type_app_key shared_secret: Base::shared_secret
85 86 87 88 89 90 91 92 |
# File 'lib/transbank/sdk/utils/request_builder.rb', line 85 def { api_key: Base::api_key, shared_secret: Base::shared_secret, commerce_logo_url: Base::commerce_logo_url, qr_width_height: Base::qr_width_height } end |
#refund_transaction(refund_amount:, occ:, external_unique_number:, authorization_code:, options: nil) ⇒ Object
Used internally by [Refund]#create This is given when you successfully #commit a [Transaction]
55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/transbank/sdk/utils/request_builder.rb', line 55 def refund_transaction(refund_amount:, occ:, external_unique_number:, authorization_code:, options: nil) = () issued_at = Time.now.to_i request = RefundCreateRequest.new(nullify_amount: refund_amount, occ: occ, external_unique_number: external_unique_number, authorization_code: , issued_at: issued_at) request.() request.app_key = Base::current_integration_type_app_key request.sign(.fetch(:shared_secret)) end |
#time_as_number ⇒ Object
68 69 70 71 72 |
# File 'lib/transbank/sdk/utils/request_builder.rb', line 68 def time_as_number # Float#truncate(number_of_digits_to_leave) is from Ruby 2.4 onwards number, decimals = Time.now.to_f.to_s.split('.') (number + decimals[0..2]).to_i end |