🔑Encryption (New)
How to generate our signature
วิธีการที่เราใช้ในการ encrypt จะมีขั้นตอนตามวิธีด้านล่าง
private flattenObject(obj, prefix = '',) {
let result = {};
for (const key of Object.keys(obj)) {
const value = obj[key];
const fullKey = prefix ? `${prefix}.${key}` : key;
if (value !== null && typeof value === 'object' && !Array.isArray(value)) {
result = { ...result, ...this.flattenObject(value, fullKey) };
} else {
result[fullKey] = value;
}
}
return result;
}
private buildKeyValueString(obj) {
// Flatten all keys (including nested like extendParams.foo, extendParams.bar)
const flat = this.flattenObject(obj);
const sortedKeys = Object.keys(flat).sort();
const keyValuePairs = sortedKeys.map((key) => {
const value = flat[key];
return `${key}=${value}`;
});
return keyValuePairs.join('&');
}
generateSignature(secret, body) {
const keyString = `${partnerId}:${this.buildKeyValueString(body)}`;
// นำ signature ที่ได้ไปใส่ใน x-wildpay-signature
const signature = createHmac('sha256', secret)
.update(keyString)
.digest('hex');
return signature;
}
Last updated