module RobokassaApi::SignatureGenerator

Public Class Methods

create_signature(args) click to toggle source
# File lib/robokassa_api/signature_generator.rb, line 7
def self.create_signature(args)
  if args.include?(:invoice_id)
    create_signature_two(
      user       = args[:user],
      out_sum    = args[:out_sum]
      invoice_id = args[:invoice_id]
    )
  else
    create_signature_one(
      user    = args[:user],
      out_sum = args[:out_sum]
    )
  end
end

Private Instance Methods

create_signature_one(user, out_sum) click to toggle source
# File lib/robokassa_api/signature_generator.rb, line 24
def create_signature_one(user, out_sum)
  data = "#{MERCHANT_LOGIN}:#{out_sum}:#{INVOICE_ID}:#{PASS_1}:Shp_user=#{user.id}"
  md5(data)
end
create_signature_two(out_sum, invoice_id, user_id) click to toggle source
# File lib/robokassa_api/signature_generator.rb, line 29
def create_signature_two(out_sum, invoice_id, user_id)
  data = "#{out_sum}:#{invoice_id}:#{PASS_2}:Shp_user=#{user_id}"
  md5(data).upcase
end
md5(data) click to toggle source
# File lib/robokassa_api/signature_generator.rb, line 34
def md5(data)
  Digest::MD5.hexdigest(data)
end