mpesa_stk 1.0.2 → 1.1.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
- SHA1:
3
- metadata.gz: 98e4c3a1cb59910334ad8f893a329fc65409a371
4
- data.tar.gz: 72fb8592512e4b94bbb9b66210ae03498d39bd5d
2
+ SHA256:
3
+ metadata.gz: a1448032d6f42e8d0ae52779d2aa3e564fc2fc7c3f612f5d1a7ab38dc6c63172
4
+ data.tar.gz: a1a7f8569dab22b228de03928b48e02b1994ddfa6f8dd7f9ebbf0519d05c86c1
5
5
  SHA512:
6
- metadata.gz: 81237f220cacb76cd23d80209467b687f25ca21bf88090d2ff46e41fadd2ba3601caba8065c3ed7a33eb8e5ef3adbd0c42b91a106af719292e56881edf532b60
7
- data.tar.gz: f55930075c931fc4cf98a1d999394ff2f59cef8bc31b0f4a8e68a87ed4fbbefef92408d4b758dac04d45013ecb24daf75f29739a95e85489abf18b606fa348ab
6
+ metadata.gz: 3f0d19bd38006f073b5be5e78ed49bc3fbf4a40fcee04eaa0b34f0fa2c63a604799a298a11cb52ba11d55ba8a9de0ccf4193d0f5b72aefc89be7a4b067143f21
7
+ data.tar.gz: e01e9e3964f4828f91acca1cb671c8278b1b0ad3ff0294e6d950b27a2a6d9b014be7e46051cd6a3c93bdfbe36be5b00dc3767c3d7afaba0e921527863cdafef5
data/.sample.env CHANGED
@@ -2,8 +2,8 @@ base_url="https://sandbox.safaricom.co.ke"
2
2
  token_generator_url="/oauth/v1/generate?grant_type=client_credentials"
3
3
  process_request_url="/mpesa/stkpush/v1/processrequest"
4
4
 
5
- key=""
6
- secret=""
7
- business_short_code=""
8
- business_passkey="
9
- callback_url="
5
+ key="Abcr7aDsOzaPlf5Cd6FWBJqxh6zRJ2dy"
6
+ secret="9UVzOHhDq44nkZWP"
7
+ business_short_code="174379"
8
+ business_passkey="bfb279f9aa9bdbcf158e97dd71a467cd2e0c893059b10f78e6b72ada1ed2c919"
9
+ callback_url="https://c90593e0.ngrok.io"
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mpesa_stk (1.0.0)
4
+ mpesa_stk (1.1.0)
5
5
  httparty (~> 0.15.6)
6
6
  redis-namespace (~> 1.5, >= 1.5.3)
7
7
  redis-rack (~> 2.0, >= 2.0.2)
@@ -28,7 +28,7 @@ GEM
28
28
  pry-nav (0.2.4)
29
29
  pry (>= 0.9.10, < 0.11.0)
30
30
  public_suffix (3.0.2)
31
- rack (2.0.4)
31
+ rack (2.0.5)
32
32
  rake (10.5.0)
33
33
  redis (4.0.1)
34
34
  redis-namespace (1.6.0)
@@ -36,7 +36,7 @@ GEM
36
36
  redis-rack (2.0.4)
37
37
  rack (>= 1.5, < 3)
38
38
  redis-store (>= 1.2, < 2)
39
- redis-store (1.4.1)
39
+ redis-store (1.5.0)
40
40
  redis (>= 2.2, < 5)
41
41
  safe_yaml (1.0.4)
42
42
  slop (3.6.0)
data/README.md CHANGED
@@ -8,54 +8,73 @@ Add this line to your application's Gemfile:
8
8
  ```ruby
9
9
  gem 'mpesa_stk'
10
10
  ```
11
-
12
- And then execute:
13
-
14
- $ bundle or $ bundle install
11
+ and run the `bundle install` command
15
12
 
16
13
  Or install it yourself as:
14
+ ```ruby
15
+ gem install mpesa_stk
16
+ ```
17
17
 
18
- $ gem install mpesa_stk
19
-
20
- ## Version
21
- Mpesa_stk is currently at `1.0.0 version`
22
-
23
- ## Usage
24
-
25
- one needs to setup there environment variables, checkout `.sample.env`
18
+ # Getting Started
19
+ This gem has a `[redis](https://redis.io/)` dependency, so make sure it running
20
+ ```ruby
21
+ $ redis-server
26
22
  ```
27
- base_url="https://sandbox.safaricom.co.ke"
28
- token_generator_url="/oauth/v1/generate?grant_type=client_credentials"
29
- process_request_url="/mpesa/stkpush/v1/processrequest"
30
23
 
