africastalking-ruby 2.1.0 → 2.1.1.beta.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +2 -2
- data/README.md +1 -0
- data/lib/AfricasTalking/Payments.rb +47 -5
- data/lib/AfricasTalking/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: af402d3182a2ffe4228ff8bf33d23508346e78206deecfdfed0ebbae25972094
|
4
|
+
data.tar.gz: 68e1d8e5fa0d5a60b6d7d8f0d790e9b787ff863ea9fb53c504734139cf44f9e6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6d0150f58902edfb0489fa0d7731b73cd4c8807b7a2cd3c62a2811e6570de7a7ff1529d45a54409be0798cf4ba16d5675fc25075362830fdf706d325d4fdacaf
|
7
|
+
data.tar.gz: 04ffc89cd51916fe539873b24fd3d072312c2ecd1cb0fc146e523e4a69ccce2972cead0fedbf28b170162310802dc7ac176599ea3ebd9d5ef3664523ab73af6b
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -281,6 +281,7 @@ payments.mobileCheckout options
|
|
281
281
|
- `currencyCode`: 3-digit ISO format currency code (e.g `KES`, `USD`, `UGX` etc.) `REQUIRED`
|
282
282
|
- `amount`: This is the amount. `REQUIRED`
|
283
283
|
- `metadata`: Some optional data to associate with transaction.`OPTIONAL`
|
284
|
+
- `providerChannel`: This represents the payment channel the payment will be made from. eg paybill number. The payment channel must be mapped to you. The AfricasTalking default provider channel is used if not specified.`OPTIONAL`
|
284
285
|
|
285
286
|
#### Mobile B2C
|
286
287
|
```ruby
|
@@ -39,15 +39,16 @@ class Payments
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def mobileCheckout options
|
42
|
-
validateParamsPresence? options, %w(productName phoneNumber currencyCode amount
|
42
|
+
validateParamsPresence? options, %w(productName phoneNumber currencyCode amount)
|
43
43
|
parameters = {
|
44
44
|
'username' => @username,
|
45
45
|
'productName' => options['productName'],
|
46
46
|
'phoneNumber' => options['phoneNumber'],
|
47
47
|
'currencyCode' => options['currencyCode'],
|
48
|
-
'amount' => options['amount']
|
49
|
-
'metadata' => options['metadata']
|
48
|
+
'amount' => options['amount']
|
50
49
|
}
|
50
|
+
parameters['providerChannel'] = options['providerChannel'] if !(options['providerChannel'].nil? || options['providerChannel'].empty?)
|
51
|
+
parameters['metadata'] = options['metadata'] if !(options['metadata'].nil? || options['metadata'].empty?)
|
51
52
|
url = getMobilePaymentCheckoutUrl()
|
52
53
|
response = sendJSONRequest(url, parameters)
|
53
54
|
if @response_code == HTTP_CREATED
|
@@ -110,6 +111,30 @@ class Payments
|
|
110
111
|
raise AfricasTalkingException, response
|
111
112
|
end
|
112
113
|
|
114
|
+
def mobileData options
|
115
|
+
validateParamsPresence? options, %w(productName, recipients)
|
116
|
+
parameters = {
|
117
|
+
'username' => @username,
|
118
|
+
'productName' => options['productName'],
|
119
|
+
'recipients' => options['recipients']
|
120
|
+
}
|
121
|
+
url = getMobileDataUrl()
|
122
|
+
response = sendJSONRequest(url, parameters)
|
123
|
+
if (@response_code == HTTP_CREATED)
|
124
|
+
resultObj = JSON.parse(response, :quirky_mode =>true)
|
125
|
+
if (resultObj['entries'].length > 0)
|
126
|
+
results = resultObj['entries'].collect{ |data|
|
127
|
+
MobileDataResponse.new data['phoneNumber'], data['provider'], data['status'], data['transactionId'], data['value'], data['errorMessage']
|
128
|
+
}
|
129
|
+
#
|
130
|
+
return results
|
131
|
+
end
|
132
|
+
|
133
|
+
raise AfricasTalkingException, resultObj['errorMessage']
|
134
|
+
end
|
135
|
+
raise AfricasTalkingException, response
|
136
|
+
end
|
137
|
+
|
113
138
|
def bankCheckoutCharge options
|
114
139
|
validateParamsPresence? options, %w(bankAccount productName currencyCode amount narration metadata)
|
115
140
|
parameters = {
|
@@ -380,6 +405,10 @@ class Payments
|
|
380
405
|
return getPaymentHost() + "/mobile/b2c/request"
|
381
406
|
end
|
382
407
|
|
408
|
+
def getMobileDataUrl()
|
409
|
+
return getPaymentHost() + "/mobile/data/request"
|
410
|
+
end
|
411
|
+
|
383
412
|
def getMobilePaymentB2BUrl()
|
384
413
|
return getPaymentHost() + "/mobile/b2b/request"
|
385
414
|
end
|
@@ -452,7 +481,20 @@ class MobileB2CResponse
|
|
452
481
|
@transactionId = transactionId_
|
453
482
|
@errorMessage = errorMessage_
|
454
483
|
end
|
455
|
-
end
|
484
|
+
end
|
485
|
+
|
486
|
+
class MobileDataResponse
|
487
|
+
attr_reader :phoneNumber, :provider, :status, :transactionId, :value, :errorMessage
|
488
|
+
|
489
|
+
def initialize phoneNumber_, provider_, status_, transactionId_, value_, errorMessage_
|
490
|
+
@phoneNumber = phoneNumber_
|
491
|
+
@provider = provider_
|
492
|
+
@status = status_
|
493
|
+
@transactionId = transactionId_
|
494
|
+
@value = value_
|
495
|
+
@errorMessage = errorMessage_
|
496
|
+
end
|
497
|
+
end
|
456
498
|
|
457
499
|
class MobileB2BResponse
|
458
500
|
attr_reader :status, :transactionId, :transactionFee, :providerChannel, :errorMessage
|
@@ -637,4 +679,4 @@ class TransactionData
|
|
637
679
|
@transactionId = transactionId_
|
638
680
|
@creationTime = creationTime_
|
639
681
|
end
|
640
|
-
end
|
682
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: africastalking-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.0
|
4
|
+
version: 2.1.1.beta.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Mwirigi
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-08-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -149,12 +149,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
149
149
|
version: '0'
|
150
150
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
151
151
|
requirements:
|
152
|
-
- - "
|
152
|
+
- - ">"
|
153
153
|
- !ruby/object:Gem::Version
|
154
|
-
version:
|
154
|
+
version: 1.3.1
|
155
155
|
requirements: []
|
156
156
|
rubyforge_project:
|
157
|
-
rubygems_version: 2.7.
|
157
|
+
rubygems_version: 2.7.7
|
158
158
|
signing_key:
|
159
159
|
specification_version: 4
|
160
160
|
summary: Simple gem that helps you build integrations with AfricasTalking
|