mpesarb 0.3.5 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5b9bb17e2e11d77e25e40681e8ba6f0405c21fe95d46765701e38506a6956c15
4
- data.tar.gz: 829d6f538edb26ff125ef9e86f1d3f04c1cde4457ed02b682c188af219b4e7b0
3
+ metadata.gz: d5629d27ad035e58f3526e8b9e255296fa18b693b1267d6ba99e6825acd6cf8f
4
+ data.tar.gz: 9af526343130143acae5a8fbce51105738876e33582e73e232bace44fb1d3ef2
5
5
  SHA512:
6
- metadata.gz: 39cd7e301abc42110303bfec0ffdb0dbdaed6536a123ede46894ba5489809a07edd473420dea54d66aa8451906884355c80cf6f2d20737ae94ad3b77149e2288
7
- data.tar.gz: 9380d06c1bee67f1ff54aa03eb535fd2eb876e5bfdcaa2b02681368935db092171ace55c94d84d36cd0e3c9e6247e311e7d03bcd882e8f1e2b50ca6848099215
6
+ metadata.gz: 31c766e363b1bc3c2295c9b54509cc123a4464d67d7c3162a5268e09801d500a01add96d8ee216e1e4dbd361186295500fc9184693eac31348ded4ab008c6747
7
+ data.tar.gz: 55fe4ce347865ee6e5ea4587434bece73d2a9cac219a922c5df323c62e061384524ebb9980fe27f5f65d210e5cf5f4eea8dfc9d491eb9f1ea342be0cf4b71475
data/Dockerfile CHANGED
@@ -1,6 +1,7 @@
1
1
  FROM ruby:rc-alpine3.10
2
2
  # update and upgrade packages
3
- RUN apk update && apk upgrade
3
+ RUN apk update && apk upgrade && \
4
+ apk add build-base openssl-dev git
4
5
 
5
6
  # Create non-root user
6
7
  RUN addgroup -S admin -g 1000 && adduser -S -g '' -u 1000 -G admin deploy
@@ -17,7 +18,7 @@ USER deploy
17
18
  WORKDIR /mpesa
18
19
 
19
20
  # install gem bundler
20
- RUN gem install bundler
21
+ RUN gem install bundler -v 2.4.22
21
22
 
22
23
  # create a Gem
23
24
  #RUN bundle gem ruby_mpesa
data/README.md CHANGED
@@ -59,7 +59,7 @@ Register C2B Urls( confirmation and validation url)
59
59
  response.ResponseDescription # "success"
60
60
  ```
61
61
 
62
- ### STK (LPNMO)
62
+ ### STK (LPNMO)/M-Pesa Express
63
63
 
64
64
  Lipa na mpesa online(Stk Push)
65
65
 
@@ -78,6 +78,18 @@ response.CheckoutRequestID # "ws_CO_040920212326513616"
78
78
  response.inspect # to see all available attributes
79
79
  ```
80
80
 
81
+ ### STK Query
82
+
83
+ Check the status of a Lipa na M-Pesa Online transaction.
84
+
85
+ ```ruby
86
+ response = client.stk_query(
87
+ checkout_request_id: "ws_CO_040920212326513616"
88
+ )
89
+
90
+ response.ResultCode # "1032"
91
+ response.ResultDesc # "Request Cancelled by user."
92
+ ```
81
93
 
82
94
  ### B2C (Payout)
83
95
 
data/docker-compose.yml CHANGED
@@ -4,3 +4,6 @@ services:
4
4
  build: .
5
5
  volumes:
6
6
  - .:/mpesa
7
+ - bundle:/usr/local/bundle
8
+ volumes:
9
+ bundle:
data/lib/mpesa/client.rb CHANGED
@@ -28,6 +28,10 @@ module Mpesa
28
28
  Stk.new(self, args).call
29
29
  end
30
30
 
31
+ def stk_query(**args)
32
+ StkQuery.new(self, args).call
33
+ end
34
+
31
35
  def payout(**args)
32
36
  Payout.new(self, args).call
33
37
  end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'base64'
4
+
5
+ module Mpesa
6
+ class StkQuery < Resource
7
+ PATH = 'mpesa/stkpushquery/v1/query'
8
+
9
+ def call
10
+ Object.new post_request(url: PATH, body: body).body
11
+ end
12
+
13
+ def body
14
+ {
15
+ 'BusinessShortCode': shortcode,
16
+ 'Password': password,
17
+ 'Timestamp': timestamp,
18
+ 'CheckoutRequestID': args[:checkout_request_id]
19
+ }
20
+ end
21
+
22
+ def password
23
+ Base64.strict_encode64("#{shortcode}#{args[:pass_key] || client.pass_key}#{timestamp}")
24
+ end
25
+
26
+ def timestamp
27
+ Time.now.strftime('%Y%m%d%H%M%S')
28
+ end
29
+
30
+ def shortcode
31
+ args[:shortcode] || client.shortcode
32
+ end
33
+ end
34
+ end
data/lib/mpesa/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Mpesa
4
- VERSION = '0.3.5'
4
+ VERSION = '0.3.6'
5
5
  end
data/lib/mpesa.rb CHANGED
@@ -13,6 +13,7 @@ module Mpesa
13
13
  autoload :Register, 'mpesa/resources/register'
14
14
  autoload :Token, 'mpesa/resources/token'
15
15
  autoload :Stk, 'mpesa/resources/stk'
16
+ autoload :StkQuery, 'mpesa/resources/stk_query'
16
17
  autoload :Payout, 'mpesa/resources/payout'
17
18
  autoload :Status, 'mpesa/resources/status'
18
19
  autoload :Balance, 'mpesa/resources/balance'
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mpesarb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
4
+ version: 0.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Moses Gathuku
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2023-10-21 00:00:00.000000000 Z
10
+ date: 2025-11-05 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: bundler
@@ -214,6 +213,7 @@ files:
214
213
  - lib/mpesa/resources/reversal.rb
215
214
  - lib/mpesa/resources/status.rb
216
215
  - lib/mpesa/resources/stk.rb
216
+ - lib/mpesa/resources/stk_query.rb
217
217
  - lib/mpesa/resources/token.rb
218
218
  - lib/mpesa/securitycred.rb
219
219
  - lib/mpesa/version.rb
@@ -225,7 +225,6 @@ metadata:
225
225
  homepage_uri: https://github.com/gathuku/ruby_mpesa
226
226
  source_code_uri: https://github.com/gathuku/mpesa
227
227
  changelog_uri: https://github.com/gathuku/mpesa
228
- post_install_message:
229
228
  rdoc_options: []
230
229
  require_paths:
231
230
  - lib
@@ -240,8 +239,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
240
239
  - !ruby/object:Gem::Version
241
240
  version: '0'
242
241
  requirements: []
243
- rubygems_version: 3.3.7
244
- signing_key:
242
+ rubygems_version: 3.6.2
245
243
  specification_version: 4
246
244
  summary: a simple gem to integrate ruby with mpesa Apis
247
245
  test_files: []