mpesarb 0.3.2 → 0.3.3
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/.gitpod.yml +8 -0
- data/README.md +2 -1
- data/lib/mpesa/client.rb +3 -2
- data/lib/mpesa/resource.rb +9 -0
- data/lib/mpesa/resources/payout.rb +1 -1
- data/lib/mpesa/resources/stk.rb +4 -4
- data/lib/mpesa/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 21c94fd454abe3e4127f6c716ee39c4f574924018af8d6daedafc0c1f1bee5d1
|
4
|
+
data.tar.gz: e68131c8d3f8d1531abd3c7419c9dfacc70331a555ecd48b881cf9f290239acf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bf9183f955f48501ab1fbb634145bf2f0116b98cad63613b56bdf832ceedef03eabfa8e5e0cccb55161226af04149208c16afe75eaa986c4971c24e07f053d43
|
7
|
+
data.tar.gz: 599eaf780d0efc0e141218ef6848e21454e12a379f66ffe64d1b1bffe8ab6aaccb87f177f418c08848321f097efc3513ab9ee3d71e7d1eefb41dfbebf3a081ff
|
data/.gitpod.yml
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
# This configuration file was automatically generated by Gitpod.
|
2
|
+
# Please adjust to your needs (see https://www.gitpod.io/docs/config-gitpod-file)
|
3
|
+
# and commit this file to your remote git repository to share the goodness with others.
|
4
|
+
|
5
|
+
tasks:
|
6
|
+
- init: bin/setup
|
7
|
+
|
8
|
+
|
data/README.md
CHANGED
@@ -42,6 +42,7 @@ Optional
|
|
42
42
|
- `adapter` - Faraday HTTP adapter. Default `:net_http`
|
43
43
|
- `shortcode` - Mpesa shortcode
|
44
44
|
- `pass_key` - LPNMO pass Key( used by STK API)
|
45
|
+
- `raise_errors` - `Boolean` raise errors if response status code is not 200. Default: `true`
|
45
46
|
|
46
47
|
|
47
48
|
### Register Urls
|
@@ -118,7 +119,7 @@ response.ConversationID
|
|
118
119
|
response.ResponseCode
|
119
120
|
```
|
120
121
|
|
121
|
-
### Reversal
|
122
|
+
### Reversal
|
122
123
|
Initiate a reversal
|
123
124
|
|
124
125
|
```
|
data/lib/mpesa/client.rb
CHANGED
@@ -5,15 +5,16 @@ require 'faraday_middleware'
|
|
5
5
|
|
6
6
|
module Mpesa
|
7
7
|
class Client
|
8
|
-
attr_reader :key, :secret, :env, :adapter, :shortcode, :pass_key
|
8
|
+
attr_reader :key, :secret, :env, :adapter, :shortcode, :pass_key, :raise_errors
|
9
9
|
|
10
|
-
def initialize(key:, secret:, shortcode: nil, pass_key: nil, env: 'production', adapter: Faraday.default_adapter)
|
10
|
+
def initialize(key:, secret:, shortcode: nil, pass_key: nil, env: 'production', adapter: Faraday.default_adapter, raise_errors: true)
|
11
11
|
@key = key
|
12
12
|
@secret = secret
|
13
13
|
@env = env
|
14
14
|
@adapter = adapter
|
15
15
|
@pass_key = pass_key
|
16
16
|
@shortcode = shortcode
|
17
|
+
@raise_errors = raise_errors
|
17
18
|
end
|
18
19
|
|
19
20
|
def auth
|
data/lib/mpesa/resource.rb
CHANGED
@@ -18,6 +18,8 @@ module Mpesa
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def handle_response(response)
|
21
|
+
return response unless client.raise_errors
|
22
|
+
|
21
23
|
case response.status
|
22
24
|
when 400
|
23
25
|
raise Error, "Your request was malformed. #{response.body['errorMessage']}"
|
@@ -32,5 +34,12 @@ module Mpesa
|
|
32
34
|
end
|
33
35
|
response
|
34
36
|
end
|
37
|
+
|
38
|
+
def format_phone(phone)
|
39
|
+
phone = phone.to_s
|
40
|
+
return phone if phone.match?(/\A254/)
|
41
|
+
|
42
|
+
phone.sub(/\A[+0]?(254)?(\d+)/, '254\2')
|
43
|
+
end
|
35
44
|
end
|
36
45
|
end
|
@@ -15,7 +15,7 @@ module Mpesa
|
|
15
15
|
'CommandID': args[:command_id],
|
16
16
|
'Amount': args[:amount],
|
17
17
|
'PartyA': client.shortcode || args[:shortcode],
|
18
|
-
'PartyB': args[:phone],
|
18
|
+
'PartyB': format_phone(args[:phone]),
|
19
19
|
'Remarks': args[:remarks],
|
20
20
|
'QueueTimeOutURL': args[:timeout_url],
|
21
21
|
'ResultURL': args[:result_url],
|
data/lib/mpesa/resources/stk.rb
CHANGED
@@ -14,12 +14,12 @@ module Mpesa
|
|
14
14
|
{
|
15
15
|
'BusinessShortCode': shortcode,
|
16
16
|
'Password': password,
|
17
|
-
'Timestamp': timestamp
|
17
|
+
'Timestamp': timestamp,
|
18
18
|
'TransactionType': 'CustomerPayBillOnline',
|
19
19
|
'Amount': args[:amount],
|
20
|
-
'PartyA': args[:phone],
|
20
|
+
'PartyA': format_phone(args[:phone]),
|
21
21
|
'PartyB': shortcode,
|
22
|
-
'PhoneNumber': args[:phone],
|
22
|
+
'PhoneNumber': format_phone(args[:phone]),
|
23
23
|
'CallBackURL': args[:callback_url],
|
24
24
|
'AccountReference': args[:reference],
|
25
25
|
'TransactionDesc': args[:trans_desc]
|
@@ -31,7 +31,7 @@ module Mpesa
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def timestamp
|
34
|
-
Time.now.strftime('%Y%m%d%H%M%S')
|
34
|
+
Time.now.strftime('%Y%m%d%H%M%S')
|
35
35
|
end
|
36
36
|
|
37
37
|
def shortcode
|
data/lib/mpesa/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mpesarb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Moses Gathuku
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-05-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -201,6 +201,7 @@ extra_rdoc_files: []
|
|
201
201
|
files:
|
202
202
|
- ".github/workflows/mpesa.yml"
|
203
203
|
- ".gitignore"
|
204
|
+
- ".gitpod.yml"
|
204
205
|
- ".travis.yml"
|
205
206
|
- CHANGELOG.md
|
206
207
|
- CODE_OF_CONDUCT.md
|
@@ -253,7 +254,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
253
254
|
- !ruby/object:Gem::Version
|
254
255
|
version: '0'
|
255
256
|
requirements: []
|
256
|
-
rubygems_version: 3.
|
257
|
+
rubygems_version: 3.3.7
|
257
258
|
signing_key:
|
258
259
|
specification_version: 4
|
259
260
|
summary: a simple gem to integrate ruby with mpesa Apis
|