transbank-sdk 1.5.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (155) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +23 -0
  3. data/README.md +0 -2
  4. data/lib/transbank/sdk/common/api_constants.rb +23 -0
  5. data/lib/transbank/sdk/common/base_transaction.rb +18 -0
  6. data/lib/transbank/sdk/common/integration_api_keys.rb +9 -0
  7. data/lib/transbank/sdk/common/integration_commerce_codes.rb +68 -0
  8. data/lib/transbank/sdk/common/validation.rb +19 -0
  9. data/lib/transbank/sdk/patpass/patpass_by_webpay/transaction.rb +33 -85
  10. data/lib/transbank/sdk/patpass/patpass_comercio/inscription.rb +48 -71
  11. data/lib/transbank/sdk/shared/request_service.rb +93 -0
  12. data/lib/transbank/sdk/shared/transbank_error.rb +5 -0
  13. data/lib/transbank/sdk/version.rb +1 -1
  14. data/lib/transbank/sdk/webpay/oneclick/mall_inscription.rb +52 -0
  15. data/lib/transbank/sdk/webpay/oneclick/mall_transaction.rb +66 -0
  16. data/lib/transbank/sdk/webpay/transaccion_completa/mall_transaction.rb +67 -0
  17. data/lib/transbank/sdk/webpay/transaccion_completa/transaction.rb +70 -0
  18. data/lib/transbank/sdk/webpay/webpay_plus/mall_transaction.rb +79 -0
  19. data/lib/transbank/sdk/webpay/webpay_plus/transaction.rb +59 -73
  20. data/lib/transbank/sdk/webpay/webpay_plus_modal/transaction.rb +62 -0
  21. data/lib/transbank/sdk.rb +16 -16
  22. metadata +15 -135
  23. data/lib/transbank/sdk/oneclick/base.rb +0 -64
  24. data/lib/transbank/sdk/oneclick/errors/oneclick_error.rb +0 -16
  25. data/lib/transbank/sdk/oneclick/inscription/errors/mall_inscription_delete_error.rb +0 -16
  26. data/lib/transbank/sdk/oneclick/inscription/errors/mall_inscription_finish_error.rb +0 -16
  27. data/lib/transbank/sdk/oneclick/inscription/errors/mall_inscription_start_error.rb +0 -16
  28. data/lib/transbank/sdk/oneclick/inscription/errors/oneclick_mall_inscription_errors.rb +0 -3
  29. data/lib/transbank/sdk/oneclick/inscription/inscription.rb +0 -3
  30. data/lib/transbank/sdk/oneclick/inscription/responses/mall_inscription_delete_response.rb +0 -18
  31. data/lib/transbank/sdk/oneclick/inscription/responses/mall_inscription_finish_response.rb +0 -15
  32. data/lib/transbank/sdk/oneclick/inscription/responses/mall_inscription_start_response.rb +0 -14
  33. data/lib/transbank/sdk/oneclick/inscription/responses/oneclick_mall_inscription_responses.rb +0 -3
  34. data/lib/transbank/sdk/oneclick/mall/errors/mall_transaction_authorize_error.rb +0 -16
  35. data/lib/transbank/sdk/oneclick/mall/errors/mall_transaction_refund_error.rb +0 -16
  36. data/lib/transbank/sdk/oneclick/mall/errors/mall_transaction_status_error.rb +0 -16
  37. data/lib/transbank/sdk/oneclick/mall/errors/oneclick_mall_errors.rb +0 -4
  38. data/lib/transbank/sdk/oneclick/mall/mall_inscription.rb +0 -73
  39. data/lib/transbank/sdk/oneclick/mall/mall_transaction.rb +0 -97
  40. data/lib/transbank/sdk/oneclick/mall/oneclick_mall.rb +0 -4
  41. data/lib/transbank/sdk/oneclick/mall/responses/mall_transaction_authorize_response.rb +0 -16
  42. data/lib/transbank/sdk/oneclick/mall/responses/mall_transaction_refund_response.rb +0 -16
  43. data/lib/transbank/sdk/oneclick/mall/responses/mall_transaction_status_response.rb +0 -15
  44. data/lib/transbank/sdk/oneclick/mall/responses/oneclick_mall_responses.rb +0 -4
  45. data/lib/transbank/sdk/oneclick/mall_deferred/errors/mall_deferred_transaction_capture_error.rb +0 -16
  46. data/lib/transbank/sdk/oneclick/mall_deferred/mall_deferred_inscription.rb +0 -20
  47. data/lib/transbank/sdk/oneclick/mall_deferred/mall_deferred_transaction.rb +0 -42
  48. data/lib/transbank/sdk/oneclick/mall_deferred/responses/mall_deferred_transaction_capture_response.rb +0 -16
  49. data/lib/transbank/sdk/oneclick/oneclick.rb +0 -12
  50. data/lib/transbank/sdk/onepay/base.rb +0 -125
  51. data/lib/transbank/sdk/onepay/errors/errors.rb +0 -17
  52. data/lib/transbank/sdk/onepay/errors/integration_type_error.rb +0 -8
  53. data/lib/transbank/sdk/onepay/errors/invalid_options_error.rb +0 -8
  54. data/lib/transbank/sdk/onepay/errors/item_error.rb +0 -8
  55. data/lib/transbank/sdk/onepay/errors/refund_create_error.rb +0 -8
  56. data/lib/transbank/sdk/onepay/errors/response_error.rb +0 -8
  57. data/lib/transbank/sdk/onepay/errors/shopping_cart_error.rb +0 -8
  58. data/lib/transbank/sdk/onepay/errors/signature_error.rb +0 -8
  59. data/lib/transbank/sdk/onepay/errors/transaction_commit_error.rb +0 -8
  60. data/lib/transbank/sdk/onepay/errors/transaction_create_error.rb +0 -8
  61. data/lib/transbank/sdk/onepay/errors/transbank_error.rb +0 -9
  62. data/lib/transbank/sdk/onepay/models/channels.rb +0 -15
  63. data/lib/transbank/sdk/onepay/models/item.rb +0 -103
  64. data/lib/transbank/sdk/onepay/models/models.rb +0 -10
  65. data/lib/transbank/sdk/onepay/models/refund.rb +0 -50
  66. data/lib/transbank/sdk/onepay/models/shopping_cart.rb +0 -65
  67. data/lib/transbank/sdk/onepay/models/transaction.rb +0 -143
  68. data/lib/transbank/sdk/onepay/requests/refund_create_request.rb +0 -45
  69. data/lib/transbank/sdk/onepay/requests/request.rb +0 -18
  70. data/lib/transbank/sdk/onepay/requests/requests.rb +0 -9
  71. data/lib/transbank/sdk/onepay/requests/transaction_commit_request.rb +0 -48
  72. data/lib/transbank/sdk/onepay/requests/transaction_create_request.rb +0 -85
  73. data/lib/transbank/sdk/onepay/responses/refund_create_response.rb +0 -24
  74. data/lib/transbank/sdk/onepay/responses/response.rb +0 -18
  75. data/lib/transbank/sdk/onepay/responses/responses.rb +0 -9
  76. data/lib/transbank/sdk/onepay/responses/transaction_commit_response.rb +0 -39
  77. data/lib/transbank/sdk/onepay/responses/transaction_create_response.rb +0 -32
  78. data/lib/transbank/sdk/patpass/errors/integration_type_error.rb +0 -8
  79. data/lib/transbank/sdk/patpass/errors/patpass_error.rb +0 -15
  80. data/lib/transbank/sdk/patpass/patpass_by_webpay/base.rb +0 -47
  81. data/lib/transbank/sdk/patpass/patpass_by_webpay/errors/patpass_by_webpay_errors.rb +0 -12
  82. data/lib/transbank/sdk/patpass/patpass_by_webpay/errors/transaction_commit_error.rb +0 -15
  83. data/lib/transbank/sdk/patpass/patpass_by_webpay/errors/transaction_create_error.rb +0 -15
  84. data/lib/transbank/sdk/patpass/patpass_by_webpay/errors/transaction_status_error.rb +0 -15
  85. data/lib/transbank/sdk/patpass/patpass_by_webpay/options.rb +0 -9
  86. data/lib/transbank/sdk/patpass/patpass_by_webpay/patpass_by_webpay.rb +0 -16
  87. data/lib/transbank/sdk/patpass/patpass_by_webpay/responses/patpass_by_webpay_responses.rb +0 -3
  88. data/lib/transbank/sdk/patpass/patpass_by_webpay/responses/transaction_commit_response.rb +0 -20
  89. data/lib/transbank/sdk/patpass/patpass_by_webpay/responses/transaction_create_response.rb +0 -15
  90. data/lib/transbank/sdk/patpass/patpass_by_webpay/responses/transaction_status_response.rb +0 -21
  91. data/lib/transbank/sdk/patpass/patpass_comercio/base.rb +0 -47
  92. data/lib/transbank/sdk/patpass/patpass_comercio/errors/inscription_start_error.rb +0 -15
  93. data/lib/transbank/sdk/patpass/patpass_comercio/errors/inscription_status_error.rb +0 -15
  94. data/lib/transbank/sdk/patpass/patpass_comercio/errors/patpass_comercio_errors.rb +0 -2
  95. data/lib/transbank/sdk/patpass/patpass_comercio/options.rb +0 -9
  96. data/lib/transbank/sdk/patpass/patpass_comercio/patpass_comercio.rb +0 -5
  97. data/lib/transbank/sdk/patpass/patpass_comercio/responses/inscription_start_response.rb +0 -13
  98. data/lib/transbank/sdk/patpass/patpass_comercio/responses/inscription_status_response.rb +0 -13
  99. data/lib/transbank/sdk/patpass/patpass_comercio/responses/patpass_comercio_responses.rb +0 -2
  100. data/lib/transbank/sdk/transaccion_completa/base.rb +0 -51
  101. data/lib/transbank/sdk/transaccion_completa/errors/transaccion_completa_error.rb +0 -16
  102. data/lib/transbank/sdk/transaccion_completa/errors/transaccion_completa_errors.rb +0 -7
  103. data/lib/transbank/sdk/transaccion_completa/errors/transaction_capture_error.rb +0 -14
  104. data/lib/transbank/sdk/transaccion_completa/errors/transaction_commit_error.rb +0 -14
  105. data/lib/transbank/sdk/transaccion_completa/errors/transaction_create_error.rb +0 -14
  106. data/lib/transbank/sdk/transaccion_completa/errors/transaction_installments_error.rb +0 -14
  107. data/lib/transbank/sdk/transaccion_completa/errors/transaction_refund_error.rb +0 -14
  108. data/lib/transbank/sdk/transaccion_completa/errors/transaction_status_error.rb +0 -14
  109. data/lib/transbank/sdk/transaccion_completa/mall/mall_transaction.rb +0 -197
  110. data/lib/transbank/sdk/transaccion_completa/mall/responses/mall_transaction_capture_response.rb +0 -12
  111. data/lib/transbank/sdk/transaccion_completa/mall/responses/mall_transaction_commit_response.rb +0 -15
  112. data/lib/transbank/sdk/transaccion_completa/mall/responses/mall_transaction_installments_response.rb +0 -11
  113. data/lib/transbank/sdk/transaccion_completa/mall/responses/mall_transaction_responses.rb +0 -4
  114. data/lib/transbank/sdk/transaccion_completa/mall/responses/mall_transaction_status_response.rb +0 -14
  115. data/lib/transbank/sdk/transaccion_completa/options.rb +0 -7
  116. data/lib/transbank/sdk/transaccion_completa/responses/transaccion_completa_responses.rb +0 -6
  117. data/lib/transbank/sdk/transaccion_completa/responses/transaction_capture_response.rb +0 -12
  118. data/lib/transbank/sdk/transaccion_completa/responses/transaction_commit_response.rb +0 -16
  119. data/lib/transbank/sdk/transaccion_completa/responses/transaction_create_response.rb +0 -10
  120. data/lib/transbank/sdk/transaccion_completa/responses/transaction_installments_response.rb +0 -13
  121. data/lib/transbank/sdk/transaccion_completa/responses/transaction_refund_response.rb +0 -14
  122. data/lib/transbank/sdk/transaccion_completa/responses/transaction_status_response.rb +0 -16
  123. data/lib/transbank/sdk/transaccion_completa/transaccion_completa.rb +0 -7
  124. data/lib/transbank/sdk/transaccion_completa/transaction.rb +0 -144
  125. data/lib/transbank/sdk/transbank_error.rb +0 -6
  126. data/lib/transbank/sdk/utils/json_utils.rb +0 -75
  127. data/lib/transbank/sdk/utils/net_helper.rb +0 -82
  128. data/lib/transbank/sdk/utils/request_builder.rb +0 -96
  129. data/lib/transbank/sdk/utils/signature_utils.rb +0 -49
  130. data/lib/transbank/sdk/utils/utils.rb +0 -9
  131. data/lib/transbank/sdk/webpay/errors/integration_type_error.rb +0 -8
  132. data/lib/transbank/sdk/webpay/errors/webpay_error.rb +0 -14
  133. data/lib/transbank/sdk/webpay/webpay_plus/base.rb +0 -74
  134. data/lib/transbank/sdk/webpay/webpay_plus/deferred/deferred_transaction.rb +0 -108
  135. data/lib/transbank/sdk/webpay/webpay_plus/deferred/errors/transaction_capture_error.rb +0 -16
  136. data/lib/transbank/sdk/webpay/webpay_plus/deferred/errors/webpay_plus_deferred_errors.rb +0 -1
  137. data/lib/transbank/sdk/webpay/webpay_plus/deferred/responses/transaction_capture_response.rb +0 -22
  138. data/lib/transbank/sdk/webpay/webpay_plus/deferred/responses/webpay_plus_deferred_responses.rb +0 -1
  139. data/lib/transbank/sdk/webpay/webpay_plus/errors/transaction_commit_error.rb +0 -17
  140. data/lib/transbank/sdk/webpay/webpay_plus/errors/transaction_create_error.rb +0 -16
  141. data/lib/transbank/sdk/webpay/webpay_plus/errors/transaction_refund_error.rb +0 -16
  142. data/lib/transbank/sdk/webpay/webpay_plus/errors/transaction_status_error.rb +0 -16
  143. data/lib/transbank/sdk/webpay/webpay_plus/errors/webpay_plus_errors.rb +0 -13
  144. data/lib/transbank/sdk/webpay/webpay_plus/mall/mall_transaction.rb +0 -88
  145. data/lib/transbank/sdk/webpay/webpay_plus/mall/responses/mall_transaction_commit_response.rb +0 -23
  146. data/lib/transbank/sdk/webpay/webpay_plus/mall/responses/mall_transaction_status_response.rb +0 -21
  147. data/lib/transbank/sdk/webpay/webpay_plus/mall/responses/webpay_plus_mall_responses.rb +0 -2
  148. data/lib/transbank/sdk/webpay/webpay_plus/mall_deferred/mall_deferred_transaction.rb +0 -109
  149. data/lib/transbank/sdk/webpay/webpay_plus/options.rb +0 -9
  150. data/lib/transbank/sdk/webpay/webpay_plus/responses/transaction_commit_response.rb +0 -20
  151. data/lib/transbank/sdk/webpay/webpay_plus/responses/transaction_create_response.rb +0 -15
  152. data/lib/transbank/sdk/webpay/webpay_plus/responses/transaction_refund_response.rb +0 -19
  153. data/lib/transbank/sdk/webpay/webpay_plus/responses/transaction_status_response.rb +0 -21
  154. data/lib/transbank/sdk/webpay/webpay_plus/responses/webpay_plus_responses.rb +0 -4
  155. data/lib/transbank/sdk/webpay/webpay_plus/webpay_plus.rb +0 -24
