pesapal 1.5.5 → 1.5.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/README.md +1 -1
- data/lib/pesapal/oauth.rb +1 -1
- data/lib/pesapal/version.rb +1 -1
- data/pesapal.gemspec +3 -1
- data/spec/pesapal_merchant_spec.rb +92 -78
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 066f9356c08b057b12dee36ca4c18ac4ce6e4b2e
|
4
|
+
data.tar.gz: dd01f73ffa683da11339838be6d73ee1244d6619
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d86aba866c7fe7ee64ca72c6f2a5f865d0d3da2b5f79cad59e71e9da575a09d5e98f7b8f25c3eefc652b71665da1366c66f12ad2f309c49c7992c140f3599324
|
7
|
+
data.tar.gz: 5a921459134fa6dd99ab76c3d58045e43ad6a20bc8b6d390e6dd17773e422a065701e95e49f5b307afbaf442611d8680a6eb8cc87ef9916db1977495ec48f01b
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -66,6 +66,6 @@ they want as long as they provide attribution and waive liability.
|
|
66
66
|
[6]: https://github.com/itsmrwave/pesapal-gem/releases/
|
67
67
|
[7]: http://kingori.co/
|
68
68
|
[8]: https://raw.githubusercontent.com/itsmrwave/pesapal-gem/master/LICENSE.md
|
69
|
-
[9]: http://rubydoc.info/gems/pesapal/
|
69
|
+
[9]: http://rubydoc.info/gems/pesapal/frames/file/README.md
|
70
70
|
[10]: http://mogetutu.com/
|
71
71
|
[11]: https://github.com/mogetutu
|
data/lib/pesapal/oauth.rb
CHANGED
@@ -74,7 +74,7 @@ module Pesapal
|
|
74
74
|
#
|
75
75
|
# @return [String] valid oAuth signature.
|
76
76
|
def self.generate_oauth_signature(http_method, absolute_url, params, consumer_secret, token_secret = nil)
|
77
|
-
digest = OpenSSL::Digest
|
77
|
+
digest = OpenSSL::Digest.new('sha1')
|
78
78
|
signature_base_string = generate_signature_base_string(http_method, absolute_url, params)
|
79
79
|
signing_key = generate_signing_key(consumer_secret, token_secret)
|
80
80
|
hmac = OpenSSL::HMAC.digest(digest, signing_key, signature_base_string)
|
data/lib/pesapal/version.rb
CHANGED
data/pesapal.gemspec
CHANGED
@@ -18,11 +18,13 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
|
+
spec.required_ruby_version = '>= 1.9.2'
|
22
|
+
|
21
23
|
spec.add_development_dependency 'bundler'
|
22
24
|
spec.add_development_dependency 'coveralls'
|
23
25
|
spec.add_development_dependency 'rake'
|
24
26
|
spec.add_development_dependency 'rspec'
|
25
27
|
spec.add_development_dependency 'webmock'
|
26
28
|
|
27
|
-
spec.
|
29
|
+
spec.add_runtime_dependency 'htmlentities'
|
28
30
|
end
|
@@ -19,10 +19,7 @@ describe Pesapal::Merchant do
|
|
19
19
|
end
|
20
20
|
|
21
21
|
it 'sets default credentials' do
|
22
|
-
expect(@pesapal.config).to eq(
|
23
|
-
:consumer_key => '<YOUR_CONSUMER_KEY>',
|
24
|
-
:consumer_secret => '<YOUR_CONSUMER_SECRET>'
|
25
|
-
})
|
22
|
+
expect(@pesapal.config).to eq(default_credentials)
|
26
23
|
end
|
27
24
|
|
28
25
|
it 'sets default order details' do
|
@@ -38,10 +35,7 @@ describe Pesapal::Merchant do
|
|
38
35
|
end
|
39
36
|
|
40
37
|
it 'sets endpoints for default environment' do
|
41
|
-
expect(@pesapal.set_env).to eq(
|
42
|
-
:querypaymentstatus=>'http://demo.pesapal.com/API/QueryPaymentStatus',
|
43
|
-
:querypaymentdetails=>'http://demo.pesapal.com/API/QueryPaymentDetails'
|
44
|
-
})
|
38
|
+
expect(@pesapal.set_env).to eq(demo_endpoints)
|
45
39
|
end
|
46
40
|
end
|
47
41
|
|
@@ -64,36 +58,39 @@ describe Pesapal::Merchant do
|
|
64
58
|
|
65
59
|
describe '#query_payment_status' do
|
66
60
|
|
61
|
+
before :each do
|
62
|
+
@request = stub_request(:get, /http:\/\/demo.pesapal.com\/API\/QueryPaymentStatus\?oauth_consumer_key=.*oauth_nonce=.*oauth_signature=.*oauth_signature_method=HMAC-SHA1&oauth_timestamp.*oauth_version=1.0&pesapal_merchant_reference=.*&pesapal_transaction_tracking_id=.*/)
|
63
|
+
end
|
64
|
+
|
67
65
|
it 'gets pending payment status' do
|
68
|
-
|
69
|
-
to_return(:status => 200, :body => 'pesapal_response_data=PENDING')
|
66
|
+
@request.to_return(:status => 200, :body => 'pesapal_response_data=PENDING')
|
70
67
|
expect(@pesapal.query_payment_status('merchant_reference', 'transaction_tracking_id')).to eq('PENDING')
|
71
68
|
end
|
72
69
|
|
73
70
|
it 'gets completed payment status' do
|
74
|
-
|
75
|
-
to_return(:status => 200, :body => 'pesapal_response_data=COMPLETED')
|
71
|
+
@request.to_return(:status => 200, :body => 'pesapal_response_data=COMPLETED')
|
76
72
|
expect(@pesapal.query_payment_status('merchant_reference', 'transaction_tracking_id')).to eq('COMPLETED')
|
77
73
|
end
|
78
74
|
|
79
75
|
it 'gets failed payment status' do
|
80
|
-
|
81
|
-
to_return(:status => 200, :body => 'pesapal_response_data=FAILED')
|
76
|
+
@request.to_return(:status => 200, :body => 'pesapal_response_data=FAILED')
|
82
77
|
expect(@pesapal.query_payment_status('merchant_reference', 'transaction_tracking_id')).to eq('FAILED')
|
83
78
|
end
|
84
79
|
|
85
80
|
it 'gets invalid payment status' do
|
86
|
-
|
87
|
-
to_return(:status => 200, :body => 'pesapal_response_data=INVALID')
|
81
|
+
@request.to_return(:status => 200, :body => 'pesapal_response_data=INVALID')
|
88
82
|
expect(@pesapal.query_payment_status('merchant_reference', 'transaction_tracking_id')).to eq('INVALID')
|
89
83
|
end
|
90
84
|
end
|
91
85
|
|
92
86
|
describe '#query_payment_details' do
|
93
87
|
|
88
|
+
before :each do
|
89
|
+
@request = stub_request(:get, /http:\/\/demo.pesapal.com\/API\/QueryPaymentDetails\?oauth_consumer_key=.*oauth_nonce=.*oauth_signature=.*oauth_signature_method=HMAC-SHA1&oauth_timestamp.*oauth_version=1.0&pesapal_merchant_reference=.*&pesapal_transaction_tracking_id=.*/)
|
90
|
+
end
|
91
|
+
|
94
92
|
it 'gets pending payment details' do
|
95
|
-
|
96
|
-
to_return(:status => 200, :body => 'pesapal_response_data=transaction_tracking_id,payment_method,payment_status,merchant_reference')
|
93
|
+
@request.to_return(:status => 200, :body => 'pesapal_response_data=transaction_tracking_id,payment_method,payment_status,merchant_reference')
|
97
94
|
expect(@pesapal.query_payment_details('merchant_reference', 'transaction_tracking_id')).to eq({ :method => 'payment_method',
|
98
95
|
:status => 'payment_status',
|
99
96
|
:merchant_reference => 'merchant_reference',
|
@@ -104,27 +101,27 @@ describe Pesapal::Merchant do
|
|
104
101
|
|
105
102
|
describe '#ipn_listener' do
|
106
103
|
|
104
|
+
before :each do
|
105
|
+
@request = stub_request(:get, /http:\/\/demo.pesapal.com\/API\/QueryPaymentStatus\?oauth_consumer_key=.*oauth_nonce=.*oauth_signature=.*oauth_signature_method=HMAC-SHA1&oauth_timestamp.*oauth_version=1.0&pesapal_merchant_reference=.*&pesapal_transaction_tracking_id=.*/)
|
106
|
+
end
|
107
|
+
|
107
108
|
it 'gets ipn response for pending status' do
|
108
|
-
|
109
|
-
to_return(:status => 200, :body => 'pesapal_response_data=PENDING')
|
109
|
+
@request.to_return(:status => 200, :body => 'pesapal_response_data=PENDING')
|
110
110
|
expect(@pesapal.ipn_listener('CHANGE', 'merchant_reference', 'transaction_tracking_id')).to eq({:status => 'PENDING', :response => nil})
|
111
111
|
end
|
112
112
|
|
113
113
|
it 'gets ipn response for completed status' do
|
114
|
-
|
115
|
-
to_return(:status => 200, :body => 'pesapal_response_data=COMPLETED')
|
114
|
+
@request.to_return(:status => 200, :body => 'pesapal_response_data=COMPLETED')
|
116
115
|
expect(@pesapal.ipn_listener('CHANGE', 'merchant_reference', 'transaction_tracking_id')).to eq({:status => 'COMPLETED', :response => 'pesapal_notification_type=CHANGE&pesapal_transaction_tracking_id=transaction_tracking_id&pesapal_merchant_reference=merchant_reference'})
|
117
116
|
end
|
118
117
|
|
119
118
|
it 'gets ipn response for failed status' do
|
120
|
-
|
121
|
-
to_return(:status => 200, :body => 'pesapal_response_data=FAILED')
|
119
|
+
@request.to_return(:status => 200, :body => 'pesapal_response_data=FAILED')
|
122
120
|
expect(@pesapal.ipn_listener('CHANGE', 'merchant_reference', 'transaction_tracking_id')).to eq({:status => 'FAILED', :response => 'pesapal_notification_type=CHANGE&pesapal_transaction_tracking_id=transaction_tracking_id&pesapal_merchant_reference=merchant_reference'})
|
123
121
|
end
|
124
122
|
|
125
123
|
it 'gets ipn response for invalid status' do
|
126
|
-
|
127
|
-
to_return(:status => 200, :body => 'pesapal_response_data=INVALID')
|
124
|
+
@request.to_return(:status => 200, :body => 'pesapal_response_data=INVALID')
|
128
125
|
expect(@pesapal.ipn_listener('CHANGE', 'merchant_reference', 'transaction_tracking_id')).to eq({:status => 'INVALID', :response => nil})
|
129
126
|
end
|
130
127
|
end
|
@@ -147,10 +144,7 @@ describe Pesapal::Merchant do
|
|
147
144
|
end
|
148
145
|
|
149
146
|
it 'sets credentials' do
|
150
|
-
expect(@pesapal.config).to eq(
|
151
|
-
:consumer_key => '<YOUR_CONSUMER_KEY>',
|
152
|
-
:consumer_secret => '<YOUR_CONSUMER_SECRET>'
|
153
|
-
})
|
147
|
+
expect(@pesapal.config).to eq(default_credentials)
|
154
148
|
end
|
155
149
|
|
156
150
|
it 'sets order details' do
|
@@ -166,10 +160,7 @@ describe Pesapal::Merchant do
|
|
166
160
|
end
|
167
161
|
|
168
162
|
it 'sets endpoints for environment' do
|
169
|
-
expect(@pesapal.set_env :development).to eq(
|
170
|
-
:querypaymentstatus=>'http://demo.pesapal.com/API/QueryPaymentStatus',
|
171
|
-
:querypaymentdetails=>'http://demo.pesapal.com/API/QueryPaymentDetails'
|
172
|
-
})
|
163
|
+
expect(@pesapal.set_env :development).to eq(demo_endpoints)
|
173
164
|
end
|
174
165
|
end
|
175
166
|
|
@@ -192,36 +183,39 @@ describe Pesapal::Merchant do
|
|
192
183
|
|
193
184
|
describe '#query_payment_status' do
|
194
185
|
|
186
|
+
before :each do
|
187
|
+
@request = stub_request(:get, /http:\/\/demo.pesapal.com\/API\/QueryPaymentStatus\?oauth_consumer_key=.*oauth_nonce=.*oauth_signature=.*oauth_signature_method=HMAC-SHA1&oauth_timestamp.*oauth_version=1.0&pesapal_merchant_reference=.*&pesapal_transaction_tracking_id=.*/)
|
188
|
+
end
|
189
|
+
|
195
190
|
it 'gets pending payment status' do
|
196
|
-
|
197
|
-
to_return(:status => 200, :body => 'pesapal_response_data=PENDING')
|
191
|
+
@request.to_return(:status => 200, :body => 'pesapal_response_data=PENDING')
|
198
192
|
expect(@pesapal.query_payment_status('merchant_reference', 'transaction_tracking_id')).to eq('PENDING')
|
199
193
|
end
|
200
194
|
|
201
195
|
it 'gets completed payment status' do
|
202
|
-
|
203
|
-
to_return(:status => 200, :body => 'pesapal_response_data=COMPLETED')
|
196
|
+
@request.to_return(:status => 200, :body => 'pesapal_response_data=COMPLETED')
|
204
197
|
expect(@pesapal.query_payment_status('merchant_reference', 'transaction_tracking_id')).to eq('COMPLETED')
|
205
198
|
end
|
206
199
|
|
207
200
|
it 'gets failed payment status' do
|
208
|
-
|
209
|
-
to_return(:status => 200, :body => 'pesapal_response_data=FAILED')
|
201
|
+
@request.to_return(:status => 200, :body => 'pesapal_response_data=FAILED')
|
210
202
|
expect(@pesapal.query_payment_status('merchant_reference', 'transaction_tracking_id')).to eq('FAILED')
|
211
203
|
end
|
212
204
|
|
213
205
|
it 'gets invalid payment status' do
|
214
|
-
|
215
|
-
to_return(:status => 200, :body => 'pesapal_response_data=INVALID')
|
206
|
+
@request.to_return(:status => 200, :body => 'pesapal_response_data=INVALID')
|
216
207
|
expect(@pesapal.query_payment_status('merchant_reference', 'transaction_tracking_id')).to eq('INVALID')
|
217
208
|
end
|
218
209
|
end
|
219
210
|
|
220
211
|
describe '#query_payment_details' do
|
221
212
|
|
213
|
+
before :each do
|
214
|
+
@request = stub_request(:get, /http:\/\/demo.pesapal.com\/API\/QueryPaymentDetails\?oauth_consumer_key=.*oauth_nonce=.*oauth_signature=.*oauth_signature_method=HMAC-SHA1&oauth_timestamp.*oauth_version=1.0&pesapal_merchant_reference=.*&pesapal_transaction_tracking_id=.*/)
|
215
|
+
end
|
216
|
+
|
222
217
|
it 'gets pending payment details' do
|
223
|
-
|
224
|
-
to_return(:status => 200, :body => 'pesapal_response_data=transaction_tracking_id,payment_method,payment_status,merchant_reference')
|
218
|
+
@request.to_return(:status => 200, :body => 'pesapal_response_data=transaction_tracking_id,payment_method,payment_status,merchant_reference')
|
225
219
|
expect(@pesapal.query_payment_details('merchant_reference', 'transaction_tracking_id')).to eq({ :method => 'payment_method',
|
226
220
|
:status => 'payment_status',
|
227
221
|
:merchant_reference => 'merchant_reference',
|
@@ -232,27 +226,27 @@ describe Pesapal::Merchant do
|
|
232
226
|
|
233
227
|
describe '#ipn_listener' do
|
234
228
|
|
229
|
+
before :each do
|
230
|
+
@request = stub_request(:get, /http:\/\/demo.pesapal.com\/API\/QueryPaymentStatus\?oauth_consumer_key=.*oauth_nonce=.*oauth_signature=.*oauth_signature_method=HMAC-SHA1&oauth_timestamp.*oauth_version=1.0&pesapal_merchant_reference=.*&pesapal_transaction_tracking_id=.*/)
|
231
|
+
end
|
232
|
+
|
235
233
|
it 'gets ipn response for pending status' do
|
236
|
-
|
237
|
-
to_return(:status => 200, :body => 'pesapal_response_data=PENDING')
|
234
|
+
@request.to_return(:status => 200, :body => 'pesapal_response_data=PENDING')
|
238
235
|
expect(@pesapal.ipn_listener('CHANGE', 'merchant_reference', 'transaction_tracking_id')).to eq({:status => 'PENDING', :response => nil})
|
239
236
|
end
|
240
237
|
|
241
238
|
it 'gets ipn response for completed status' do
|
242
|
-
|
243
|
-
to_return(:status => 200, :body => 'pesapal_response_data=COMPLETED')
|
239
|
+
@request.to_return(:status => 200, :body => 'pesapal_response_data=COMPLETED')
|
244
240
|
expect(@pesapal.ipn_listener('CHANGE', 'merchant_reference', 'transaction_tracking_id')).to eq({:status => 'COMPLETED', :response => 'pesapal_notification_type=CHANGE&pesapal_transaction_tracking_id=transaction_tracking_id&pesapal_merchant_reference=merchant_reference'})
|
245
241
|
end
|
246
242
|
|
247
243
|
it 'gets ipn response for failed status' do
|
248
|
-
|
249
|
-
to_return(:status => 200, :body => 'pesapal_response_data=FAILED')
|
244
|
+
@request.to_return(:status => 200, :body => 'pesapal_response_data=FAILED')
|
250
245
|
expect(@pesapal.ipn_listener('CHANGE', 'merchant_reference', 'transaction_tracking_id')).to eq({:status => 'FAILED', :response => 'pesapal_notification_type=CHANGE&pesapal_transaction_tracking_id=transaction_tracking_id&pesapal_merchant_reference=merchant_reference'})
|
251
246
|
end
|
252
247
|
|
253
248
|
it 'gets ipn response for invalid status' do
|
254
|
-
|
255
|
-
to_return(:status => 200, :body => 'pesapal_response_data=INVALID')
|
249
|
+
@request.to_return(:status => 200, :body => 'pesapal_response_data=INVALID')
|
256
250
|
expect(@pesapal.ipn_listener('CHANGE', 'merchant_reference', 'transaction_tracking_id')).to eq({:status => 'INVALID', :response => nil})
|
257
251
|
end
|
258
252
|
end
|
@@ -275,10 +269,7 @@ describe Pesapal::Merchant do
|
|
275
269
|
end
|
276
270
|
|
277
271
|
it 'sets credentials' do
|
278
|
-
expect(@pesapal.config).to eq(
|
279
|
-
:consumer_key => '<YOUR_CONSUMER_KEY>',
|
280
|
-
:consumer_secret => '<YOUR_CONSUMER_SECRET>'
|
281
|
-
})
|
272
|
+
expect(@pesapal.config).to eq(default_credentials)
|
282
273
|
end
|
283
274
|
|
284
275
|
it 'sets order details' do
|
@@ -294,10 +285,7 @@ describe Pesapal::Merchant do
|
|
294
285
|
end
|
295
286
|
|
296
287
|
it 'sets endpoints for environment' do
|
297
|
-
expect(@pesapal.set_env :production).to eq(
|
298
|
-
:querypaymentstatus=>'https://www.pesapal.com/API/QueryPaymentStatus',
|
299
|
-
:querypaymentdetails=>'https://www.pesapal.com/API/QueryPaymentDetails'
|
300
|
-
})
|
288
|
+
expect(@pesapal.set_env :production).to eq(production_endpoints)
|
301
289
|
end
|
302
290
|
end
|
303
291
|
|
@@ -320,36 +308,39 @@ describe Pesapal::Merchant do
|
|
320
308
|
|
321
309
|
describe '#query_payment_status' do
|
322
310
|
|
311
|
+
before :each do
|
312
|
+
@request = stub_request(:get, /https:\/\/www.pesapal.com\/API\/QueryPaymentStatus\?oauth_consumer_key=.*oauth_nonce=.*oauth_signature=.*oauth_signature_method=HMAC-SHA1&oauth_timestamp.*oauth_version=1.0&pesapal_merchant_reference=.*&pesapal_transaction_tracking_id=.*/)
|
313
|
+
end
|
314
|
+
|
323
315
|
it 'gets pending payment status' do
|
324
|
-
|
325
|
-
to_return(:status => 200, :body => 'pesapal_response_data=PENDING')
|
316
|
+
@request.to_return(:status => 200, :body => 'pesapal_response_data=PENDING')
|
326
317
|
expect(@pesapal.query_payment_status('merchant_reference', 'transaction_tracking_id')).to eq('PENDING')
|
327
318
|
end
|
328
319
|
|
329
320
|
it 'gets completed payment status' do
|
330
|
-
|
331
|
-
to_return(:status => 200, :body => 'pesapal_response_data=COMPLETED')
|
321
|
+
@request.to_return(:status => 200, :body => 'pesapal_response_data=COMPLETED')
|
332
322
|
expect(@pesapal.query_payment_status('merchant_reference', 'transaction_tracking_id')).to eq('COMPLETED')
|
333
323
|
end
|
334
324
|
|
335
325
|
it 'gets failed payment status' do
|
336
|
-
|
337
|
-
to_return(:status => 200, :body => 'pesapal_response_data=FAILED')
|
326
|
+
@request.to_return(:status => 200, :body => 'pesapal_response_data=FAILED')
|
338
327
|
expect(@pesapal.query_payment_status('merchant_reference', 'transaction_tracking_id')).to eq('FAILED')
|
339
328
|
end
|
340
329
|
|
341
330
|
it 'gets invalid payment status' do
|
342
|
-
|
343
|
-
to_return(:status => 200, :body => 'pesapal_response_data=INVALID')
|
331
|
+
@request.to_return(:status => 200, :body => 'pesapal_response_data=INVALID')
|
344
332
|
expect(@pesapal.query_payment_status('merchant_reference', 'transaction_tracking_id')).to eq('INVALID')
|
345
333
|
end
|
346
334
|
end
|
347
335
|
|
348
336
|
describe '#query_payment_details' do
|
349
337
|
|
338
|
+
before :each do
|
339
|
+
@request = stub_request(:get, /https:\/\/www.pesapal.com\/API\/QueryPaymentDetails\?oauth_consumer_key=.*oauth_nonce=.*oauth_signature=.*oauth_signature_method=HMAC-SHA1&oauth_timestamp.*oauth_version=1.0&pesapal_merchant_reference=.*&pesapal_transaction_tracking_id=.*/)
|
340
|
+
end
|
341
|
+
|
350
342
|
it 'gets pending payment details' do
|
351
|
-
|
352
|
-
to_return(:status => 200, :body => 'pesapal_response_data=transaction_tracking_id,payment_method,payment_status,merchant_reference')
|
343
|
+
@request.to_return(:status => 200, :body => 'pesapal_response_data=transaction_tracking_id,payment_method,payment_status,merchant_reference')
|
353
344
|
expect(@pesapal.query_payment_details('merchant_reference', 'transaction_tracking_id')).to eq({ :method => 'payment_method',
|
354
345
|
:status => 'payment_status',
|
355
346
|
:merchant_reference => 'merchant_reference',
|
@@ -360,29 +351,52 @@ describe Pesapal::Merchant do
|
|
360
351
|
|
361
352
|
describe '#ipn_listener' do
|
362
353
|
|
354
|
+
before :each do
|
355
|
+
@request = stub_request(:get, /https:\/\/www.pesapal.com\/API\/QueryPaymentStatus\?oauth_consumer_key=.*oauth_nonce=.*oauth_signature=.*oauth_signature_method=HMAC-SHA1&oauth_timestamp.*oauth_version=1.0&pesapal_merchant_reference=.*&pesapal_transaction_tracking_id=.*/)
|
356
|
+
end
|
357
|
+
|
363
358
|
it 'gets ipn response for pending status' do
|
364
|
-
|
365
|
-
to_return(:status => 200, :body => 'pesapal_response_data=PENDING')
|
359
|
+
@request.to_return(:status => 200, :body => 'pesapal_response_data=PENDING')
|
366
360
|
expect(@pesapal.ipn_listener('CHANGE', 'merchant_reference', 'transaction_tracking_id')).to eq({:status => 'PENDING', :response => nil})
|
367
361
|
end
|
368
362
|
|
369
363
|
it 'gets ipn response for completed status' do
|
370
|
-
|
371
|
-
to_return(:status => 200, :body => 'pesapal_response_data=COMPLETED')
|
364
|
+
@request.to_return(:status => 200, :body => 'pesapal_response_data=COMPLETED')
|
372
365
|
expect(@pesapal.ipn_listener('CHANGE', 'merchant_reference', 'transaction_tracking_id')).to eq({:status => 'COMPLETED', :response => 'pesapal_notification_type=CHANGE&pesapal_transaction_tracking_id=transaction_tracking_id&pesapal_merchant_reference=merchant_reference'})
|
373
366
|
end
|
374
367
|
|
375
368
|
it 'gets ipn response for failed status' do
|
376
|
-
|
377
|
-
to_return(:status => 200, :body => 'pesapal_response_data=FAILED')
|
369
|
+
@request.to_return(:status => 200, :body => 'pesapal_response_data=FAILED')
|
378
370
|
expect(@pesapal.ipn_listener('CHANGE', 'merchant_reference', 'transaction_tracking_id')).to eq({:status => 'FAILED', :response => 'pesapal_notification_type=CHANGE&pesapal_transaction_tracking_id=transaction_tracking_id&pesapal_merchant_reference=merchant_reference'})
|
379
371
|
end
|
380
372
|
|
381
373
|
it 'gets ipn response for invalid status' do
|
382
|
-
|
383
|
-
to_return(:status => 200, :body => 'pesapal_response_data=INVALID')
|
374
|
+
@request.to_return(:status => 200, :body => 'pesapal_response_data=INVALID')
|
384
375
|
expect(@pesapal.ipn_listener('CHANGE', 'merchant_reference', 'transaction_tracking_id')).to eq({:status => 'INVALID', :response => nil})
|
385
376
|
end
|
386
377
|
end
|
387
378
|
end
|
379
|
+
|
380
|
+
private
|
381
|
+
|
382
|
+
def default_credentials
|
383
|
+
{ :callback_url => 'http://0.0.0.0:3000/pesapal/callback',
|
384
|
+
:consumer_key => '<YOUR_CONSUMER_KEY>',
|
385
|
+
:consumer_secret => '<YOUR_CONSUMER_SECRET>'
|
386
|
+
}
|
387
|
+
end
|
388
|
+
|
389
|
+
def demo_endpoints
|
390
|
+
{ :postpesapaldirectorderv4 => 'http://demo.pesapal.com/API/PostPesapalDirectOrderV4',
|
391
|
+
:querypaymentstatus=>'http://demo.pesapal.com/API/QueryPaymentStatus',
|
392
|
+
:querypaymentdetails=>'http://demo.pesapal.com/API/QueryPaymentDetails'
|
393
|
+
}
|
394
|
+
end
|
395
|
+
|
396
|
+
def production_endpoints
|
397
|
+
{ :postpesapaldirectorderv4 => 'https://www.pesapal.com/API/PostPesapalDirectOrderV4',
|
398
|
+
:querypaymentstatus=>'https://www.pesapal.com/API/QueryPaymentStatus',
|
399
|
+
:querypaymentdetails=>'https://www.pesapal.com/API/QueryPaymentDetails'
|
400
|
+
}
|
401
|
+
end
|
388
402
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pesapal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.
|
4
|
+
version: 1.5.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Job King'ori Maina
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-04-
|
11
|
+
date: 2014-04-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -137,7 +137,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
137
137
|
requirements:
|
138
138
|
- - '>='
|
139
139
|
- !ruby/object:Gem::Version
|
140
|
-
version:
|
140
|
+
version: 1.9.2
|
141
141
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
143
|
- - '>='
|