transbank-sdk 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -1
  3. data/CHANGELOG.md +16 -0
  4. data/README.md +4 -7
  5. data/lib/transbank/sdk/oneclick/mall/base.rb +10 -3
  6. data/lib/transbank/sdk/oneclick/mall/errors/oneclick_mall_errors.rb +2 -1
  7. data/lib/transbank/sdk/oneclick/mall/responses/oneclick_mall_responses.rb +1 -0
  8. data/lib/transbank/sdk/oneclick/mall_deferred/errors/mall_deferred_transaction_capture_error.rb +16 -0
  9. data/lib/transbank/sdk/oneclick/mall_deferred/mall_deferred_inscription.rb +20 -0
  10. data/lib/transbank/sdk/oneclick/mall_deferred/mall_deferred_transaction.rb +42 -0
  11. data/lib/transbank/sdk/oneclick/mall_deferred/responses/mall_deferred_transaction_capture_response.rb +16 -0
  12. data/lib/transbank/sdk/oneclick/oneclick.rb +3 -1
  13. data/lib/transbank/sdk/patpass/errors/integration_type_error.rb +8 -0
  14. data/lib/transbank/sdk/patpass/errors/patpass_error.rb +15 -0
  15. data/lib/transbank/sdk/patpass/patpass_by_webpay/base.rb +47 -0
  16. data/lib/transbank/sdk/patpass/patpass_by_webpay/errors/patpass_by_webpay_errors.rb +12 -0
  17. data/lib/transbank/sdk/patpass/patpass_by_webpay/errors/transaction_commit_error.rb +15 -0
  18. data/lib/transbank/sdk/patpass/patpass_by_webpay/errors/transaction_create_error.rb +15 -0
  19. data/lib/transbank/sdk/patpass/patpass_by_webpay/errors/transaction_status_error.rb +15 -0
  20. data/lib/transbank/sdk/patpass/patpass_by_webpay/options.rb +9 -0
  21. data/lib/transbank/sdk/patpass/patpass_by_webpay/patpass_by_webpay.rb +16 -0
  22. data/lib/transbank/sdk/patpass/patpass_by_webpay/responses/patpass_by_webpay_responses.rb +3 -0
  23. data/lib/transbank/sdk/patpass/patpass_by_webpay/responses/transaction_commit_response.rb +20 -0
  24. data/lib/transbank/sdk/patpass/patpass_by_webpay/responses/transaction_create_response.rb +15 -0
  25. data/lib/transbank/sdk/patpass/patpass_by_webpay/responses/transaction_status_response.rb +21 -0
  26. data/lib/transbank/sdk/patpass/patpass_by_webpay/transaction.rb +93 -0
  27. data/lib/transbank/sdk/patpass/patpass_comercio/base.rb +47 -0
  28. data/lib/transbank/sdk/patpass/patpass_comercio/errors/inscription_start_error.rb +15 -0
  29. data/lib/transbank/sdk/patpass/patpass_comercio/errors/inscription_status_error.rb +15 -0
  30. data/lib/transbank/sdk/patpass/patpass_comercio/errors/patpass_comercio_errors.rb +2 -0
  31. data/lib/transbank/sdk/patpass/patpass_comercio/inscription.rb +79 -0
  32. data/lib/transbank/sdk/patpass/patpass_comercio/options.rb +9 -0
  33. data/lib/transbank/sdk/patpass/patpass_comercio/patpass_comercio.rb +5 -0
  34. data/lib/transbank/sdk/patpass/patpass_comercio/responses/inscription_start_response.rb +13 -0
  35. data/lib/transbank/sdk/patpass/patpass_comercio/responses/inscription_status_response.rb +13 -0
  36. data/lib/transbank/sdk/patpass/patpass_comercio/responses/patpass_comercio_responses.rb +2 -0
  37. data/lib/transbank/sdk/transaccion_completa/mall/mall_transaction.rb +164 -0
  38. data/lib/transbank/sdk/transaccion_completa/mall/responses/mall_transaction_commit_response.rb +14 -0
  39. data/lib/transbank/sdk/transaccion_completa/mall/responses/mall_transaction_installments_response.rb +11 -0
  40. data/lib/transbank/sdk/transaccion_completa/mall/responses/mall_transaction_responses.rb +3 -0
  41. data/lib/transbank/sdk/transaccion_completa/mall/responses/mall_transaction_status_response.rb +14 -0
  42. data/lib/transbank/sdk/version.rb +1 -1
  43. data/lib/transbank/sdk/webpay/webpay_plus/base.rb +62 -0
  44. data/lib/transbank/sdk/webpay/webpay_plus/deferred/deferred_transaction.rb +108 -0
  45. data/lib/transbank/sdk/webpay/webpay_plus/deferred/errors/transaction_capture_error.rb +16 -0
  46. data/lib/transbank/sdk/webpay/webpay_plus/deferred/errors/webpay_plus_deferred_errors.rb +1 -0
  47. data/lib/transbank/sdk/webpay/webpay_plus/deferred/responses/transaction_capture_response.rb +22 -0
  48. data/lib/transbank/sdk/webpay/webpay_plus/deferred/responses/webpay_plus_deferred_responses.rb +1 -0
  49. data/lib/transbank/sdk/webpay/webpay_plus/errors/transaction_commit_error.rb +17 -0
  50. data/lib/transbank/sdk/webpay/webpay_plus/errors/transaction_create_error.rb +16 -0
  51. data/lib/transbank/sdk/webpay/webpay_plus/errors/transaction_refund_error.rb +16 -0
  52. data/lib/transbank/sdk/webpay/webpay_plus/errors/transaction_status_error.rb +16 -0
  53. data/lib/transbank/sdk/webpay/webpay_plus/errors/webpay_plus_errors.rb +13 -0
  54. data/lib/transbank/sdk/webpay/webpay_plus/mall/mall_transaction.rb +88 -0
  55. data/lib/transbank/sdk/webpay/webpay_plus/mall/responses/mall_transaction_commit_response.rb +23 -0
  56. data/lib/transbank/sdk/webpay/webpay_plus/mall/responses/mall_transaction_status_response.rb +21 -0
  57. data/lib/transbank/sdk/webpay/webpay_plus/mall/responses/webpay_plus_mall_responses.rb +2 -0
  58. data/lib/transbank/sdk/webpay/webpay_plus/mall_deferred/mall_deferred_transaction.rb +109 -0
  59. data/lib/transbank/sdk/webpay/webpay_plus/options.rb +9 -0
  60. data/lib/transbank/sdk/webpay/webpay_plus/responses/transaction_commit_response.rb +20 -0
  61. data/lib/transbank/sdk/webpay/webpay_plus/responses/transaction_create_response.rb +15 -0
  62. data/lib/transbank/sdk/webpay/webpay_plus/responses/transaction_refund_response.rb +19 -0
  63. data/lib/transbank/sdk/webpay/webpay_plus/responses/transaction_status_response.rb +21 -0
  64. data/lib/transbank/sdk/webpay/webpay_plus/responses/webpay_plus_responses.rb +4 -0
  65. data/lib/transbank/sdk/webpay/webpay_plus/transaction.rb +89 -0
  66. data/lib/transbank/sdk/webpay/webpay_plus/webpay_plus.rb +24 -0
  67. metadata +60 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9c8e254a610d8744915cc56245533ad60f94a1c1a37c786c9eaefe458deaedb4
4
- data.tar.gz: '029809591bbd27cdefc7a1dad7f5411f592387dddc430fc81c819fcde135031a'
3
+ metadata.gz: 817886427b7e35f0b592fe706a68453d891c40b3438083890cc35e7f9db96111
4
+ data.tar.gz: 23cfbcaf423ec7a535fade5d85513514e173b5510f52e2c008d29f78b003b947
5
5
  SHA512:
6
- metadata.gz: a0756ef91caee98a6d29c144c779650c788b31653758f0190a96746e6d63cdb4946fddbaf66bca329c4feb34f63288e0fd255d3bb2ba99b3c8f6fed61d5b445f
7
- data.tar.gz: 33ffe901ec9592015658878761eed5b263cc6b955a7870c964092dae68f62f7965d062ea0a3415c0ee4306dd641eeb95f862748c506bdf77ca8583e8515084bb
6
+ metadata.gz: 1b9e94503ac0028669da09c6ddf8a2c6f006cefb821e8793f6e2db18e0364add41c2509d2adf1a25159cfda4ee56505b5e4317522bef7ebae8d03ec7e3060e54
7
+ data.tar.gz: e60e58802c3248e9c2cefd1143c373170095480773e2ab64f66d08e07740e982d032e802710db34ee8abfda3129fe5ac9c2d3fda54f119bd4b32e33536a4cae9
@@ -1,7 +1,7 @@
1
1
  deploy:
2
2
  provider: rubygems
3
3
  api_key:
4
- secure: DrUEm8pAjKtSekGBZz9/dMK92CSj2J+Zi1KOMLdDMckD4UCifusmbyqsp+RWAYBX1fWREyjMW0VvaPgj2eYOEaQrr6+TmygQMel1sFKSC6pOMVHQ3NMPwacVG5rGlNlK5+1PuNyR/ZGwtIdWkHe8+g9CvlvliNdY5KYtVs0pnwGUOMeQAwuIgM/w7uSm67zL7M3pYqEArU73EoX9puUS+k6aQ+KtxBckpqi7GtA5+42F8kTvEg+Y0h385qOvnQhjwepYh6YvfTeyzxc5fqFiBlO4TZp4rCoCpEeY1XO1VBCip+aGe5FVoWJrWkYONWdKV4GGzQd0Kd2Jmis4ieBDoi1julUK+uudy3CcjT3pSvSl6NyEpkUDJrJLZ9vn5P5SRJrUsWPDpkun5TptOnc1W1lgyJRypM47BbJ/qRzSr279iQmbvkEMci132Vp3v1Q17zDzBAyI13jirxNN4aw/PB0UCG7XRxqfEhnN391p1QVjB5u24G8r+gxABrJQA0WroKvQACstHd160wFWHxb57kSTaD32j3dzIbT+IdylF0ENmGQCohhUjwZt9ldv5cdQOyq0Jhsu9j8T/VzSRc52n1by1JQgl4nu4b7pmmNbfsEL6P13+m93TyKQiK0tr4CgdzF2XrY/bBJxoMvUTd2To4X77IRMayjkoZWEOT2RzrA=
4
+ secure: Y3z7qW8UhuDi0AqMr9T6ti46w3jLuLDRLuHUBTff80lYAZhBwCNj7U9UvlgELTiOC/nLREtboGW5ZUf3XIIiRr2oIqCSSWYVR6OCuPGTHS/hvGBi0T5jEL30/YuIEbIuz3xkXqN15WlOouKVgfPsNcL8mfLZBZMHQ9QwB6P0E2rg2GZj1QVqAUjnn/JGet0d2EJb48YyndN4nGVhaXXUQhcyyy1+XWEkC3nCo6v1dwE5pS8QK4kcRevRvL9G8mebxX74IuIbgW2bXBHPLNUbuUOHuNNUrrNIJDFUf8xXouLDT5QN4CsoldcgSIGuBvcJlmoubQFfju4iuGt/xnL8BtsKDy3iZ+xnIji6h7MGNAOpiZ7e2LavGvO5luYVEpuv2iG9V/FpJY5DJcBZ8779LnA97NAV7bz383tjihCfR9kzUh5rs2To42FV0IQj0btWuGesVmPefWjwV/EzjmbN0+PhNmxDwQAJS49cHycZKTeestaR4MgHigXZ2CGRAJSKYr3Tj7/r8KZW6MGY6KgXiwjpu+d3+UidAwI1viiRrCGuWBALkAAaxGR0H8qamMsJr/DQtjAgXDITRlAScpWzicgvEEHyXTos45EIrsJZV72O/jj8Zvbw83rEMv8It3yCS43deLsyw+5a4i9y9HFKuGQPa8w7yR1xEOnh6G3AiWY=
5
5
  gem: transbank-sdk
6
6
  on:
7
7
  tags: true
