mpesa_stk 1.2.1.1 → 2.0.0
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/.github/workflows/codeql-analysis.yml +70 -0
- data/.github/workflows/cop.yml +18 -14
- data/.rubocop.yml +62 -0
- data/.sample.env +23 -1
- data/CHANGELOG.md +244 -0
- data/Gemfile +4 -2
- data/Gemfile.lock +81 -38
- data/README.md +1001 -32
- data/Rakefile +8 -6
- data/SECURITY.md +21 -0
- data/bin/console +4 -3
- data/lib/mpesa_stk/access_token.rb +58 -26
- data/lib/mpesa_stk/account_balance.rb +142 -0
- data/lib/mpesa_stk/b2b.rb +153 -0
- data/lib/mpesa_stk/b2c.rb +151 -0
- data/lib/mpesa_stk/c2b.rb +127 -0
- data/lib/mpesa_stk/imsi.rb +70 -0
- data/lib/mpesa_stk/iot.rb +206 -0
- data/lib/mpesa_stk/pull_transactions.rb +126 -0
- data/lib/mpesa_stk/push.rb +160 -0
- data/lib/mpesa_stk/push_payment.rb +49 -21
- data/lib/mpesa_stk/ratiba.rb +118 -0
- data/lib/mpesa_stk/reversal.rb +147 -0
- data/lib/mpesa_stk/stk_push_query.rb +109 -0
- data/lib/mpesa_stk/transaction_status.rb +145 -0
- data/lib/mpesa_stk/version.rb +25 -1
- data/lib/mpesa_stk.rb +38 -1
- data/mpesa_stk.gemspec +33 -21
- metadata +117 -44
data/lib/mpesa_stk.rb
CHANGED
|
@@ -1,4 +1,41 @@
|
|
|
1
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Copyright (c) 2018 mboya
|
|
4
|
+
#
|
|
5
|
+
# MIT License
|
|
6
|
+
#
|
|
7
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
8
|
+
# of this software and associated documentation files (the "Software"), to deal
|
|
9
|
+
# in the Software without restriction, including without limitation the rights
|
|
10
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
+
# copies of the Software, and to permit persons to whom the Software is
|
|
12
|
+
# furnished to do so, subject to the following conditions:
|
|
13
|
+
#
|
|
14
|
+
# The above copyright notice and this permission notice shall be included in
|
|
15
|
+
# all copies or substantial portions of the Software.
|
|
16
|
+
#
|
|
17
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
21
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
23
|
+
# THE SOFTWARE.
|
|
24
|
+
|
|
25
|
+
require 'mpesa_stk/version'
|
|
2
26
|
require 'mpesa_stk/push_payment'
|
|
27
|
+
require 'mpesa_stk/push'
|
|
28
|
+
require 'mpesa_stk/transaction_status'
|
|
29
|
+
require 'mpesa_stk/stk_push_query'
|
|
30
|
+
require 'mpesa_stk/b2c'
|
|
31
|
+
require 'mpesa_stk/b2b'
|
|
32
|
+
require 'mpesa_stk/c2b'
|
|
33
|
+
require 'mpesa_stk/account_balance'
|
|
34
|
+
require 'mpesa_stk/reversal'
|
|
35
|
+
require 'mpesa_stk/ratiba'
|
|
36
|
+
require 'mpesa_stk/iot'
|
|
37
|
+
require 'mpesa_stk/imsi'
|
|
38
|
+
require 'mpesa_stk/pull_transactions'
|
|
3
39
|
require 'dotenv/load'
|
|
4
40
|
require 'httparty'
|
|
41
|
+
require 'securerandom'
|
data/mpesa_stk.gemspec
CHANGED
|
@@ -1,36 +1,48 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
|
|
2
|
-
lib = File.expand_path(
|
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
|
3
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
-
require
|
|
5
|
+
require 'mpesa_stk/version'
|
|
5
6
|
|
|
6
7
|
Gem::Specification.new do |spec|
|
|
7
|
-
spec.name =
|
|
8
|
+
spec.name = 'mpesa_stk'
|
|
8
9
|
spec.version = MpesaStk::VERSION
|
|
9
|
-
spec.authors = [
|
|
10
|
-
spec.email = [
|
|
10
|
+
spec.authors = %w[mboya cess]
|
|
11
|
+
spec.email = ['mboyaberry@gmail.com', 'cessmbuguar@gmail.com']
|
|
11
12
|
|
|
12
|
-
spec.summary =
|
|
13
|
-
spec.description =
|
|
14
|
-
spec.homepage =
|
|
15
|
-
spec.license =
|
|
13
|
+
spec.summary = 'Lipa na M-Pesa Online Payment.'
|
|
14
|
+
spec.description = 'initiate a M-Pesa transaction on behalf of a customer using STK Push.'
|
|
15
|
+
spec.homepage = 'https://github.com/mboya/mpesa_stk'
|
|
16
|
+
spec.license = 'MIT'
|
|
16
17
|
|
|
17
|
-
spec.
|
|
18
|
+
spec.required_ruby_version = '>= 2.6.0'
|
|
19
|
+
|
|
20
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
|
18
21
|
f.match(%r{^(test|spec|features)/})
|
|
19
22
|
end
|
|
20
|
-
spec.bindir =
|
|
23
|
+
spec.bindir = 'exe'
|
|
21
24
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
22
|
-
spec.require_paths = [
|
|
25
|
+
spec.require_paths = ['lib']
|
|
23
26
|
|
|
24
|
-
spec.
|
|
25
|
-
spec.
|
|
27
|
+
spec.metadata['homepage_uri'] = spec.homepage
|
|
28
|
+
spec.metadata['source_code_uri'] = "#{spec.homepage}.git"
|
|
29
|
+
spec.metadata['changelog_uri'] = "#{spec.homepage}/blob/master/CHANGELOG.md"
|
|
30
|
+
spec.metadata['rubygems_mfa_required'] = 'true'
|
|
31
|
+
|
|
32
|
+
spec.add_dependency 'base64', '>= 0.1.0'
|
|
33
|
+
spec.add_dependency 'csv', '>= 3.0.0'
|
|
34
|
+
spec.add_dependency 'httparty', '>= 0.15.6', '< 0.22.0'
|
|
35
|
+
spec.add_dependency 'redis', '>= 4.0'
|
|
26
36
|
spec.add_dependency 'redis-namespace', '~> 1.5', '>= 1.5.3'
|
|
37
|
+
spec.add_dependency 'redis-rack', '~> 2.0', '>= 2.0.2'
|
|
27
38
|
|
|
28
|
-
spec.add_development_dependency
|
|
29
|
-
spec.add_development_dependency
|
|
30
|
-
spec.add_development_dependency
|
|
39
|
+
spec.add_development_dependency 'bundler', '~> 2.0'
|
|
40
|
+
spec.add_development_dependency 'minitest', '~> 5.20'
|
|
41
|
+
spec.add_development_dependency 'rake', '>= 12.3.3'
|
|
31
42
|
|
|
32
|
-
spec.add_development_dependency '
|
|
33
|
-
spec.add_development_dependency 'pry
|
|
34
|
-
spec.add_development_dependency '
|
|
35
|
-
spec.add_development_dependency
|
|
43
|
+
spec.add_development_dependency 'dotenv', '~> 2.8'
|
|
44
|
+
spec.add_development_dependency 'pry', '~> 0.12'
|
|
45
|
+
spec.add_development_dependency 'pry-nav', '~> 0.3'
|
|
46
|
+
spec.add_development_dependency 'rubocop', '~> 1.0'
|
|
47
|
+
spec.add_development_dependency 'webmock', '~> 3.18'
|
|
36
48
|
end
|
metadata
CHANGED
|
@@ -1,50 +1,77 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mpesa_stk
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 2.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- mboya
|
|
8
8
|
- cess
|
|
9
|
-
autorequire:
|
|
10
9
|
bindir: exe
|
|
11
10
|
cert_chain: []
|
|
12
|
-
date:
|
|
11
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
13
12
|
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: base64
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - ">="
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: 0.1.0
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - ">="
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: 0.1.0
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: csv
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - ">="
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: 3.0.0
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - ">="
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: 3.0.0
|
|
14
41
|
- !ruby/object:Gem::Dependency
|
|
15
42
|
name: httparty
|
|
16
43
|
requirement: !ruby/object:Gem::Requirement
|
|
17
44
|
requirements:
|
|
18
|
-
- - "
|
|
45
|
+
- - ">="
|
|
19
46
|
- !ruby/object:Gem::Version
|
|
20
47
|
version: 0.15.6
|
|
48
|
+
- - "<"
|
|
49
|
+
- !ruby/object:Gem::Version
|
|
50
|
+
version: 0.22.0
|
|
21
51
|
type: :runtime
|
|
22
52
|
prerelease: false
|
|
23
53
|
version_requirements: !ruby/object:Gem::Requirement
|
|
24
54
|
requirements:
|
|
25
|
-
- - "
|
|
55
|
+
- - ">="
|
|
26
56
|
- !ruby/object:Gem::Version
|
|
27
57
|
version: 0.15.6
|
|
58
|
+
- - "<"
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: 0.22.0
|
|
28
61
|
- !ruby/object:Gem::Dependency
|
|
29
|
-
name: redis
|
|
62
|
+
name: redis
|
|
30
63
|
requirement: !ruby/object:Gem::Requirement
|
|
31
64
|
requirements:
|
|
32
|
-
- - "~>"
|
|
33
|
-
- !ruby/object:Gem::Version
|
|
34
|
-
version: '2.0'
|
|
35
65
|
- - ">="
|
|
36
66
|
- !ruby/object:Gem::Version
|
|
37
|
-
version:
|
|
67
|
+
version: '4.0'
|
|
38
68
|
type: :runtime
|
|
39
69
|
prerelease: false
|
|
40
70
|
version_requirements: !ruby/object:Gem::Requirement
|
|
41
71
|
requirements:
|
|
42
|
-
- - "~>"
|
|
43
|
-
- !ruby/object:Gem::Version
|
|
44
|
-
version: '2.0'
|
|
45
72
|
- - ">="
|
|
46
73
|
- !ruby/object:Gem::Version
|
|
47
|
-
version:
|
|
74
|
+
version: '4.0'
|
|
48
75
|
- !ruby/object:Gem::Dependency
|
|
49
76
|
name: redis-namespace
|
|
50
77
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -66,19 +93,53 @@ dependencies:
|
|
|
66
93
|
- !ruby/object:Gem::Version
|
|
67
94
|
version: 1.5.3
|
|
68
95
|
- !ruby/object:Gem::Dependency
|
|
69
|
-
name:
|
|
96
|
+
name: redis-rack
|
|
70
97
|
requirement: !ruby/object:Gem::Requirement
|
|
71
98
|
requirements:
|
|
99
|
+
- - "~>"
|
|
100
|
+
- !ruby/object:Gem::Version
|
|
101
|
+
version: '2.0'
|
|
72
102
|
- - ">="
|
|
73
103
|
- !ruby/object:Gem::Version
|
|
74
|
-
version:
|
|
75
|
-
type: :
|
|
104
|
+
version: 2.0.2
|
|
105
|
+
type: :runtime
|
|
76
106
|
prerelease: false
|
|
77
107
|
version_requirements: !ruby/object:Gem::Requirement
|
|
78
108
|
requirements:
|
|
109
|
+
- - "~>"
|
|
110
|
+
- !ruby/object:Gem::Version
|
|
111
|
+
version: '2.0'
|
|
79
112
|
- - ">="
|
|
80
113
|
- !ruby/object:Gem::Version
|
|
81
|
-
version:
|
|
114
|
+
version: 2.0.2
|
|
115
|
+
- !ruby/object:Gem::Dependency
|
|
116
|
+
name: bundler
|
|
117
|
+
requirement: !ruby/object:Gem::Requirement
|
|
118
|
+
requirements:
|
|
119
|
+
- - "~>"
|
|
120
|
+
- !ruby/object:Gem::Version
|
|
121
|
+
version: '2.0'
|
|
122
|
+
type: :development
|
|
123
|
+
prerelease: false
|
|
124
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
125
|
+
requirements:
|
|
126
|
+
- - "~>"
|
|
127
|
+
- !ruby/object:Gem::Version
|
|
128
|
+
version: '2.0'
|
|
129
|
+
- !ruby/object:Gem::Dependency
|
|
130
|
+
name: minitest
|
|
131
|
+
requirement: !ruby/object:Gem::Requirement
|
|
132
|
+
requirements:
|
|
133
|
+
- - "~>"
|
|
134
|
+
- !ruby/object:Gem::Version
|
|
135
|
+
version: '5.20'
|
|
136
|
+
type: :development
|
|
137
|
+
prerelease: false
|
|
138
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
139
|
+
requirements:
|
|
140
|
+
- - "~>"
|
|
141
|
+
- !ruby/object:Gem::Version
|
|
142
|
+
version: '5.20'
|
|
82
143
|
- !ruby/object:Gem::Dependency
|
|
83
144
|
name: rake
|
|
84
145
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -94,81 +155,75 @@ dependencies:
|
|
|
94
155
|
- !ruby/object:Gem::Version
|
|
95
156
|
version: 12.3.3
|
|
96
157
|
- !ruby/object:Gem::Dependency
|
|
97
|
-
name:
|
|
158
|
+
name: dotenv
|
|
98
159
|
requirement: !ruby/object:Gem::Requirement
|
|
99
160
|
requirements:
|
|
100
161
|
- - "~>"
|
|
101
162
|
- !ruby/object:Gem::Version
|
|
102
|
-
version: '
|
|
163
|
+
version: '2.8'
|
|
103
164
|
type: :development
|
|
104
165
|
prerelease: false
|
|
105
166
|
version_requirements: !ruby/object:Gem::Requirement
|
|
106
167
|
requirements:
|
|
107
168
|
- - "~>"
|
|
108
169
|
- !ruby/object:Gem::Version
|
|
109
|
-
version: '
|
|
170
|
+
version: '2.8'
|
|
110
171
|
- !ruby/object:Gem::Dependency
|
|
111
172
|
name: pry
|
|
112
173
|
requirement: !ruby/object:Gem::Requirement
|
|
113
174
|
requirements:
|
|
114
175
|
- - "~>"
|
|
115
176
|
- !ruby/object:Gem::Version
|
|
116
|
-
version: 0.
|
|
177
|
+
version: '0.12'
|
|
117
178
|
type: :development
|
|
118
179
|
prerelease: false
|
|
119
180
|
version_requirements: !ruby/object:Gem::Requirement
|
|
120
181
|
requirements:
|
|
121
182
|
- - "~>"
|
|
122
183
|
- !ruby/object:Gem::Version
|
|
123
|
-
version: 0.
|
|
184
|
+
version: '0.12'
|
|
124
185
|
- !ruby/object:Gem::Dependency
|
|
125
186
|
name: pry-nav
|
|
126
187
|
requirement: !ruby/object:Gem::Requirement
|
|
127
188
|
requirements:
|
|
128
189
|
- - "~>"
|
|
129
190
|
- !ruby/object:Gem::Version
|
|
130
|
-
version: 0.
|
|
191
|
+
version: '0.3'
|
|
131
192
|
type: :development
|
|
132
193
|
prerelease: false
|
|
133
194
|
version_requirements: !ruby/object:Gem::Requirement
|
|
134
195
|
requirements:
|
|
135
196
|
- - "~>"
|
|
136
197
|
- !ruby/object:Gem::Version
|
|
137
|
-
version: 0.
|
|
198
|
+
version: '0.3'
|
|
138
199
|
- !ruby/object:Gem::Dependency
|
|
139
|
-
name:
|
|
200
|
+
name: rubocop
|
|
140
201
|
requirement: !ruby/object:Gem::Requirement
|
|
141
202
|
requirements:
|
|
142
203
|
- - "~>"
|
|
143
204
|
- !ruby/object:Gem::Version
|
|
144
|
-
version: '
|
|
145
|
-
- - ">="
|
|
146
|
-
- !ruby/object:Gem::Version
|
|
147
|
-
version: 3.0.1
|
|
205
|
+
version: '1.0'
|
|
148
206
|
type: :development
|
|
149
207
|
prerelease: false
|
|
150
208
|
version_requirements: !ruby/object:Gem::Requirement
|
|
151
209
|
requirements:
|
|
152
210
|
- - "~>"
|
|
153
211
|
- !ruby/object:Gem::Version
|
|
154
|
-
version: '
|
|
155
|
-
- - ">="
|
|
156
|
-
- !ruby/object:Gem::Version
|
|
157
|
-
version: 3.0.1
|
|
212
|
+
version: '1.0'
|
|
158
213
|
- !ruby/object:Gem::Dependency
|
|
159
|
-
name:
|
|
214
|
+
name: webmock
|
|
160
215
|
requirement: !ruby/object:Gem::Requirement
|
|
161
216
|
requirements:
|
|
162
|
-
- -
|
|
217
|
+
- - "~>"
|
|
163
218
|
- !ruby/object:Gem::Version
|
|
164
|
-
version:
|
|
219
|
+
version: '3.18'
|
|
165
220
|
type: :development
|
|
166
221
|
prerelease: false
|
|
167
222
|
version_requirements: !ruby/object:Gem::Requirement
|
|
168
223
|
requirements:
|
|
169
|
-
- -
|
|
224
|
+
- - "~>"
|
|
170
225
|
- !ruby/object:Gem::Version
|
|
171
|
-
version:
|
|
226
|
+
version: '3.18'
|
|
172
227
|
description: initiate a M-Pesa transaction on behalf of a customer using STK Push.
|
|
173
228
|
email:
|
|
174
229
|
- mboyaberry@gmail.com
|
|
@@ -177,28 +232,47 @@ executables: []
|
|
|
177
232
|
extensions: []
|
|
178
233
|
extra_rdoc_files: []
|
|
179
234
|
files:
|
|
235
|
+
- ".github/workflows/codeql-analysis.yml"
|
|
180
236
|
- ".github/workflows/cop.yml"
|
|
181
237
|
- ".gitignore"
|
|
238
|
+
- ".rubocop.yml"
|
|
182
239
|
- ".sample.env"
|
|
240
|
+
- CHANGELOG.md
|
|
183
241
|
- CODE_OF_CONDUCT.md
|
|
184
242
|
- Gemfile
|
|
185
243
|
- Gemfile.lock
|
|
186
244
|
- LICENSE.txt
|
|
187
245
|
- README.md
|
|
188
246
|
- Rakefile
|
|
247
|
+
- SECURITY.md
|
|
189
248
|
- bin/console
|
|
190
249
|
- bin/index.jpeg
|
|
191
250
|
- bin/setup
|
|
192
251
|
- lib/mpesa_stk.rb
|
|
193
252
|
- lib/mpesa_stk/access_token.rb
|
|
253
|
+
- lib/mpesa_stk/account_balance.rb
|
|
254
|
+
- lib/mpesa_stk/b2b.rb
|
|
255
|
+
- lib/mpesa_stk/b2c.rb
|
|
256
|
+
- lib/mpesa_stk/c2b.rb
|
|
257
|
+
- lib/mpesa_stk/imsi.rb
|
|
258
|
+
- lib/mpesa_stk/iot.rb
|
|
259
|
+
- lib/mpesa_stk/pull_transactions.rb
|
|
260
|
+
- lib/mpesa_stk/push.rb
|
|
194
261
|
- lib/mpesa_stk/push_payment.rb
|
|
262
|
+
- lib/mpesa_stk/ratiba.rb
|
|
263
|
+
- lib/mpesa_stk/reversal.rb
|
|
264
|
+
- lib/mpesa_stk/stk_push_query.rb
|
|
265
|
+
- lib/mpesa_stk/transaction_status.rb
|
|
195
266
|
- lib/mpesa_stk/version.rb
|
|
196
267
|
- mpesa_stk.gemspec
|
|
197
268
|
homepage: https://github.com/mboya/mpesa_stk
|
|
198
269
|
licenses:
|
|
199
270
|
- MIT
|
|
200
|
-
metadata:
|
|
201
|
-
|
|
271
|
+
metadata:
|
|
272
|
+
homepage_uri: https://github.com/mboya/mpesa_stk
|
|
273
|
+
source_code_uri: https://github.com/mboya/mpesa_stk.git
|
|
274
|
+
changelog_uri: https://github.com/mboya/mpesa_stk/blob/master/CHANGELOG.md
|
|
275
|
+
rubygems_mfa_required: 'true'
|
|
202
276
|
rdoc_options: []
|
|
203
277
|
require_paths:
|
|
204
278
|
- lib
|
|
@@ -206,15 +280,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
206
280
|
requirements:
|
|
207
281
|
- - ">="
|
|
208
282
|
- !ruby/object:Gem::Version
|
|
209
|
-
version:
|
|
283
|
+
version: 2.6.0
|
|
210
284
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
211
285
|
requirements:
|
|
212
286
|
- - ">="
|
|
213
287
|
- !ruby/object:Gem::Version
|
|
214
288
|
version: '0'
|
|
215
289
|
requirements: []
|
|
216
|
-
rubygems_version:
|
|
217
|
-
signing_key:
|
|
290
|
+
rubygems_version: 4.0.1
|
|
218
291
|
specification_version: 4
|
|
219
292
|
summary: Lipa na M-Pesa Online Payment.
|
|
220
293
|
test_files: []
|