module Qtpay::Sign
Public Class Methods
generate(params, options = {})
click to toggle source
# File lib/qtpay/sign.rb, line 3 def self.generate(params, options = {}) params = Utils.stringify_keys(params) key = options[:server_key] || Qtpay.server_key string = params_to_string(params) sign(key, string) end
params_to_string(params)
click to toggle source
# File lib/qtpay/sign.rb, line 28 def self.params_to_string(params) params.sort.map { |item| item.join('=') }.join('&') end
sign(key, string)
click to toggle source
# File lib/qtpay/sign.rb, line 24 def self.sign(key, string) Digest::MD5.hexdigest("#{string}#{key}") end
verify?(params, options = {})
click to toggle source
# File lib/qtpay/sign.rb, line 12 def self.verify?(params, options = {}) params = Utils.stringify_keys(params) sign_type = params.delete('sign_type') sign = params.delete('sign') string = params_to_string(params) key = options[:server_key] || Qtpay.server_key sign == sign(key, string) end