Module: Qpay
- Defined in:
- lib/qpay.rb,
lib/qpay/sign.rb,
lib/qpay/client.rb,
lib/qpay/config.rb,
lib/qpay/version.rb
Defined Under Namespace
Constant Summary collapse
- VERSION =
'1.6.0'
Class Method Summary collapse
- .params_with_sign(params, config) ⇒ Object
- .sign(params, config) ⇒ Object
- .sign_app(params, config) ⇒ Object
- .string_params_without_sign(params, config) ⇒ Object
Class Method Details
.params_with_sign(params, config) ⇒ Object
21 22 23 24 |
# File 'lib/qpay/sign.rb', line 21 def params_with_sign(params, config) params_dup = preprocess_params(params) params_dup.merge('sign' => Qpay.sign(params, config)) end |
.sign(params, config) ⇒ Object
3 4 5 |
# File 'lib/qpay/sign.rb', line 3 def sign(params, config) Digest::MD5.hexdigest(string_params_without_sign(params, config)).upcase end |
.sign_app(params, config) ⇒ Object
8 9 10 11 12 13 14 |
# File 'lib/qpay/sign.rb', line 8 def sign_app(params, config) key = "#{config.app_key}&" data = preprocess_params(params, keep_blank: true).sort_by { |k, _| k }.map { |x| x.join('=') }.join('&') digest = OpenSSL::Digest.new('sha1') hmac = OpenSSL::HMAC.digest(digest, key, data) Base64.encode64(hmac).strip end |
.string_params_without_sign(params, config) ⇒ Object
16 17 18 19 |
# File 'lib/qpay/sign.rb', line 16 def string_params_without_sign(params, config) sorted_params = preprocess_params(params).sort_by { |k, _| k } (sorted_params << ['key', config.api_key]).map { |x| x.join('=') }.join('&') end |