worldpay 1.0.4 → 1.0.5

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: 20cbed5cfe20208a51c49208f69b27822c694495
4
- data.tar.gz: ababe1423feb1bf1cc424685522f5f3c5edaa7fa
3
+ metadata.gz: e92644d37cb8da4444775fd15e0baa0499324e37
4
+ data.tar.gz: 05d4eb59966c00ca06031043c3afe56f398a2454
5
5
  SHA512:
6
- metadata.gz: b7c34cd032e0ce74db5ef717048eb35fd40b600723202a50f2875d70643d7ca9eebacd180445ac3e752e4385e0e2dc18165b8510e92cd9cf361d6eccc29447bf
7
- data.tar.gz: ccad3df3e536835d4a50babf774459a878c6f4fb1517a503dd87ed255d20de35380a23d85d6bda0c37080ab0ed20806d35535130572bcb914475e1b3f858c86a
6
+ metadata.gz: 4d768380d5dd922350c15793d05d91e0c8aaf38fe19f44a6617c6a76b9627301cdf4e4987e408b37c47e0c0ef5438cf941c48b161d59e35396535839e6933558
7
+ data.tar.gz: 027ffd22c1f2ab8e4af06c5891c12f53bc0439cf2a3b875e48d89b2fd7b5855aea6457e64740af1ca5643dd0acd2c3f18542e4e5614c4f042787455ea8a23391
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- worldpay (0.0.1)
4
+ worldpay (1.0.4)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -14,7 +14,7 @@ class Worldpay
14
14
  @errors = {}
15
15
  @raise_errors = true
16
16
 
17
- @version = '1.0.4'
17
+ @version = '1.0.5'
18
18
 
19
19
 
20
20
  def initialize(service_key='', timeout=3, raise_errors=true)
@@ -59,6 +59,11 @@ class Worldpay
59
59
  end
60
60
 
61
61
 
62
+ def setEndpoint(endpoint)
63
+ @endpoint = endpoint
64
+ end
65
+
66
+
62
67
  #Disable SSL Check ~ Use only for testing!
63
68
  def disableSSLCheck(disable = false)
64
69
  @disable_ssl = disable
@@ -139,19 +144,30 @@ class Worldpay
139
144
  fmt = "%05.2f" % order['amount']
140
145
  cost_cents = fmt.split('.').join('')
141
146
 
142
- json = {
147
+ request = {
143
148
  'token' => order['token'],
144
149
  'orderDescription' => order['orderDescription'],
145
150
  'amount' => cost_cents,
151
+ 'is3DSOrder' => order['3DS'],
146
152
  'currencyCode' => order['currencyCode'],
147
153
  'name' => order['name'],
148
154
  'orderType' => order['orderType'],
149
155
  'billingAddress' => order['billingAddress'],
150
156
  'customerOrderCode' => order['customerOrderCode'],
151
157
  'customerIdentifiers' => order['customerIdentifiers']
152
- }.to_json
158
+ }
153
159
 
154
- response = sendRequest('orders', json, true)
160
+ if(request['is3DSOrder'] == true)
161
+ threeDsInfo = {
162
+ 'shopperIpAddress' => order['shopperIpAddress'],
163
+ 'shopperSessionId' => order['shopperSessionId'],
164
+ 'shopperUserAgent' => order['shopperUserAgent'],
165
+ 'shopperAcceptHeader' => order['shopperAcceptHeader']
166
+ }
167
+ request.merge!(threeDsInfo)
168
+ end
169
+
170
+ response = sendRequest('orders', request.to_json, true)
155
171
 
156
172
  if (response['body']['orderCode'])
157
173
  #success
@@ -162,12 +178,36 @@ class Worldpay
162
178
 
163
179
  end
164
180
 
181
+ def authorise3DSOrder(orderCode, responseCode, threeDsInfo)
182
+ request = {
183
+ 'threeDSResponseCode' => responseCode,
184
+ 'shopperSessionId' => threeDsInfo['shopperSessionId'],
185
+ 'shopperAcceptHeader' => threeDsInfo['shopperAcceptHeader'],
186
+ 'shopperUserAgent' => threeDsInfo['shopperUserAgent'],
187
+ 'shopperIpAddress' => threeDsInfo['shopperIpAddress']
188
+ }
189
+
190
+ response = sendRequest('orders/'+orderCode, request.to_json, true, 'PUT')
191
+
192
+ if (response['body']['orderCode'])
193
+ #success
194
+ return response
195
+ else
196
+ onError('apierror', response.to_s)
197
+ end
198
+ end
199
+
165
200
  #Refund Worldpay order
166
- def refundOrder(orderCode=false)
201
+ def refundOrder(orderCode=false, amount=false)
167
202
  if (orderCode==false || orderCode!=orderCode.to_s)
168
203
  onError('ip', @errors['refund']['ordercode'])
169
204
  end
170
- sendRequest('orders/'+orderCode+'/refund')
205
+ if (amount!=false)
206
+ json = {'refundAmount'=>amount}.to_json
207
+ else
208
+ json = false
209
+ end
210
+ sendRequest('orders/'+orderCode+'/refund', json)
171
211
  end
172
212
 
173
213
 
@@ -176,9 +216,8 @@ class Worldpay
176
216
 
177
217
  #REQUESTS
178
218
  def sendRequest(action='', json=false, expectResponse=false, method='POST')
179
- url = @endpoint
219
+ net = Net::HTTP.new(@endpoint, '443')
180
220
 
181
- net = Net::HTTP.new(url, "443")
182
221
  if (method=="POST")
183
222
  request = Net::HTTP::Post.new('/v1/'+action)
184
223
  elsif (method=="GET")
@@ -241,6 +280,7 @@ class Worldpay
241
280
 
242
281
  response = sendRequest('tokens/'+token, false, true, 'GET')
243
282
 
283
+
244
284
  if (response['body']['paymentMethod'])
245
285
  return response['body']['paymentMethod']
246
286
  else
Binary file
Binary file
Binary file
Binary file
@@ -4,8 +4,8 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "worldpay"
7
- spec.version = "1.0.4"
8
- spec.authors = ["Andrew Odendaal"]
7
+ spec.version = "1.0.5"
8
+ spec.authors = ["Andrew Odendaal, Paul Beckford"]
9
9
  spec.email = ["andrew.odendaal@worldpay.com"]
10
10
  spec.summary = %q{online.worldpay.com ruby lib.}
11
11
  spec.description = %q{Official online.worldpay.com ruby library.}
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: worldpay
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
- - Andrew Odendaal
7
+ - Andrew Odendaal, Paul Beckford
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-15 00:00:00.000000000 Z
11
+ date: 2015-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -59,6 +59,10 @@ files:
59
59
  - worldpay-0.0.2.gem
60
60
  - worldpay-0.0.3.gem
61
61
  - worldpay-1.0.0.gem
62
+ - worldpay-1.0.1.gem
63
+ - worldpay-1.0.2.gem
64
+ - worldpay-1.0.3.gem
65
+ - worldpay-1.0.4.gem
62
66
  - worldpay.gemspec
63
67
  homepage: https://online.worldpay.com
64
68
  licenses: