Secure QR Payload (C#)
An example of generating a Secure QR Payload signature and building the QR URL in C# (server-side only — keep the validation key in a secure config / environment variable).
using System;
using System.Security.Cryptography;
using System.Text;
string GenerateSignature(string key, int amount, string id)
{
var message = $"{key}||{amount}||{id}";
var keyBytes = Encoding.UTF8.GetBytes(key);
var messageBytes = Encoding.UTF8.GetBytes(message);
var hash = HMACSHA256.HashData(keyBytes, messageBytes);
return Convert.ToHexString(hash).ToLowerInvariant();
}
var key = "my-validation-key";
var id = "ORDER-001";
var amount = 10050;
var snapcode = "mymerchant";
var signature = GenerateSignature(key, amount, id);
var qrUrl = $"https://pos.snapscan.io/qr/{snapcode}?id={id}&amount={amount}&signature={signature}";