@@ -4,6 +4,22 @@ Todos los cambios notables a este proyecto serán documentados en este archivo.
4
4
  El formato está basado en [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5
5
  y este proyecto adhiere a [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [1.3.0] - 2020-10-26
8
+
9
+ ### Added
10
+
11
+ - Se agrega soporte para:
12
+ - Webpay Plus Rest
13
+ - modalidad normal
14
+ - modalidad captura diferida
15
+ - modalidad mall
16
+ - modalidad mall captura diferida
17
+ - Patpass by Webpay Rest
18
+ - Patpass Comercio Rest
19
+ - Transacción completa Rest
20
+ - modalidad mall
21
+ - Oneclick Mall Captura diferida
22
+
7
23
  ## [1.2.0] - 2019-12-26
8
24
  ### Added
9
25
  - Se agrega soporte para Oneclick Mall y Transacción Completa en sus versiones REST.
data/README.md CHANGED
@@ -75,16 +75,13 @@ make
75
75
  ```
76
76
 
77
77
  ### Deploy de una nueva versión.
78
- Para generar una nueva versión, se debe crear un PR (con un título "Prepare release X.Y.Z" con los valores que correspondan para X, Y y Z). Se debe seguir el estándar semver para determinar si se incrementa el valor de X (si hay cambios no retrocompatibles), Y (para mejoras retrocompatibles) o Z (si sólo hubo correcciones a bugs).
78
+ Para generar una nueva versión, se debe crear un PR (con un título "Prepare release X.Y.Z" con los valores que correspondan para `X`, `Y` y `Z`). Se debe seguir el estándar semver para determinar si se incrementa el valor de `X` (si hay cambios no retrocompatibles), `Y` (para mejoras retrocompatibles) o `Z` (si sólo hubo correcciones a bugs).
79
79
 
80
80
  En ese PR deben incluirse los siguientes cambios:
81
81
 
82
- Modificar el archivo CHANGELOG.md para incluir una nueva entrada (al comienzo) para X.Y.Z que explique en español los cambios de cara al usuario del SDK.
82
+ 1. Modificar el archivo `CHANGELOG.md` para incluir una nueva entrada (al comienzo) para `X.Y.Z` que explique en español los cambios **de cara al usuario del SDK**.
83
+ 2. Modificar [version.rb](./lib/transbank/sdk/version.rb) para poner la nueva versión que corresponde.
83
84
 
84
- Modificar este README.md para que los ejemplos usen la nueva versión X.Y.Z
85
-
86
- Modificar [version.rb](./lib/transbank/sdk/version.rb) para poner la nueva versión que corresponde
87
-
88
- Luego de obtener aprobación del pull request, debe mezclarse a master e inmediatamente generar un release en GitHub con el tag vX.Y.Z. En la descripción del release debes poner lo mismo que agregaste al changelog.
85
+ Luego de obtener aprobación del pull request, debe mezclarse a master e inmediatamente generar un release en GitHub con el tag `vX.Y.Z`. En la descripción del release debes poner lo mismo que agregaste al changelog.
89
86
 
90
87
  Con eso Travis CI generará automáticamente una nueva versión de la librería y la publicará en RubyGems.
@@ -5,8 +5,16 @@ module Transbank
5
5
  DEFAULT_API_KEY = '579B532A7440BB0C9079DED94D31EA1615BACEB56610332264630D42D0A36B1C'.freeze
6
6
 
7
7
  DEFAULT_ONECLICK_MALL_COMMERCE_CODE = '597055555541'.freeze
8
- DEFAULT_ONECLICK_MALL_CHILD_COMMERCE_CODES = ['597055555542'.freeze,
9
- '597055555543'.freeze].freeze
8
+ DEFAULT_ONECLICK_MALL_CHILD_COMMERCE_CODES = [
9
+ '597055555542'.freeze,
10
+ '597055555543'.freeze
11
+ ].freeze
12
+
13
+ DEFAULT_ONECLICK_MALL_DEFERRED_COMMERCE_CODE = '597055555547'.freeze
14
+ DEFAULT_ONECLICK_MALL_DEFERRED_CHILD_COMMERCE_CODES = [
15
+ '597055555548'.freeze,
16
+ '597055555549'.freeze
17
+ ].freeze
10
18
 
11
19
  @api_key = DEFAULT_API_KEY
12
20
  @commerce_code = DEFAULT_ONECLICK_MALL_COMMERCE_CODE
@@ -48,4 +56,3 @@ module Transbank
48
56
  end
49
57
  end
50
58
  end
51
-
@@ -1,3 +1,4 @@
1
1
  require 'transbank/sdk/oneclick/mall/errors/mall_transaction_authorize_error'
2
2
  require 'transbank/sdk/oneclick/mall/errors/mall_transaction_status_error'
3
- require 'transbank/sdk/oneclick/mall/errors/mall_transaction_refund_error'
3
+ require 'transbank/sdk/oneclick/mall/errors/mall_transaction_refund_error'
4
+ require 'transbank/sdk/oneclick/mall_deferred/errors/mall_deferred_transaction_capture_error'
@@ -1,3 +1,4 @@
1
1
  require 'transbank/sdk/oneclick/mall/responses/mall_transaction_authorize_response'
2
2
  require 'transbank/sdk/oneclick/mall/responses/mall_transaction_status_response'
3
3
  require 'transbank/sdk/oneclick/mall/responses/mall_transaction_refund_response'
4
+ require 'transbank/sdk/oneclick/mall_deferred/responses/mall_deferred_transaction_capture_response'
@@ -0,0 +1,16 @@
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
@@ -0,0 +1,20 @@
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
@@ -0,0 +1,42 @@
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
@@ -0,0 +1,16 @@
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,3 +1,5 @@
1
1
  require 'transbank/sdk/oneclick/errors/oneclick_error'
2
2
  require 'transbank/sdk/oneclick/inscription/inscription'
3
- require 'transbank/sdk/oneclick/mall/oneclick_mall'
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'
@@ -0,0 +1,8 @@
1
+ module Transbank
2
+ module Patpass
3
+ module Errors
4
+ class IntegrationTypeError < ::Transbank::Errors::TransbankError
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,15 @@
1
+ module Transbank
2
+ module Patpass
3
+ module Errors
4
+ class PatpassError < ::Transbank::Errors::TransbankError
5
+ attr_accessor :message, :code
6
+ def initialize(message, code)
7
+ self.message = message
8
+ self.code = code
9
+ super(message)
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
15
+
@@ -0,0 +1,47 @@
1
+ module Transbank
2
+ module Patpass
3
+ module PatpassByWebpay
4
+ class Base
5
+
6
+ DEFAULT_API_KEY = '579B532A7440BB0C9079DED94D31EA1615BACEB56610332264630D42D0A36B1C'.freeze
7
+ DEFAULT_COMMERCE_CODE = '597055555550'.freeze
8
+
9
+ @api_key = DEFAULT_API_KEY
10
+ @commerce_code = DEFAULT_COMMERCE_CODE
11
+ @integration_type = :TEST
12
+ @integration_types = {
13
+ LIVE: "https://webpay3g.transbank.cl/",
14
+ TEST: "https://webpay3gint.transbank.cl/"
15
+ }
16
+ class << self
17
+ attr_reader :integration_types
18
+ attr_accessor :api_key, :integration_type, :commerce_code
19
+
20
+ def integration_type_url(integration_type)
21
+ type = integration_type.upcase.to_sym
22
+ return @integration_types[type] unless @integration_types[type].nil?
23
+ valid_values = @integration_types.keys.join(', ')
24
+ raise Transbank::Patpass::Errors::IntegrationTypeError, "Invalid integration type, valid values are #{valid_values}"
25
+ end
26
+
27
+ def current_integration_type_url
28
+ @integration_types[@integration_type]
29
+ end
30
+
31
+ def integration_type=(integration_type)
32
+ type = integration_type.upcase.to_sym
33
+ return @integration_type = type unless @integration_types[type].nil?
34
+ valid_values = @integration_types.keys.join(', ')
35
+ raise Transbank::Patpass::Errors::IntegrationTypeError, "Invalid integration type, valid values are #{valid_values}"
36
+ end
37
+
38
+ def configure_for_testing
39
+ @api_key = DEFAULT_API_KEY
40
+ @commerce_code = DEFAULT_COMMERCE_CODE
41
+ self.integration_type = :TEST
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,12 @@
1
+ require 'transbank/sdk/patpass/patpass_by_webpay/errors/transaction_create_error'
2
+ require 'transbank/sdk/patpass/patpass_by_webpay/errors/transaction_commit_error'
3
+ require 'transbank/sdk/patpass/patpass_by_webpay/errors/transaction_status_error'
4
+
5
+ module Transbank
6
+ module Patpass
7
+ module PatpassByWebpay
8
+ module Errors
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,15 @@
1
+ module Transbank
2
+ module Patpass
3
+ module PatpassByWebpay
4
+ module Errors
5
+ class TransactionCommitError < ::Transbank::Patpass::Errors::PatpassError
6
+ attr_reader :code
7
+ def initialize(message, code)
8
+ @code = code
9
+ super(message, code)
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module Transbank
2
+ module Patpass
3
+ module PatpassByWebpay
4
+ module Errors
5
+ class TransactionCreateError < ::Transbank::Patpass::Errors::PatpassError
6
+ attr_reader :code
7
+ def initialize(message, code)
8
+ @code = code
9
+ super(message, code)
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module Transbank
2
+ module Patpass
3
+ module PatpassByWebpay
4
+ module Errors
5
+ class TransactionStatusError < ::Transbank::Patpass::Errors::PatpassError
6
+ attr_reader :code
7
+ def initialize(message, code)
8
+ @code = code
9
+ super(message, code)
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,9 @@
1
+ module Transbank
2
+ module Patpass
3
+ module PatpassByWebpay
4
+ class Options
5
+ attr_accessor :api_key, :commerce_code, :integration_type
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,16 @@
1
+ require 'transbank/sdk/patpass/errors/patpass_error'
2
+ require 'transbank/sdk/patpass/errors/integration_type_error'
3
+ require 'transbank/sdk/patpass/patpass_by_webpay/errors/patpass_by_webpay_errors'
4
+ require 'transbank/sdk/patpass/patpass_by_webpay/responses/patpass_by_webpay_responses'
5
+
6
+ require 'transbank/sdk/patpass/patpass_by_webpay/base'
7
+ require 'transbank/sdk/patpass/patpass_by_webpay/options'
8
+ require 'transbank/sdk/patpass/patpass_by_webpay/transaction'
9
+
10
+
11
+ module Transbank
12
+ module Patpass
13
+ module PatpassByWebpay
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,3 @@
1
+ require 'transbank/sdk/patpass/patpass_by_webpay/responses/transaction_create_response'
2
+ require 'transbank/sdk/patpass/patpass_by_webpay/responses/transaction_commit_response'
3
+ require 'transbank/sdk/patpass/patpass_by_webpay/responses/transaction_status_response'
@@ -0,0 +1,20 @@
1
+ module Transbank
2
+ module Patpass
3
+ module PatpassByWebpay
4
+ class TransactionCommitResponse
5
+
6
+ FIELDS =
7
+ [:vci, :amount, :buy_order, :session_id,
8
+ :card_detail, :accounting_date, :transaction_date,
9
+ :authorization_code, :payment_type_code, :response_code,
10
+ :installments_amount, :installments_number, :balance]
11
+
12
+ attr_accessor *FIELDS
13
+
14
+ def initialize(json)
15
+ FIELDS.each {|field| send("#{field}=", json["#{field}"]) }
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,15 @@
1
+ module Transbank
2
+ module Patpass
3
+ module PatpassByWebpay
4
+ class TransactionCreateResponse
5
+ attr_accessor :token, :url
6
+
7
+ def initialize(json)
8
+ self.token = json['token']
9
+ self.url = json['url']
10
+ end
11
+
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,21 @@
1
+ module Transbank
2
+ module Patpass
3
+ module PatpassByWebpay
4
+ class TransactionStatusResponse
5
+
6
+ FIELDS =
7
+ [:vci, :amount, :buy_order, :session_id,
8
+ :card_detail, :accounting_date, :transaction_date,
9
+ :authorization_code, :payment_type_code, :response_code,
10
+ :installments_amount, :installments_number, :balance]
11
+
12
+ attr_accessor *FIELDS
13
+
14
+ def initialize(json)
15
+ FIELDS.each {|field| send("#{field}=", json["#{field}"]) }
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+