Class: Cubepay::Signature

Inherits:
Object
  • Object
show all
Defined in:
lib/cubepay/signature.rb

Instance Method Summary collapse

Constructor Details

#initialize(client_id, client_secret) ⇒ Signature

Returns a new instance of Signature.



9
10
11
12
# File 'lib/cubepay/signature.rb', line 9

def initialize(client_id, client_secret)
  @client_id = client_id
  @client_secret = client_secret
end

Instance Method Details

#generate_signature(params) ⇒ Object



21
22
23
24
25
26
27
28
29
# File 'lib/cubepay/signature.rb', line 21

def generate_signature(params)
  if !params['sign'].nil?
    params.delete('sign')
  end
  sort_params = params.sort_by { |key, value| key }
  string = CGI.unescape(URI.encode_www_form(sort_params) + "&client_secret=" + @client_secret)

  return Digest::SHA256.hexdigest(string).upcase
end

#get_params_with_signature(params) ⇒ Object



14
15
16
17
18
19
# File 'lib/cubepay/signature.rb', line 14

def get_params_with_signature(params)
  params["client_id"] = @client_id
  params["sign"] = generate_signature(params)

  return params
end

#verify_signature(params) ⇒ Object



31
32
33
34
35
36
37
38
39
# File 'lib/cubepay/signature.rb', line 31

def verify_signature(params)
  client_sign = params["sign"]
  params.delete('sign')

  server_sign = generate_signature(params)

  return client_sign == server_sign

end