Sha256: 1e13fbee36f65444501d24b0e7854968060a8a51ac14180ac6b977e36e2b7bcd
Contents?: true
Size: 1.11 KB
Versions: 3
Compression:
Stored size: 1.11 KB
Contents
require 'digest/md5' module Payanyway module Helpers class SignatureGenerate BASE_KEYS = %w( MNT_TRANSACTION_ID MNT_OPERATION_ID MNT_AMOUNT MNT_CURRENCY_CODE MNT_SUBSCRIBER_ID MNT_TEST_MODE ) KEYS = { pay: BASE_KEYS, url: BASE_KEYS - [ 'MNT_OPERATION_ID' ], check: [ 'MNT_COMMAND' ] + BASE_KEYS, check_response: %w(MNT_RESULT_CODE MNT_ID MNT_TRANSACTION_ID) } KEYS.each do |key_name, keys| define_singleton_method("for_#{ key_name }") do |params| generate_by(params, keys) end end class << self private def generate_by(params, keys) values = keys.map { |key| get_value(params, key) }.join md5(Payanyway::Gateway.config['moneta_id'].to_s + values + Payanyway::Gateway.config['token']) end def get_value(params, key) (key == 'MNT_AMOUNT' && params[key].present?) ? '%.2f' % params[key] : params[key] end def md5(str) Digest::MD5.hexdigest(str).downcase end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
payanyway-1.2.2 | lib/payanyway/helpers/signature_generator.rb |
payanyway-1.2.1 | lib/payanyway/helpers/signature_generator.rb |
payanyway-1.2.0 | lib/payanyway/helpers/signature_generator.rb |