transact_pro 0.9.2 → 0.9.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 489d0c8023577678e52bab6119b2752c195e71b0
4
- data.tar.gz: f0e4f7c450dfa3ad7bad504d4aba575e8f240fee
3
+ metadata.gz: 0e0af839e8839922430d553e7e220075ba9374cb
4
+ data.tar.gz: e6c2999131f36cc1560b2d22e397800375a1202f
5
5
  SHA512:
6
- metadata.gz: 4ce087a2af93f2850fe44c5ac06c4c86cdc2f1acccb399c08c3d36291a8806dd9742b3f9d649b61bd9971afa79a2562aa639ff88c15dcb51a4b191a6c61ba2d3
7
- data.tar.gz: 99e49fd89f9e81c6ca614a2181d16f7c634fdd3aa76486ab924eceb6b5783e5ae268367cdbaa05a6a548aaa6a1812f9d1b4825c1a1befda45a9f69903033d291
6
+ metadata.gz: c55a5fa322591602ca3cddc1ece2cd62bf9e473b7c02af6f52cae1a70c217d1b7d60d40a2313e4d93b6f7e02733cccdb93eba45f5754d3c2d6fb6c886fe26855
7
+ data.tar.gz: 611f31f00ff8ffb80af259252e13ae96d8b8ff550cddc6fcbe92eeffb65ead3e10a55ff39f048362c9722da03e2bcef90051bb6d24ceb83573561f50789b339f
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- transact_pro (0.9.2)
4
+ transact_pro (0.9.3)
5
5
  rest-client (~> 2.0.2)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -50,7 +50,10 @@ gem 'transact_pro'
50
50
  The gem implements `gateway`, `request` and `response` objects that handle communication with the remote API for you.
51
51
  All communication is done synchroniously and without failsafes, so if something goes wrong during the remote request (HTTP timeout etc.), you get the raw error and get to handle it.
52
52
 
53
- Please note that in this gem all configuration option hash keys are constant-case symbols like `:GUID` whereas all parameter keys for requests to the API are snake-case symbols like `:merchant_transaction_id`.
53
+ Consult `lib/transact_pro/request_specs.rb` for details
54
+ on what parameters the various requests expect.
55
+
56
+ Please note that in this gem all configuration option hash keys are constant-case symbols like `:GUID` whereas all parameter keys for requests to the API are snake-case symbols like `:merchant_transaction_id`. Make sure all values are `String`s.
54
57
 
55
58
  ### 1. `TransactPro::Gateway`
56
59
 
@@ -81,6 +84,9 @@ options = {
81
84
  }
82
85
 
83
86
  gateway = TransactPro::Gateway.new(options)
87
+
88
+ # Access an initialized gateway instance's underlying options, for example
89
+ gateway.options[:HOSTED_FIELDS_JS_URI] # for HostedFields
84
90
  ```
85
91
 
86
92
  ### 2. `TransactPro::Request`
@@ -90,6 +96,8 @@ Use the `Gateway` instance's `#request` method to build and perform requests.
90
96
  ```rb
91
97
  options = {
92
98
  method: :status_request, # mandatory, exclusively symbol objects for value
99
+ # + request parameters from `lib/transact_pro/request_specs.rb`
100
+
93
101
  request_type: 'transaction_status',
94
102
  init_transaction_id: "abc123",
95
103
  # Note that passing :guid and :pwd is possible and `#call` will always override
@@ -103,9 +111,8 @@ options = {
103
111
  }
104
112
 
105
113
  request_instance = gateway.request(options)
114
+ request_instance.details #=> {url: "...", params: {...}} # see what will be POSTed to where
106
115
  request_instance.call #=> response