@@ -1,15 +0,0 @@
1
- module Transbank
2
- module Webpay
3
- module Oneclick
4
- class MallTransactionStatusResponse
5
- FIELDS = [:buy_order, :session_id, :card_detail, :expiration_date,
6
- :accounting_date, :transaction_date, :details]
7
- attr_accessor *FIELDS
8
-
9
- def initialize(json)
10
- FIELDS.each {|field| send("#{field}=", json["#{field}"]) }
11
- end
12
- end
13
- end
14
- end
15
- end
@@ -1,4 +0,0 @@
1
- require 'transbank/sdk/oneclick/mall/responses/mall_transaction_authorize_response'
2
- require 'transbank/sdk/oneclick/mall/responses/mall_transaction_status_response'
3
- require 'transbank/sdk/oneclick/mall/responses/mall_transaction_refund_response'
4
- require 'transbank/sdk/oneclick/mall_deferred/responses/mall_deferred_transaction_capture_response'
@@ -1,16 +0,0 @@
1
- module Transbank
2
- module Webpay
3
- module Oneclick
4
- module Errors
5
- class MallDeferredTransactionCaptureError < OneclickError
6
- attr_accessor :code, :message
7
- def initialize(message, code)
8
- @code = code
9
- @message = message
10
- super(message, code)
11
- end
12
- end
13
- end
14
- end
15
- end
16
- end
@@ -1,20 +0,0 @@
1
- module Transbank
2
- module Webpay
3
- module Oneclick
4
- class MallDeferredInscription < Transbank::Webpay::Oneclick::MallInscription
5
- extend Transbank::Utils::NetHelper
6
-
7
- class << self
8
- def default_integration_params
9
- {
10
- api_key: Oneclick::Base.api_key,
11
- commerce_code: Oneclick::Base.commerce_code,
12
- integration_type: Oneclick::Base::integration_type,
13
- base_url: Oneclick::Base::current_integration_type_url
14
- }
15
- end
16
- end
17
- end
18
- end
19
- end
20
- end
@@ -1,42 +0,0 @@
1
- module Transbank
2
- module Webpay
3
- module Oneclick
4
- class MallDeferredTransaction < Transbank::Webpay::Oneclick::MallTransaction
5
- extend Transbank::Utils::NetHelper
6
- TRANSACTION_CAPTURE_ENDPOINT = 'rswebpaytransaction/api/oneclick/v1.0/transactions/capture'.freeze
7
-
8
- class << self
9
-
10
- def capture(child_commerce_code:, child_buy_order:, authorization_code:, amount:, options: nil)
11
- api_key = options&.api_key || default_integration_params[:api_key]
12
- commerce_code = options&.commerce_code || default_integration_params[:commerce_code]
13
- integration_type = options&.integration_type || default_integration_params[:integration_type]
14
- base_url = integration_type.nil? ? Oneclick::Base::integration_type[:TEST] : Oneclick::Base.integration_type_url(integration_type)
15
-
16
- url = base_url + TRANSACTION_CAPTURE_ENDPOINT
17
- headers = webpay_headers(commerce_code: commerce_code, api_key: api_key)
18
- body = {
19
- commerce_code: child_commerce_code,
20
- buy_order: child_buy_order,
21
- authorization_code: authorization_code,
22
- capture_amount: amount
23
- }
24
- resp = http_put(uri_string: url, headers: headers, body: body)
25
- body = JSON.parse(resp.body)
26
- return ::Transbank::Webpay::Oneclick::MallDeferredTransactionCaptureResponse.new(body) if resp.kind_of? Net::HTTPSuccess
27
- raise Oneclick::Errors::MallDeferredTransactionCaptureError.new(body['error_message'], resp.code)
28
- end
29
-
30
- def default_integration_params
31
- {
32
- api_key: Oneclick::Base.api_key,
33
- commerce_code: Oneclick::Base.commerce_code,
34
- integration_type: Oneclick::Base::integration_type,
35
- base_url: Oneclick::Base::current_integration_type_url
36
- }
37
- end
38
- end
39
- end
40
- end
41
- end
42
- end
@@ -1,16 +0,0 @@
1
- module Transbank
2
- module Webpay
3
- module Oneclick
4
- class MallDeferredTransactionCaptureResponse
5
-
6
- FIELDS = %i[authorization_code authorization_date captured_amount response_code]
7
- attr_accessor *FIELDS
8
-
9
- def initialize(json)
10
- FIELDS.each {|field| send("#{field}=", json["#{field}"]) }
11
- end
12
- end
13
- end
14
- end
15
- end
16
-
@@ -1,12 +0,0 @@
1
- require 'transbank/sdk/oneclick/base'
2
- require 'transbank/sdk/oneclick/errors/oneclick_error'
3
- require 'transbank/sdk/oneclick/inscription/inscription'
4
- require 'transbank/sdk/oneclick/mall/oneclick_mall'
5
- require 'transbank/sdk/oneclick/mall_deferred/mall_deferred_transaction'
6
- require 'transbank/sdk/oneclick/mall_deferred/mall_deferred_inscription'
7
-
8
- module Transbank
9
- module Webpay
10
- module Oneclick; end
11
- end
12
- end
@@ -1,125 +0,0 @@
1
- module Transbank
2
- module Onepay
3
- class Base
4
- # The base class for Transbank Onepay
5
- DEFAULT_CALLBACK = "http://no.callback.has/been.set".freeze
6
- DEFAULT_API_KEY = 'dKVhq1WGt_XapIYirTXNyUKoWTDFfxaEV63-O5jcsdw'.freeze
7
- DEFAULT_SHARED_SECRET = '?XW#WOLG##FBAGEAYSNQ5APD#JF@$AYZ'.freeze
8
-
9
- @app_keys = {TEST: '1a0c0639-bd2f-4846-8d26-81f43187e797',
10
- LIVE: '2B571C49-C1B6-4AD1-9806-592AC68023B7',
11
- MOCK: '04533c31-fe7e-43ed-bbc4-1c8ab1538afp'}.freeze
12
- @integration_types = {TEST: 'https://onepay.ionix.cl'.freeze,
13
- LIVE: 'https://www.onepay.cl'.freeze,
14
- MOCK: 'https://transbank-onepay-ewallet-mock.herokuapp.com'.freeze}.freeze
15
- @callback_url = self::DEFAULT_CALLBACK
16
- @api_key = ENV['ONEPAY_API_KEY'].nil? ? DEFAULT_API_KEY : ENV['ONEPAY_API_KEY']
17
- @shared_secret = ENV['ONEPAY_SHARED_SECRET'].nil? ? DEFAULT_SHARED_SECRET : ENV['ONEPAY_SHARED_SECRET']
18
-
19
- @integration_type = :TEST
20
- @app_scheme = nil
21
- @default_channel = Transbank::Onepay::Channel::WEB
22
-
23
- class << self
24
- # Contains all valid integration types
25
- # @return [Hash<String, String>]
26
- attr_reader :integration_types
27
-
28
- # Your Api key, given by Transbank
29
- # @return [String]
30
- attr_writer :api_key
31
-
32
- # Your callback URL, used to resume the payment process after validating with
33
- # Transbank when paying on Channel::MOBILE
34
- # @param [String]
35
- # @return [String]
36
- attr_accessor :callback_url
37
-
38
- # Your shared secret, given by Transbank
39
- # @param [String]
40
- # @return [String]
41
- attr_writer :shared_secret
42
-
43
- # The current integration type
44
- # @param [String, Symbol]
45
- # @return [Symbol]
46
- attr_reader :integration_type
47
-
48
- # The URI for the app (eg the Android Intent that starts the app/the iOS
49
- # equivalent)
50
- # @param [String]
51
- # @return [String]
52
- attr_writer :app_scheme
53
-
54
- # The default channel. Value must be in Channel.values
55
- # @return [String] One of the values from Channel.values
56
- attr_reader :default_channel
57
-
58
- # The width and height in pixels for the returned QR.
59
- # @param [Integer]
60
- # @return [Integer]
61
- attr_accessor :qr_width_height
62
-
63
- # The url of the commerce logo to be displayed in the Onepay mobile app.
64
- # @param [String]
65
- # @return [String]
66
- attr_accessor :commerce_logo_url
67
-
68
- # @return [String] the URL that is used by the current integration type
69
- def current_integration_type_url
70
- @integration_types[@integration_type]
71
- end
72
-
73
- # @return [String] the app key used by the current integration type
74
- def current_integration_type_app_key
75
- @app_keys[@integration_type]
76
- end
77
-
78
- # Sets the current integration type
79
- # @param type [String] Type of integration to be set. Must be included one
80
- # of the keys of self.integration_types
81
- # @raise [IntegrationTypeError] if the given type is not valid
82
- def integration_type=(type)
83
- return @integration_type = type.to_sym unless @integration_types[type.to_sym].nil?
84
- valid_values = @integration_types.keys.join(', ')
85
- raise Transbank::Onepay::Errors::IntegrationTypeError, "Invalid integration type, valid values are #{valid_values}"
86
- end
87
-
88
- # Returns the app_scheme
89
- # @return [String] the app scheme, either the one set on @app_scheme or,
90
- # failing that, the value of ENV['ONEPAY_APP_SCHEME'] (your env variable)
91
- def app_scheme
92
- return ENV['ONEPAY_APP_SCHEME'] unless @app_scheme
93
- @app_scheme
94
- end
95
-
96
- def api_key
97
- return ENV['ONEPAY_API_KEY'] if @api_key.nil?
98
- @api_key
99
- end
100
-
101
- # Returns the 'ONEPAY_API_KEY' env variable, or, if ONEPAY_API_KEY
102
- # doesn't exist, returns a default api key
103
- # @return [String] ENV['ONEPAY_API_KEY] or DEFAULT_API_KEY
104
- def default_api_key
105
- env_api_key = ENV['ONEPAY_API_KEY']
106
- env_api_key.nil? ? DEFAULT_API_KEY : env_api_key
107
- end
108
-
109
- def shared_secret
110
- return ENV['ONEPAY_SHARED_SECRET'] if @shared_secret.nil?
111
- @shared_secret
112
- end
113
-
114
- # Returns the 'ONEPAY_SHARED_SECRET' env variable, or, if ONEPAY_SHARED_SECRET
115
- # doesn't exist, returns a default shared secret
116
- # @return [String] ENV['ONEPAY_SHARED_SECRET'] or DEFAULT_SHARED_SECRET
117
- def default_shared_secret
118
- env_shared_secret = ENV['ONEPAY_SHARED_SECRET']
119
- env_shared_secret.nil? ? DEFAULT_SHARED_SECRET : env_shared_secret
120
- end
121
- end
122
-
123
- end
124
- end
125
- end
@@ -1,17 +0,0 @@
1
- require 'transbank/sdk/onepay/errors/transbank_error'
2
- require 'transbank/sdk/onepay/errors/integration_type_error'
3
- require 'transbank/sdk/onepay/errors/invalid_options_error'
4
- require 'transbank/sdk/onepay/errors/item_error'
5
- require 'transbank/sdk/onepay/errors/refund_create_error'
6
- require 'transbank/sdk/onepay/errors/response_error'
7
- require 'transbank/sdk/onepay/errors/shopping_cart_error'
8
- require 'transbank/sdk/onepay/errors/signature_error'
9
- require 'transbank/sdk/onepay/errors/transaction_commit_error'
10
- require 'transbank/sdk/onepay/errors/transaction_create_error'
11
-
12
- module Transbank
13
- module Onepay
14
- module Errors
15
- end
16
- end
17
- end
@@ -1,8 +0,0 @@
1
- module Transbank
2
- module Onepay
3
- module Errors
4
- class IntegrationTypeError < TransbankError
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Transbank
2
- module Onepay
3
- module Errors
4
- class InvalidOptionsError < TransbankError
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Transbank
2
- module Onepay
3
- module Errors
4
- class ItemError < TransbankError
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Transbank
2
- module Onepay
3
- module Errors
4
- class RefundCreateError < TransbankError
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Transbank
2
- module Onepay
3
- module Errors
4
- class ResponseError < TransbankError
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Transbank
2
- module Onepay
3
- module Errors
4
- class ShoppingCartError < TransbankError
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Transbank
2
- module Onepay
3
- module Errors
4
- class SignatureError < TransbankError
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Transbank
2
- module Onepay
3
- module Errors
4
- class TransactionCommitError < TransbankError
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Transbank
2
- module Onepay
3
- module Errors
4
- class TransactionCreateError < TransbankError
5
- end
6
- end
7
- end
8
- end
@@ -1,9 +0,0 @@
1
- module Transbank
2
- module Onepay
3
- module Errors
4
- class TransbankError < StandardError
5
- end
6
- end
7
- end
8
- end
9
-
@@ -1,15 +0,0 @@
1
- module Transbank
2
- module Onepay
3
- class Channel
4
- ## Contains static values for all possible channel values
5
-
6
- WEB = 'WEB'.freeze
7
- MOBILE = 'MOBILE'.freeze
8
- APP = 'APP'.freeze
9
-
10
- def self.values
11
- constants.map { |const| const_get const }
12
- end
13
- end
14
- end
15
- end
@@ -1,103 +0,0 @@
1
- module Transbank
2
- module Onepay
3
- class Item
4
- include Transbank::Utils::JSONUtils
5
- # An Item to be purchased by the user, and to be added to a [ShoppingCart]
6
-
7
- # @return [String] An item's description
8
- attr_reader :description
9
-
10
- # @return quantity [Integer] How many of units of [Item]
11
- attr_reader :quantity
12
-
13
- # @return amount [Integer] The value of each unit of [Item]
14
- attr_reader :amount
15
-
16
- # @return additional_data [String] A string with whatever additional data the
17
- # Merchant might want to add
18
- attr_reader :additional_data
19
-
20
- # @return expire [Integer] Expiry for the Item
21
- attr_reader :expire
22
- # @param [Hash] opts options Hash
23
- # @param description [String] The item's description
24
- # @param quantity [Integer] How many of units of [Item]
25
- # @param amount [Integer] The value of each unit of [Item]
26
- # @param additional_data [String] A string with whatever additional data the
27
- # Merchant might want to add
28
- # @param expire [Integer] Expiry for the Item
29
- # @raise [ItemError] when opts is not a [Hash]
30
- def initialize(opts = {})
31
- raise Errors::ItemError, 'Item must be a Hash' unless opts.is_a? Hash
32
- opts = transform_hash_keys opts
33
- self.description = opts.fetch(:description)
34
- self.quantity = opts.fetch(:quantity)
35
- self.amount = opts.fetch(:amount)
36
- self.additional_data = opts.fetch(:additional_data, nil)
37
- self.expire = opts.fetch(:expire, nil)
38
- end
39
-
40
- # @param description [String] An item's description
41
- # @raise [ItemError] when description is null
42
- def description=(description)
43
- raise Errors::ItemError, "Description cannot be null" if description.nil?
44
- @description = description
45
- end
46
-
47
- # @param quantity [Integer] How many of units of [Item]
48
- # @raise [ItemError] when given quantity is nil or less than zero.
49
- def quantity=(quantity)
50
- raise Errors::ItemError, "Quantity cannot be null" if quantity.nil?
51
- if quantity < 0
52
- raise Errors::ItemError, "Quantity cannot be less than zero"
53
- end
54
- @quantity = quantity
55
- end
56
-
57
- # @param amount [Integer] The value of each unit of [Item]
58
- # @raise [ItemError] when amount cannot be null.
59
- # @raise [ArgumentError] when amount is not an Integer.
60
- def amount=(amount)
61
- raise Errors::ItemError, "Amount cannot be null" if amount.nil?
62
- if amount != Integer(amount)
63
- raise ArgumentError, "Amount is not an Integer"
64
- end
65
- @amount = amount
66
- end
67
-
68
- # @param additional_data [String] A string with whatever additional data the
69
- # Merchant might want to add
70
- def additional_data=(additional_data)
71
- additional_data = '' if additional_data.nil?
72
- @additional_data = additional_data
73
- end
74
-
75
- # @param expire [Integer] Expiry for the Item
76
- def expire=(expire)
77
- expire = expire || 0
78
- @expire = expire
79
- end
80
-
81
- # Return the total amount to pay for the Item, that is, amount * quantity
82
- # @return [Numeric] the total amount to pay for the [Item]
83
- def total
84
- self.quantity * self.amount
85
- end
86
-
87
- # Override == to allow comparison between [Item]s
88
- # @return [boolean] true if equal, false otherwise
89
- def ==(another_item)
90
- self.description == another_item.description &&
91
- self.quantity == another_item.quantity &&
92
- self.amount == another_item.amount &&
93
- self.additional_data == another_item.additional_data &&
94
- self.expire == another_item.expire
95
- end
96
-
97
- # Alias for #==
98
- def eql?(another_item)
99
- self.==(another_item)
100
- end
101
- end
102
- end
103
- end
@@ -1,10 +0,0 @@
1
- require 'transbank/sdk/onepay/models/item'
2
- require 'transbank/sdk/onepay/models/channels'
3
- require 'transbank/sdk/onepay/models/refund'
4
- require 'transbank/sdk/onepay/models/shopping_cart'
5
- require 'transbank/sdk/onepay/models/transaction'
6
-
7
- module Transbank
8
- module Onepay
9
- end
10
- end
@@ -1,50 +0,0 @@
1
- module Transbank
2
- module Onepay
3
- class Refund
4
- extend Transbank::Utils::NetHelper, Utils::RequestBuilder
5
- # Manages Refunds
6
- REFUND_TRANSACTION = 'nullifytransaction'.freeze
7
- TRANSACTION_BASE_PATH = '/ewallet-plugin-api-services/services/transactionservice/'.freeze
8
-
9
- class << self
10
- # Create a request for a Refund
11
- # @param amount [Integer] Amount to be refunded. Must be the full amount of the
12
- # [Transaction] to be refunded
13
- # @param occ [String] Merchant purchase order
14
- # @param external_unique_number [String] Unique identifier (per Merchant) of the [Transaction] that
15
- # will be refunded
16
- # @param authorization_code [String] Authorization code. This is given when the [Transaction]
17
- # is successfully committed (with the #commit method of [Transaction])
18
- # @param options[Hash, nil] an optional Hash with configuration overrides
19
- # @raise [RefundCreateError] if the response is nil or has no response code
20
- # @raise [RefundCreateError] if response from the service is not equal to 'OK'
21
- def create(amount:, occ:, external_unique_number:, authorization_code:, options: nil)
22
- refund_request = refund_transaction(refund_amount: amount,
23
- occ: occ,
24
- external_unique_number: external_unique_number,
25
- authorization_code: authorization_code,
26
- options: options)
27
- response = http_post(uri_string: refund_path, body: refund_request.to_h)
28
- if response.nil? || !JSON.parse(response.body)['responseCode']
29
- raise Errors::RefundCreateError, 'Could not obtain a response from the service.'
30
- end
31
-
32
- refund_create_response = RefundCreateResponse.new(JSON.parse(response.body))
33
-
34
- unless refund_create_response.response_ok?
35
- raise Errors::RefundCreateError, refund_create_response.full_description
36
- end
37
-
38
- refund_create_response
39
- end
40
-
41
- # Return the string url to POST to
42
- # @return [String] the url to POST to
43
- def refund_path
44
- Base.current_integration_type_url + TRANSACTION_BASE_PATH + REFUND_TRANSACTION
45
- end
46
- end
47
-
48
- end
49
- end
50
- end
@@ -1,65 +0,0 @@
1
- module Transbank
2
- module Onepay
3
- # Represents a Shopping Cart, which contains [Item]s that the user wants to buy
4
- class ShoppingCart
5
- include Transbank::Utils::JSONUtils
6
-
7
- # @return [Array<Item>] An [Array<Item>] with the [ShoppingCart] contents
8
- attr_reader :items
9
-
10
- # @param items [Array, nil] an array of Hashes that can be converted to [Item]
11
- # if nil, an empty shopping cart is created
12
- def initialize(items = [])
13
- # An [Array<Item>] with the [ShoppingCart] contents
14
- @items = []
15
- return if items.nil? || items.empty?
16
-
17
- items.each do |it|
18
- it = transform_hash_keys it
19
- item = Item.new it
20
- self << item
21
- end
22
- end
23
-
24
- # @param item [Item] an instance of [Item]
25
- # @return [boolean] return true if item is successfully added
26
- def add(item)
27
- new_total = total + item.total
28
- if new_total < 0
29
- raise Errors::ShoppingCartError, "Total amount cannot be less than zero."
30
- end
31
- @items << item
32
- end
33
-
34
- # Alias for #add
35
- def << item
36
- add item
37
- end
38
-
39
- # Remove an [Item] from self
40
- # @raise [ShoppingCartError] if item is not found
41
- def remove(item)
42
- if @items.delete(item).nil?
43
- raise Errors::ShoppingCartError, "Item not found"
44
- end
45
- end
46
-
47
- # Clear the cart, setting @items to []
48
- def remove_all
49
- @items = []
50
- end
51
-
52
- # @return [Integer] The amount in CLP of the [Item]s included in the [ShoppingCart]
53
- def total
54
- # Array#sum is Ruby 2.4+
55
- @items.reduce(0) { |total, item| total + item.total }
56
- end
57
-
58
- # Sum the quantity of items in the cart
59
- def items_quantity
60
- # Array#sum is Ruby 2.4+
61
- @items.reduce(0) { |total, item| total + item.quantity }
62
- end
63
- end
64
- end
65
- end