Secure QR Payload (Ruby)
An example of generating a Secure QR Payload signature and building the QR URL in Ruby (server-side only — keep the validation key in a secure config / environment variable).
require "openssl"
def generate_signature(key, amount, id)
message = "#{key}||#{amount.to_i}||#{id}"
OpenSSL::HMAC.hexdigest("SHA256", key, message)
end
key = "my-validation-key"
id = "ORDER-001"
amount = 10050
snapcode = "mymerchant"
signature = generate_signature(key, amount, id)
qr_url = "https://pos.snapscan.io/qr/#{snapcode}?id=#{id}&amount=#{amount}&signature=#{signature}"