module MandarinPay::SignatureGenerator
Public Instance Methods
custom_params()
click to toggle source
# File lib/mandarin_pay/signature_generator.rb, line 19 def custom_params (@params[:params] || {}).sort.each_with_object([]) do |result, element| result << element.join("=") result end end
generate_signature_for(kind, extra_params = {})
click to toggle source
# File lib/mandarin_pay/signature_generator.rb, line 3 def generate_signature_for(kind, extra_params = {}) unless [:card_binding, :payment, :transaction].include? kind raise ArgumentError, "Available kinds are only :payment, :card_binding or :transaction" end Digest::SHA256.hexdigest(params_string(kind, extra_params)) end
params_string(kind, extra_params)
click to toggle source
# File lib/mandarin_pay/signature_generator.rb, line 10 def params_string(kind, extra_params) case kind when :payment Hash[conformity_params(extra_params).sort_by { |(key, _v)| key }].values.join("-") + "-" + MandarinPay.sharedsec else Hash[@params.except("sign").sort_by { |(key, _v)| key }].values.join("-") + "-" + MandarinPay.sharedsec end end