Module: Qtpay::Sign
- Defined in:
- lib/qtpay/sign.rb
Class Method Summary collapse
- .generate(params, options = {}) ⇒ Object
- .params_to_string(params) ⇒ Object
- .sign(key, string) ⇒ Object
- .verify?(params, options = {}) ⇒ Boolean
Class Method Details
.generate(params, options = {}) ⇒ Object
3 4 5 6 7 8 9 10 |
# File 'lib/qtpay/sign.rb', line 3 def self.generate(params, = {}) params = Utils.stringify_keys(params) key = [:server_key] || Qtpay.server_key string = params_to_string(params) sign(key, string) end |
.params_to_string(params) ⇒ Object
28 29 30 |
# File 'lib/qtpay/sign.rb', line 28 def self.params_to_string(params) params.sort.map { |item| item.join('=') }.join('&') end |
.sign(key, string) ⇒ Object
24 25 26 |
# File 'lib/qtpay/sign.rb', line 24 def self.sign(key, string) Digest::MD5.hexdigest("#{string}#{key}") end |
.verify?(params, options = {}) ⇒ Boolean
12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/qtpay/sign.rb', line 12 def self.verify?(params, = {}) params = Utils.stringify_keys(params) sign_type = params.delete('sign_type') sign = params.delete('sign') string = params_to_string(params) key = [:server_key] || Qtpay.server_key sign == sign(key, string) end |