momo_pay 2.0.2 → 2.0.3

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: 4ad989c70a7c3e43d7727a262748e12f6fc369ac6fd07333bcfcada3fc2fc517
4
- data.tar.gz: eb1566c60fe7b08d8e6ff7619fcd0231d400c857242705113df6a48678fa6ed8
3
+ metadata.gz: 5fb9540eb6689ec86f35720577a724d00af3d778582bfdab5760e0c66cf4c290
4
+ data.tar.gz: 65d356ef22b59cb92b24be5e35bde13d1d51979841e06ba6b48367c10fc2a6ba
5
5
  SHA512:
6
- metadata.gz: 7e3ea5f1a3828784886d4e958f810ee5aec218d2d855395bdfefd26840c76f7c3c879c92938d67207336b166373b880105d5b2cb81d58fa6c21b1e34c3d1084d
7
- data.tar.gz: 0af952cd4c19e9db38c2a640019fbf2b4e946abd760c3e076efa61dbb8ec42318627e4a536d79493d621a1817ad21aabc614b9c680281ef846b1ec312659a4e2
6
+ metadata.gz: dd643be78c06462a2937d5854698d5cc1525ffaa5a57de41e1f49908a6e9b6c2c038d1be3e45d555b291b7fcce70c907e2daa897efd545aa00882ec71834c100
7
+ data.tar.gz: 3a7fe520788c9431ded03273b7d93b394cfb7974dd0a8b03c285bfeb6983ada02fa238ee62028f97715428149ae50f81b1c1179464ed1b8d9d37083e097442c2
@@ -11,6 +11,7 @@ module MomoPay
11
11
  attr_accessor :verify_keys
12
12
  attr_accessor :signature_confirm_keys
13
13
  attr_accessor :signature_qr_code_keys
14
+ attr_accessor :signature_one_time_payment_keys
14
15
 
15
16
  def public_key_pem
16
17
  @public_key_pem ||= [
@@ -29,9 +30,11 @@ module MomoPay
29
30
  def initialize
30
31
  self.signature_confirm_keys = MomoPay::Default::SIGNATURE_CONFIRM_KEYS
31
32
  self.signature_qr_code_keys = MomoPay::Default::SIGNATURE_QR_CODE_KEYS
33
+ self.signature_one_time_payment_keys = MomoPay::Default::SIGNATURE_ONE_TIME_PAYMENT_KEYS
32
34
  self.verify_keys = {
33
35
  mobile: MomoPay::Default::SIGNATURE_MOBILE_VERIFY_KEYS,
34
36
  ipn: MomoPay::Default::SIGNATURE_IPN_VERIFY_KEYS,
37
+ one_time_payment: MomoPay::Default::SIGNATURE_ONE_TIME_PAYMENT_VERIFY_KEYS,
35
38
  }
36
39
  end
37
40
 
@@ -45,5 +45,33 @@ module MomoPay
45
45
  'extraData',
46
46
  ]
47
47
 
48
+ SIGNATURE_ONE_TIME_PAYMENT_VERIFY_KEYS = [
49
+ 'accessKey',
50
+ 'amount',
51
+ 'extraData',
52
+ 'message',
53
+ 'orderId',
54
+ 'orderInfo',
55
+ 'orderType',
56
+ 'partnerCode',
57
+ 'payType',
58
+ 'requestId',
59
+ 'responseTime',
60
+ 'resultCode',
61
+ 'transId'
62
+ ]
63
+
64
+ SIGNATURE_ONE_TIME_PAYMENT_KEYS = [
65
+ 'accessKey',
66
+ 'amount',
67
+ 'extraData',
68
+ 'ipnUrl',
69
+ 'orderId',
70
+ 'orderInfo',
71
+ 'partnerCode',
72
+ 'redirectUrl',
73
+ 'requestId',
74
+ 'requestType'
75
+ ]
48
76
  end
49
77
  end
@@ -0,0 +1,18 @@
1
+ module MomoPay
2
+ class OneTimePayment
3
+
4
+ def self.request(data)
5
+ data.merge!({
6
+ requestType: 'captureWallet',
7
+ accessKey: MomoPay.setup.access_key,
8
+ partnerCode: MomoPay.setup.partner_code,
9
+ partnerName: MomoPay.setup.partner_name,
10
+ })
11
+ signature = MomoPay::Signature.new(data, MomoPay.setup.signature_one_time_payment_keys).to_s
12
+ data.merge!(signature: signature)
13
+
14
+ MomoPay::Request.post('/v2/gateway/api/create', data)
15
+ end
16
+
17
+ end
18
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MomoPay
4
+ class OneTimePaymentSignature < Signature
5
+
6
+ def initialize(data, keys)
7
+ data.merge!({
8
+ accessKey: MomoPay.setup.access_key,
9
+ })
10
+ @query_string = MomoPay::QueryString.new(data).to_s(keys)
11
+ end
12
+
13
+ def to_s
14
+ OpenSSL::HMAC.hexdigest("SHA256", MomoPay.setup.secret_key, query_string)
15
+ end
16
+
17
+ private
18
+
19
+ attr_reader :query_string
20
+
21
+ end
22
+ end
23
+
@@ -1,3 +1,3 @@
1
1
  module MomoPay
2
- VERSION = "2.0.2"
2
+ VERSION = "2.0.3"
3
3
  end
data/lib/momo_pay.rb CHANGED
@@ -17,6 +17,8 @@ require "momo_pay/request"
17
17
  require "momo_pay/rsa"
18
18
  require "momo_pay/signature"
19
19
  require "momo_pay/transaction"
20
+ require "momo_pay/one_time_payment"
21
+ require "momo_pay/one_time_payment_signature"
20
22
 
21
23
  module MomoPay
22
24
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: momo_pay
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 2.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - KhoaRB
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-11-28 00:00:00.000000000 Z
11
+ date: 2024-01-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -73,6 +73,8 @@ files:
73
73
  - lib/momo_pay/error.rb
74
74
  - lib/momo_pay/http.rb
75
75
  - lib/momo_pay/mobile.rb
76
+ - lib/momo_pay/one_time_payment.rb
77
+ - lib/momo_pay/one_time_payment_signature.rb
76
78
  - lib/momo_pay/qr_code.rb
77
79
  - lib/momo_pay/query_status.rb
78
80
  - lib/momo_pay/query_string.rb
@@ -89,7 +91,7 @@ metadata:
89
91
  homepage_uri: https://github.com/ThanhKhoaIT/momo
90
92
  source_code_uri: https://github.com/ThanhKhoaIT/momo
91
93
  changelog_uri: https://github.com/ThanhKhoaIT/momo
92
- post_install_message:
94
+ post_install_message:
93
95
  rdoc_options: []
94
96
  require_paths:
95
97
  - lib
@@ -104,8 +106,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
104
106
  - !ruby/object:Gem::Version
105
107
  version: '0'
106
108
  requirements: []
107
- rubygems_version: 3.0.3
108
- signing_key:
109
+ rubygems_version: 3.2.3
110
+ signing_key:
109
111
  specification_version: 4
110
112
  summary: Momo wallet SDK for RUBY
111
113
  test_files: []