momo_pay 2.0.2 → 2.0.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 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: []