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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dca31bfa111626fd5bb545355e8e5153fcc5802506f0ff0130d42ec7684e4010
4
- data.tar.gz: 891a67cb4eddc687c65b34cf914768539018a0265b94003c3d0f03493c360ebd
3
+ metadata.gz: af402d3182a2ffe4228ff8bf33d23508346e78206deecfdfed0ebbae25972094
4
+ data.tar.gz: 68e1d8e5fa0d5a60b6d7d8f0d790e9b787ff863ea9fb53c504734139cf44f9e6
5
5
  SHA512:
6
- metadata.gz: 44b4c9251a44965e922280d21b56e802564953048e2dd7216c58c206f3c1b7fcbd90bb71afcfb0577ee7106eafeebd0656183c593c80af6b761eba3214506f1c
7
- data.tar.gz: f10b0d58c5f0b85a100c7925e3fd035b009e35cc7297ae212fba36ff74d81de5f0b53ee8efbf9696a500499742bba65a710283e85f3f185c876dafe003808adb
6
+ metadata.gz: 6d0150f58902edfb0489fa0d7731b73cd4c8807b7a2cd3c62a2811e6570de7a7ff1529d45a54409be0798cf4ba16d5675fc25075362830fdf706d325d4fdacaf
7
+ data.tar.gz: 04ffc89cd51916fe539873b24fd3d072312c2ecd1cb0fc146e523e4a69ccce2972cead0fedbf28b170162310802dc7ac176599ea3ebd9d5ef3664523ab73af6b
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- africastalking-ruby (2.1.0)
4
+ africastalking-ruby (2.1.1)
5
5
  httparty (= 0.16.1)
6
6
 
7
7
  GEM
@@ -116,4 +116,4 @@ DEPENDENCIES
116
116
  rubocop (~> 0.54.0)
117
117
 
118
118
  BUNDLED WITH
119
- 1.16.1
119
+ 1.16.2
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 metadata)
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
@@ -1,3 +1,3 @@
1
1
  module AfricasTalking
2
- VERSION = "2.1.0"
2
+ VERSION = "2.1.1.beta.0"
3
3
  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: 2018-08-07 00:00:00.000000000 Z
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: '0'
154
+ version: 1.3.1
155
155
  requirements: []
156
156
  rubyforge_project:
157
- rubygems_version: 2.7.3
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