107
-
108
- # TransactPro::Request instances also have #to_s method to inspect what parameters are used in the request.
109
116
  ```
110
117
 
111
118
  ### 3. `TransactPro::Response`
@@ -25,6 +25,16 @@ class TransactPro::Request
25
25
  end
26
26
 
27
27
  def call
28
+ # does prep
29
+ details
30
+
31
+ @raw_response = RestClient.post(@url, @postable_params)
32
+ @response = TransactPro::Response.new(@raw_response.to_s)
33
+ end
34
+
35
+ def details
36
+ return @details if defined?(@details)
37
+
28
38
  @defaults ||= TransactPro::RequestSpecs.const_get(
29
39
  "#{method.to_s.upcase}_DEFAULTS"
30
40
  )
@@ -58,11 +68,11 @@ class TransactPro::Request
58
68
 
59
69
  @url = "#{@request_options[:API_URI]}?a=#{sendable_method}"
60
70
 
61
- @raw_response = RestClient.post(@url, @postable_params)
62
- @response = TransactPro::Response.new(@raw_response.to_s)
71
+ @details = {url: @url, params: @postable_params}
63
72
  end
64
73
 
65
74
  private
75
+
66
76
  def validate(key, string, regex)
67
77
  unless string[regex]
68
78
  raise TransactPro::Request::ValidationError.new(
@@ -40,6 +40,7 @@ module TransactPro
40
40
  BIN_PHONE = %r'\A[0-9\-_]{3,25}\z' # ns(3..25)
41
41
  MERCHANT_SITE_URL = %r'\A.{1,255}\z' # ans(1..255)
42
42
  MERCHANT_REFERRING_NAME = %r'\A.{1,21}\z' # ans(1..21)
43
+ BACK_URL = %r'\A.{1,255}\z' # ans(1..255)
43
44
  F_EXTENDED = %r'\A\d+\z' # n
44
45
 
45
46
  # 10. Table
@@ -72,7 +73,10 @@ module TransactPro
72
73
  # merchant_site_url ans(1..255) Purchase site URL.
73
74
  # merchant_referring_name ans(1..21) Must not be send by default. See chapter 3.5 for description if you need
74
75
  # to use it.
76
+ # custom_return_url ans(1..255) Custom return URL
77
+ # custom_callback_url ans(1..255) Custom callback URL
75
78
  INIT_SPEC = {
79
+ # method: :init
76
80
  guid: {mandatory: true, format: GUID_REGEX},
77
81
  pwd: {mandatory: true, format: PASSWORD_DIGEST_REGEX},
78
82
  rs: {mandatory: true, format: ROUTING_REGEX},
@@ -93,7 +97,9 @@ module TransactPro
93
97
  bin_name: {mandatory: false, format: BIN_NAME},
94
98
  bin_phone: {mandatory: false, format: BIN_PHONE},
95
99
  merchant_site_url: {mandatory: true, format: MERCHANT_SITE_URL},
96
- merchant_referring_name: {mandatory: false, format: MERCHANT_REFERRING_NAME}
100
+ merchant_referring_name: {mandatory: false, format: MERCHANT_REFERRING_NAME},
101
+ custom_return_url: {mandatory: false, format: BACK_URL},
102
+ custom_callback_url: {mandatory: false, format: BACK_URL}
97
103
  }.freeze
98
104
 
99
105
  INIT_DEFAULTS = {
@@ -103,6 +109,7 @@ module TransactPro
103
109
  }.freeze
104
110
 
105
111
  INIT_RECURRING_REGISTRATION_SPEC = INIT_SPEC.
112
+ # method: :init_recurring_registration
106
113
  dup.merge(save_card: {mandatory: true, format: %r'\d+'}).freeze
107
114
  INIT_RECURRING_REGISTRATION_DEFAULTS = INIT_DEFAULTS.
108
115
  dup.merge(save_card: "1").freeze
@@ -117,6 +124,7 @@ module TransactPro
117
124
  # amount n Transaction amount, in MINOR units (i.e. 2150 for $21.50 transaction)
118
125
  # description uns(5..255) Order items description
119
126
  INIT_RECURRENT_SPEC = {
127
+ # method: :init_recurrent
120
128
  guid: {mandatory: true, format: GUID_REGEX},
121
129
  pwd: {mandatory: true, format: PASSWORD_DIGEST_REGEX},
122
130
  rs: {mandatory: true, format: ROUTING_REGEX},
@@ -135,6 +143,7 @@ module TransactPro
135
143
  # init_transaction_id h(40) init_transaction_id received for this recurrent transaction
136
144
  # f_extended n Return extended charge details (optional)
137
145
  CHARGE_RECURRENT_SPEC = {
146
+ # method: :charge_recurrent
138
147
  guid: {mandatory: true, format: GUID_REGEX},
139
148
  pwd: {mandatory: true, format: PASSWORD_DIGEST_REGEX},
140
149
  init_transaction_id: {mandatory: true, format: TID_REGEX},
@@ -154,6 +163,7 @@ module TransactPro
154
163
  # guid ans(19) Your GUID
155
164
  # pwd h(40) SHA1 hash of your processing password
156
165
  STATUS_REQUEST_SPEC = {
166
+ # method: :status_request
157
167
  guid: {mandatory: true, format: GUID_REGEX},
158
168
  pwd: {mandatory: true, format: PASSWORD_DIGEST_REGEX},
159
169
  request_type: {mandatory: true, format: 'transaction_status'},
@@ -1,3 +1,3 @@
1
1
  module TransactPro
2
- VERSION = "0.9.2"
2
+ VERSION = "0.9.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: transact_pro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.2
4
+ version: 0.9.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Epigene