transbank-sdk 1.3.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (153) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +41 -1
  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. data/transbank-sdk.gemspec +10 -8
  23. metadata +54 -156
  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/base.rb +0 -58
  35. data/lib/transbank/sdk/oneclick/mall/errors/mall_transaction_authorize_error.rb +0 -16
  36. data/lib/transbank/sdk/oneclick/mall/errors/mall_transaction_refund_error.rb +0 -16
  37. data/lib/transbank/sdk/oneclick/mall/errors/mall_transaction_status_error.rb +0 -16
  38. data/lib/transbank/sdk/oneclick/mall/errors/oneclick_mall_errors.rb +0 -4
  39. data/lib/transbank/sdk/oneclick/mall/mall_inscription.rb +0 -73
  40. data/lib/transbank/sdk/oneclick/mall/mall_transaction.rb +0 -97
  41. data/lib/transbank/sdk/oneclick/mall/oneclick_mall.rb +0 -5
  42. data/lib/transbank/sdk/oneclick/mall/responses/mall_transaction_authorize_response.rb +0 -16
  43. data/lib/transbank/sdk/oneclick/mall/responses/mall_transaction_refund_response.rb +0 -16
  44. data/lib/transbank/sdk/oneclick/mall/responses/mall_transaction_status_response.rb +0 -15
  45. data/lib/transbank/sdk/oneclick/mall/responses/oneclick_mall_responses.rb +0 -4
  46. data/lib/transbank/sdk/oneclick/mall_deferred/errors/mall_deferred_transaction_capture_error.rb +0 -16
  47. data/lib/transbank/sdk/oneclick/mall_deferred/mall_deferred_inscription.rb +0 -20
  48. data/lib/transbank/sdk/oneclick/mall_deferred/mall_deferred_transaction.rb +0 -42
  49. data/lib/transbank/sdk/oneclick/mall_deferred/responses/mall_deferred_transaction_capture_response.rb +0 -16
  50. data/lib/transbank/sdk/oneclick/oneclick.rb +0 -5
  51. data/lib/transbank/sdk/onepay/base.rb +0 -125
  52. data/lib/transbank/sdk/onepay/errors/errors.rb +0 -17
  53. data/lib/transbank/sdk/onepay/errors/integration_type_error.rb +0 -8
  54. data/lib/transbank/sdk/onepay/errors/invalid_options_error.rb +0 -8
  55. data/lib/transbank/sdk/onepay/errors/item_error.rb +0 -8
  56. data/lib/transbank/sdk/onepay/errors/refund_create_error.rb +0 -8
  57. data/lib/transbank/sdk/onepay/errors/response_error.rb +0 -8
  58. data/lib/transbank/sdk/onepay/errors/shopping_cart_error.rb +0 -8
  59. data/lib/transbank/sdk/onepay/errors/signature_error.rb +0 -8
  60. data/lib/transbank/sdk/onepay/errors/transaction_commit_error.rb +0 -8
  61. data/lib/transbank/sdk/onepay/errors/transaction_create_error.rb +0 -8
  62. data/lib/transbank/sdk/onepay/errors/transbank_error.rb +0 -9
  63. data/lib/transbank/sdk/onepay/models/channels.rb +0 -15
  64. data/lib/transbank/sdk/onepay/models/item.rb +0 -103
  65. data/lib/transbank/sdk/onepay/models/models.rb +0 -10
  66. data/lib/transbank/sdk/onepay/models/refund.rb +0 -50
  67. data/lib/transbank/sdk/onepay/models/shopping_cart.rb +0 -65
  68. data/lib/transbank/sdk/onepay/models/transaction.rb +0 -143
  69. data/lib/transbank/sdk/onepay/requests/refund_create_request.rb +0 -45
  70. data/lib/transbank/sdk/onepay/requests/request.rb +0 -18
  71. data/lib/transbank/sdk/onepay/requests/requests.rb +0 -9
  72. data/lib/transbank/sdk/onepay/requests/transaction_commit_request.rb +0 -48
  73. data/lib/transbank/sdk/onepay/requests/transaction_create_request.rb +0 -85
  74. data/lib/transbank/sdk/onepay/responses/refund_create_response.rb +0 -24
  75. data/lib/transbank/sdk/onepay/responses/response.rb +0 -18
  76. data/lib/transbank/sdk/onepay/responses/responses.rb +0 -9
  77. data/lib/transbank/sdk/onepay/responses/transaction_commit_response.rb +0 -39
  78. data/lib/transbank/sdk/onepay/responses/transaction_create_response.rb +0 -32
  79. data/lib/transbank/sdk/patpass/errors/integration_type_error.rb +0 -8
  80. data/lib/transbank/sdk/patpass/errors/patpass_error.rb +0 -15
  81. data/lib/transbank/sdk/patpass/patpass_by_webpay/base.rb +0 -47
  82. data/lib/transbank/sdk/patpass/patpass_by_webpay/errors/patpass_by_webpay_errors.rb +0 -12
  83. data/lib/transbank/sdk/patpass/patpass_by_webpay/errors/transaction_commit_error.rb +0 -15
  84. data/lib/transbank/sdk/patpass/patpass_by_webpay/errors/transaction_create_error.rb +0 -15
  85. data/lib/transbank/sdk/patpass/patpass_by_webpay/errors/transaction_status_error.rb +0 -15
  86. data/lib/transbank/sdk/patpass/patpass_by_webpay/options.rb +0 -9
  87. data/lib/transbank/sdk/patpass/patpass_by_webpay/patpass_by_webpay.rb +0 -16
  88. data/lib/transbank/sdk/patpass/patpass_by_webpay/responses/patpass_by_webpay_responses.rb +0 -3
  89. data/lib/transbank/sdk/patpass/patpass_by_webpay/responses/transaction_commit_response.rb +0 -20
  90. data/lib/transbank/sdk/patpass/patpass_by_webpay/responses/transaction_create_response.rb +0 -15
  91. data/lib/transbank/sdk/patpass/patpass_by_webpay/responses/transaction_status_response.rb +0 -21
  92. data/lib/transbank/sdk/patpass/patpass_comercio/base.rb +0 -47
  93. data/lib/transbank/sdk/patpass/patpass_comercio/errors/inscription_start_error.rb +0 -15
  94. data/lib/transbank/sdk/patpass/patpass_comercio/errors/inscription_status_error.rb +0 -15
  95. data/lib/transbank/sdk/patpass/patpass_comercio/errors/patpass_comercio_errors.rb +0 -2
  96. data/lib/transbank/sdk/patpass/patpass_comercio/options.rb +0 -9
  97. data/lib/transbank/sdk/patpass/patpass_comercio/patpass_comercio.rb +0 -5
  98. data/lib/transbank/sdk/patpass/patpass_comercio/responses/inscription_start_response.rb +0 -13
  99. data/lib/transbank/sdk/patpass/patpass_comercio/responses/inscription_status_response.rb +0 -13
  100. data/lib/transbank/sdk/patpass/patpass_comercio/responses/patpass_comercio_responses.rb +0 -2
  101. data/lib/transbank/sdk/transaccion_completa/base.rb +0 -49
  102. data/lib/transbank/sdk/transaccion_completa/errors/transaccion_completa_error.rb +0 -16
  103. data/lib/transbank/sdk/transaccion_completa/errors/transaccion_completa_errors.rb +0 -6
  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 -164
  110. data/lib/transbank/sdk/transaccion_completa/mall/responses/mall_transaction_commit_response.rb +0 -14
  111. data/lib/transbank/sdk/transaccion_completa/mall/responses/mall_transaction_installments_response.rb +0 -11
  112. data/lib/transbank/sdk/transaccion_completa/mall/responses/mall_transaction_responses.rb +0 -3
  113. data/lib/transbank/sdk/transaccion_completa/mall/responses/mall_transaction_status_response.rb +0 -14
  114. data/lib/transbank/sdk/transaccion_completa/options.rb +0 -7
  115. data/lib/transbank/sdk/transaccion_completa/responses/transaccion_completa_responses.rb +0 -5
  116. data/lib/transbank/sdk/transaccion_completa/responses/transaction_commit_response.rb +0 -16
  117. data/lib/transbank/sdk/transaccion_completa/responses/transaction_create_response.rb +0 -10
  118. data/lib/transbank/sdk/transaccion_completa/responses/transaction_installments_response.rb +0 -13
  119. data/lib/transbank/sdk/transaccion_completa/responses/transaction_refund_response.rb +0 -14
  120. data/lib/transbank/sdk/transaccion_completa/responses/transaction_status_response.rb +0 -16
  121. data/lib/transbank/sdk/transaccion_completa/transaccion_completa.rb +0 -5
  122. data/lib/transbank/sdk/transaccion_completa/transaction.rb +0 -117
  123. data/lib/transbank/sdk/transbank_error.rb +0 -6
  124. data/lib/transbank/sdk/utils/json_utils.rb +0 -75
  125. data/lib/transbank/sdk/utils/net_helper.rb +0 -82
  126. data/lib/transbank/sdk/utils/request_builder.rb +0 -96
  127. data/lib/transbank/sdk/utils/signature_utils.rb +0 -49
  128. data/lib/transbank/sdk/utils/utils.rb +0 -9
  129. data/lib/transbank/sdk/webpay/errors/integration_type_error.rb +0 -8
  130. data/lib/transbank/sdk/webpay/errors/webpay_error.rb +0 -14
  131. data/lib/transbank/sdk/webpay/webpay_plus/base.rb +0 -62
  132. data/lib/transbank/sdk/webpay/webpay_plus/deferred/deferred_transaction.rb +0 -108
  133. data/lib/transbank/sdk/webpay/webpay_plus/deferred/errors/transaction_capture_error.rb +0 -16
  134. data/lib/transbank/sdk/webpay/webpay_plus/deferred/errors/webpay_plus_deferred_errors.rb +0 -1
  135. data/lib/transbank/sdk/webpay/webpay_plus/deferred/responses/transaction_capture_response.rb +0 -22
  136. data/lib/transbank/sdk/webpay/webpay_plus/deferred/responses/webpay_plus_deferred_responses.rb +0 -1
  137. data/lib/transbank/sdk/webpay/webpay_plus/errors/transaction_commit_error.rb +0 -17
  138. data/lib/transbank/sdk/webpay/webpay_plus/errors/transaction_create_error.rb +0 -16
  139. data/lib/transbank/sdk/webpay/webpay_plus/errors/transaction_refund_error.rb +0 -16
  140. data/lib/transbank/sdk/webpay/webpay_plus/errors/transaction_status_error.rb +0 -16
  141. data/lib/transbank/sdk/webpay/webpay_plus/errors/webpay_plus_errors.rb +0 -13
  142. data/lib/transbank/sdk/webpay/webpay_plus/mall/mall_transaction.rb +0 -88
  143. data/lib/transbank/sdk/webpay/webpay_plus/mall/responses/mall_transaction_commit_response.rb +0 -23
  144. data/lib/transbank/sdk/webpay/webpay_plus/mall/responses/mall_transaction_status_response.rb +0 -21
  145. data/lib/transbank/sdk/webpay/webpay_plus/mall/responses/webpay_plus_mall_responses.rb +0 -2
  146. data/lib/transbank/sdk/webpay/webpay_plus/mall_deferred/mall_deferred_transaction.rb +0 -109
  147. data/lib/transbank/sdk/webpay/webpay_plus/options.rb +0 -9
  148. data/lib/transbank/sdk/webpay/webpay_plus/responses/transaction_commit_response.rb +0 -20
  149. data/lib/transbank/sdk/webpay/webpay_plus/responses/transaction_create_response.rb +0 -15
  150. data/lib/transbank/sdk/webpay/webpay_plus/responses/transaction_refund_response.rb +0 -19
  151. data/lib/transbank/sdk/webpay/webpay_plus/responses/transaction_status_response.rb +0 -21
  152. data/lib/transbank/sdk/webpay/webpay_plus/responses/webpay_plus_responses.rb +0 -4
  153. data/lib/transbank/sdk/webpay/webpay_plus/webpay_plus.rb +0 -24
