Module: NodexPay::Signer

Defined in:
lib/nodex_pay/signer.rb

Class Method Summary collapse

Class Method Details

.generate(order_code:, amount:, hash_token:) ⇒ Object



10
11
12
# File 'lib/nodex_pay/signer.rb', line 10

def generate(order_code:, amount:, hash_token:)
  Digest::SHA256.hexdigest([order_code, amount, hash_token].join("::"))
end

.valid?(order_code:, amount:, hash_token:, signature:) ⇒ Boolean

Returns:

  • (Boolean)


14
15
16
17
18
19
# File 'lib/nodex_pay/signer.rb', line 14

def valid?(order_code:, amount:, hash_token:, signature:)
  expected = generate(order_code:, amount:, hash_token:)
  return false unless signature.bytesize == expected.bytesize

  OpenSSL.fixed_length_secure_compare(expected, signature)
end