24
+ you need to setup your environment variables, checkout `.sample.env` for the values you need.
25
+ or run
26
+ ```ruby
27
+ $ cp .sample.env .env
28
+ ```
29
+ open `.env` on youe editor and add the missing variable
30
+ ```
31
31
  key=""
32
32
  secret=""
33
33
  business_short_code=""
34
- business_passkey="
35
- callback_url="
34
+ business_passkey=""
35
+ callback_url=""
36
36
  ```
37
+
38
+ * `key` and `secret` of the app created on your [developer account](https://developer.safaricom.co.ke/user/me/apps).
37
39
  this can be found in [Test Credentials](https://developer.safaricom.co.ke/test_credentials)
38
- * `key` and `secret` of your application key.
39
40
  * `business_short_code` and `business_pass_key` from safaricom.
40
- * `callback_url` the url of your application.
41
-
41
+ this is the url where response will be sent
42
+ * `callback_url` the url of your application. `make sure its a reachable/active url`
42
43
 
43
- ### Implementation
44
+ ## Testing
44
45
 
45
- This now becomes the easy part. After all the pieces above have been set all you need to do is:
46
- open your console and add.
46
+ ```ruby
47
+ $ irb
47
48
  ```
48
- require 'mpesa_stk'
49
+
50
+ ```ruby
51
+ 2.5.0 :001 > require 'mpesa_stk'
49
52
  ```
50
53
 
54
+ ```ruby
55
+ 2.5.0 :002 > MpesaStk::PushPayment.call("500", "<YOUR PHONE NUMBER: 254711222333>")
51
56
  ```
52
- MpesaStk::PushPayment.call("500", "<YOUR PHONE NUMBER: 254711222333>")
57
+
58
+ expected irb output after the command
59
+ ```hash
60
+ => {
61
+ "MerchantRequestID"=>"7909-1302368-1",
62
+ "CheckoutRequestID"=>"ws_CO_DMZ_40472724_16062018092359957",
63
+ "ResponseCode"=>"0",
64
+ "ResponseDescription"=>"Success. Request accepted for processing",
65
+ "CustomerMessage"=>"Success. Request accepted for processing"
66
+ }
53
67
  ```
54
68
 
55
- ### Output
56
- This is the expected output
57
- ![alt tag](./bin/index.jpeg)
69
+ the above response means the response has been successfully sent to Safaricom for processing and you should be able to see the checkout/express prompt on the sender number.
70
+
71
+ ### Mpesa Checkout/Express
72
+ This is the expected output on the mobile phone
73
+ ![alt tag](./bin/index.jpeg)
74
+
75
+ ### Callback url
58
76
 
77
+ After the pin code is entered on the checkout/express prompt. you will receive a request on the provided `callback_url` with the status of the action
59
78
 
60
79
 
61
80
  ## Development
@@ -44,8 +44,8 @@ module MpesaStk
44
44
  PartyB: "#{ENV['business_short_code']}",
45
45
  PhoneNumber: "#{phone_number}",
46
46
  CallBackURL: "#{ENV['callback_url']}",
47
- AccountReference: generate_bill_reference_number(20),
48
- TransactionDesc: generate_bill_reference_number(20)
47
+ AccountReference: generate_bill_reference_number(5),
48
+ TransactionDesc: generate_bill_reference_number(5)
49
49
  }.to_json
50
50
  end
51
51
 
@@ -1,3 +1,3 @@
1
1
  module MpesaStk
2
- VERSION = "1.0.2"
2
+ VERSION = "1.1.0"
3
3
  end
data/mpesa_stk.gemspec CHANGED
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
11
11
 
12
12
  spec.summary = %q{Lipa na M-Pesa Online Payment.}
13
13
  spec.description = %q{initiate a M-Pesa transaction on behalf of a customer using STK Push.}
14
- spec.homepage = "https://github.com/mboya/mpesa_stk"
14
+ spec.homepage = "https://mboya.github.io/mpesa_stk/"
15
15
  spec.license = "MIT"
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mpesa_stk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - mboya
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2018-02-15 00:00:00.000000000 Z
12
+ date: 2018-06-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: httparty
@@ -194,7 +194,7 @@ files:
194
194
  - lib/mpesa_stk/push_payment.rb
195
195
  - lib/mpesa_stk/version.rb
196
196
  - mpesa_stk.gemspec
197
- homepage: https://github.com/mboya/mpesa_stk
197
+ homepage: https://mboya.github.io/mpesa_stk/
198
198
  licenses:
199
199
  - MIT
200
200
  metadata: {}
@@ -214,7 +214,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
214
214
  version: '0'
215
215
  requirements: []
216
216
  rubyforge_project:
217
- rubygems_version: 2.6.14
217
+ rubygems_version: 2.7.3
218
218
  signing_key:
219
219
  specification_version: 4
220
220
  summary: Lipa na M-Pesa Online Payment.