@@ -1,73 +0,0 @@
1
- module Transbank
2
- module Webpay
3
- module Oneclick
4
- class MallInscription
5
- extend Transbank::Utils::NetHelper
6
-
7
- INSCRIPTION_START_ENDPOINT = 'rswebpaytransaction/api/oneclick/v1.0/inscriptions'.freeze
8
- INSCRIPTION_FINISH_ENDPOINT = 'rswebpaytransaction/api/oneclick/v1.0/inscriptions/:token'.freeze
9
- INSCRIPTION_DELETE_ENDPOINT = 'rswebpaytransaction/api/oneclick/v1.0/inscriptions'.freeze
10
- class << self
11
- def start(user_name:, email:, response_url:, options: nil)
12
- api_key = options&.api_key || default_integration_params[:api_key]
13
- commerce_code = options&.commerce_code || default_integration_params[:commerce_code]
14
- integration_type = options&.integration_type || default_integration_params[:integration_type]
15
- base_url = integration_type.nil? ? Oneclick::Base::integration_type[:TEST] : Oneclick::Base.integration_type_url(integration_type)
16
-
17
- url = base_url + INSCRIPTION_START_ENDPOINT
18
- headers = webpay_headers(commerce_code: commerce_code, api_key: api_key)
19
-
20
- body = {
21
- username: user_name,
22
- email: email,
23
- response_url: response_url
24
- }
25
- resp = http_post(uri_string: url, body: body, headers: headers, camel_case_keys: false)
26
- body = JSON.parse(resp.body)
27
- return ::Transbank::Webpay::Oneclick::MallInscriptionStartResponse.new(body) if resp.kind_of? Net::HTTPSuccess
28
- raise Oneclick::Errors::MallInscriptionStartError.new(body['error_message'], resp.code)
29
- end
30
-
31
- def finish(token:, options: nil)
32
- api_key = options&.api_key || default_integration_params[:api_key]
33
- commerce_code = options&.commerce_code || default_integration_params[:commerce_code]
34
- integration_type = options&.integration_type || default_integration_params[:integration_type]
35
- base_url = integration_type.nil? ? Oneclick::Base::integration_type[:TEST] : Oneclick::Base.integration_type_url(integration_type)
36
-
37
- url = base_url + INSCRIPTION_FINISH_ENDPOINT.gsub(':token', token)
38
- headers = webpay_headers(commerce_code: commerce_code, api_key: api_key)
39
-
40
- resp = http_put(uri_string: url, headers: headers)
41
- body = JSON.parse(resp.body)
42
- return ::Transbank::Webpay::Oneclick::MallInscriptionFinishResponse.new(body) if resp.kind_of? Net::HTTPSuccess
43
- raise Oneclick::Errors::MallInscriptionFinishError.new(body['error_message'], resp.code)
44
- end
45
-
46
- def delete(tbk_user:, user_name:, options: nil)
47
- api_key = options&.api_key || default_integration_params[:api_key]
48
- commerce_code = options&.commerce_code || default_integration_params[:commerce_code]
49
- integration_type = options&.integration_type || default_integration_params[:integration_type]
50
- base_url = integration_type.nil? ? Oneclick::Base::integration_type[:TEST] : Oneclick::Base.integration_type_url(integration_type)
51
-
52
- url = base_url + INSCRIPTION_DELETE_ENDPOINT
53
- headers = webpay_headers(commerce_code: commerce_code, api_key: api_key)
54
- body = {tbk_user: tbk_user, username: user_name}
55
- resp = http_delete(uri_string: url, body: body, headers: headers)
56
- code = resp.code
57
- return ::Transbank::Webpay::Oneclick::MallInscriptionDeleteResponse.new(code) if resp.kind_of? Net::HTTPSuccess
58
- raise Oneclick::Errors::MallInscriptionDeleteError.new(body['error_message'], resp.code)
59
- end
60
-
61
- def default_integration_params
62
- {
63
- api_key: Oneclick::Base::DEFAULT_API_KEY,
64
- commerce_code: Oneclick::Base::DEFAULT_ONECLICK_MALL_COMMERCE_CODE,
65
- integration_type: Oneclick::Base::integration_type,
66
- base_url: Oneclick::Base::current_integration_type_url
67
- }
68
- end
69
- end
70
- end
71
- end
72
- end
73
- end
@@ -1,97 +0,0 @@
1
- module Transbank
2
- module Webpay
3
- module Oneclick
4
- class MallTransaction
5
- extend Transbank::Utils::NetHelper
6
-
7
- AUTHORIZE_TRANSACTION_ENDPOINT = 'rswebpaytransaction/api/oneclick/v1.0/transactions'.freeze
8
- TRANSACTION_STATUS_ENDPOINT = 'rswebpaytransaction/api/oneclick/v1.0/transactions/:buy_order'.freeze
9
- TRANSACTION_REFUND_ENDPOINT = 'rswebpaytransaction/api/oneclick/v1.0/transactions/:buy_order/refunds'.freeze
10
-
11
- class << self
12
-
13
- def authorize(username:, tbk_user:, parent_buy_order:, details:,
14
- options: nil)
15
- api_key = options&.api_key || default_integration_params[:api_key]
16
- commerce_code = options&.commerce_code || default_integration_params[:commerce_code]
17
- integration_type = options&.integration_type || default_integration_params[:integration_type]
18
- base_url = integration_type.nil? ? Oneclick::Base::integration_type[:TEST] : Oneclick::Base.integration_type_url(integration_type)
19
-
20
- url = base_url + AUTHORIZE_TRANSACTION_ENDPOINT
21
- headers = webpay_headers(commerce_code: commerce_code, api_key: api_key)
22
-
23
- details_array = details.map do |det|
24
- hash = det.reduce({}) do |acc, (k, v)|
25
- acc[k.to_s] = v
26
- acc
27
- end
28
- # We need to make sure the hash's keys are strings (or symbols)
29
- # since Ruby doesnt have hahes with indifferent access
30
- # I chose to make them strings
31
- details_hash = {}
32
- details_hash[:amount] = hash.fetch('amount')
33
- details_hash[:buy_order] = hash.fetch('buy_order')
34
- details_hash[:commerce_code] = hash.fetch('commerce_code')
35
- details_hash[:installments_number] = hash.fetch('installments_number')
36
- details_hash
37
- end
38
-
39
- body = {
40
- username: username,
41
- tbk_user: tbk_user,
42
- buy_order: parent_buy_order,
43
- details: details_array
44
- }
45
- resp = http_post(uri_string: url, body: body, headers: headers, camel_case_keys: false)
46
- body = JSON.parse(resp.body)
47
- return ::Transbank::Webpay::Oneclick::MallTransactionAuthorizeResponse.new(body) if resp.kind_of? Net::HTTPSuccess
48
- raise Oneclick::Errors::MallTransactionAuthorizeError.new(body['error_message'], resp.code)
49
- end
50
-
51
- def status(buy_order:, options: nil)
52
- api_key = options&.api_key || default_integration_params[:api_key]
53
- commerce_code = options&.commerce_code || default_integration_params[:commerce_code]
54
- integration_type = options&.integration_type || default_integration_params[:integration_type]
55
- base_url = integration_type.nil? ? Oneclick::Base::integration_type[:TEST] : Oneclick::Base.integration_type_url(integration_type)
56
-
57
- url = base_url + TRANSACTION_STATUS_ENDPOINT.gsub(':buy_order', buy_order)
58
- headers = webpay_headers(commerce_code: commerce_code, api_key: api_key)
59
- resp = http_get(uri_string: url, headers: headers)
60
- body = JSON.parse(resp.body)
61
- return ::Transbank::Webpay::Oneclick::MallTransactionStatusResponse.new(body) if resp.kind_of? Net::HTTPSuccess
62
- raise Oneclick::Errors::MallTransactionStatusError.new(body['error_message'], resp.code)
63
- end
64
-
65
- def refund(buy_order:, child_commerce_code:, child_buy_order:, amount:,
66
- options: nil)
67
- api_key = options&.api_key || default_integration_params[:api_key]
68
- commerce_code = options&.commerce_code || default_integration_params[:commerce_code]
69
- integration_type = options&.integration_type || default_integration_params[:integration_type]
70
- base_url = integration_type.nil? ? Oneclick::Base::integration_type[:TEST] : Oneclick::Base.integration_type_url(integration_type)
71
-
72
- url = base_url + TRANSACTION_REFUND_ENDPOINT.gsub(':buy_order', buy_order)
73
- headers = webpay_headers(commerce_code: commerce_code, api_key: api_key)
74
- body = {
75
- detail_buy_order: child_buy_order,
76
- commerce_code: child_commerce_code,
77
- amount: amount
78
- }
79
- resp = http_post(uri_string: url, body: body, headers: headers, camel_case_keys: false)
80
- body = JSON.parse(resp.body)
81
- return ::Transbank::Webpay::Oneclick::MallTransactionRefundResponse.new(body) if resp.kind_of? Net::HTTPSuccess
82
- raise Oneclick::Errors::MallTransactionRefundError.new(body['error_message'], resp.code)
83
- end
84
-
85
- def default_integration_params
86
- {
87
- api_key: Oneclick::Base::DEFAULT_API_KEY,
88
- commerce_code: Oneclick::Base::DEFAULT_ONECLICK_MALL_COMMERCE_CODE,
89
- integration_type: Oneclick::Base::integration_type,
90
- base_url: Oneclick::Base::current_integration_type_url
91
- }
92
- end
93
- end
94
- end
95
- end
96
- end
97
- end
@@ -1,5 +0,0 @@
1
- require 'transbank/sdk/oneclick/mall/errors/oneclick_mall_errors'
2
- require 'transbank/sdk/oneclick/mall/responses/oneclick_mall_responses'
3
- require 'transbank/sdk/oneclick/mall/base'
4
- require 'transbank/sdk/oneclick/mall/mall_inscription'
5
- require 'transbank/sdk/oneclick/mall/mall_transaction'
@@ -1,16 +0,0 @@
1
- module Transbank
2
- module Webpay
3
- module Oneclick
4
- class MallTransactionAuthorizeResponse
5
- FIELDS = [:buy_order, :session_id, :card_detail, :expiration_date,
6
- :accounting_date, :transaction_date, :details]
7
-
8
- attr_accessor *FIELDS
9
-
10
- def initialize(json)
11
- FIELDS.each {|field| send("#{field}=", json["#{field}"]) }
12
- end
13
- end
14
- end
15
- end
16
- end
@@ -1,16 +0,0 @@
1
- module Transbank
2
- module Webpay
3
- module Oneclick
4
- class MallTransactionRefundResponse
5
- FIELDS = [:type, :authorization_code, :authorization_date,
6
- :nullified_amount, :balance, :response_code]
7
-
8
- attr_accessor *FIELDS
9
-
10
- def initialize(json)
11
- FIELDS.each {|field| send("#{field}=", json["#{field}"]) }
12
- end
13
- end
14
- end
15
- end
16
- end
@@ -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::DEFAULT_API_KEY,
11
- commerce_code: Oneclick::Base::DEFAULT_ONECLICK_MALL_DEFERRED_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::DEFAULT_API_KEY,
33
- commerce_code: Oneclick::Base::DEFAULT_ONECLICK_MALL_DEFERRED_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,5 +0,0 @@
1
- require 'transbank/sdk/oneclick/errors/oneclick_error'
2
- require 'transbank/sdk/oneclick/inscription/inscription'
3
- require 'transbank/sdk/oneclick/mall/oneclick_mall'
4
- require 'transbank/sdk/oneclick/mall_deferred/mall_deferred_transaction'
5
- require 'transbank/sdk/oneclick/mall_deferred/mall_deferred_inscription'
@@ -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