Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function serializeData(data) {
- let serialized = '';
- if (typeof data == 'object') {
- if (Array.isArray(data)) {
- serialized += data.sort().join('');
- } else {
- data = sortObject(data);
- for (let key in data) {
- let value = data[key];
- serialized += key + serializeData(value);
- }
- }
- } else {
- serialized += data;
- }
- return serialized;
- }
- function sortObject(obj) {
- return Object.keys(obj)
- .sort()
- .reduce(function(result, key) {
- result[key] = obj[key];
- return result;
- }, {});
- }
- function sign(method, uuid, data) {
- const crypto = require('crypto');
- const openssl_sign = crypto.createSign('SHA256');
- let plaintext = `${method}${uuid}${serializeData(data)}`;
- // plaintext is exactly the same as Trustly's default in the signaturetester page. So serializing is not the issue.
- openssl_sign.update(plaintext);
- const key = `
- -----BEGIN RSA PRIVATE KEY-----
- MIIEpAIBAAKCAQEA7o2YVcNZvhc4xDZEyW4pic7wdqtEtwyXDnIJuXC4rhuNdFdQ
- a4aLhe+MKNqSMYqewkvEzfvIXcZlA1ibUGUi+tjhYUo8g+vD6WAJ+iLovBd9wbu1
- IKg4qLR61RC0RfaNSDalv4xQ6N06HwAcyp14me6HR5JpDW2Cph2S1cogZYCAc3oi
- TxGFeZqG7TvEPvy/8fnPVDsoALR3HksdP8qZDPprTWmOBffh02SPluHair5cmi8g
- fNrGuF3rfvF1efWLsyMTl2MmfBPGVEaA8ioIA1OiuVth5Wc5MCrS8Mxfbnw6DSnY
- Ke+RhIc2N+FEci6R1811CcnT0HxHyobbSQM+0wIDAQABAoIBAQCTtdFRqXh0H+Ti
- ecf2AeRulFiI4lvWDFGsfChRTt7Lz/uywi3lppXWBRIAafaD/pV3MXtXIERc7G+3
- trHVAgq60Hgdyd3WwbG5W+JRpDP/43vW7eelpQQQUlCMhZ9aguPQhyXyiWvABNvs
- PiGVxBPdHLlfM+Ugj2KKgV1eS53ruoeue8kBquaFc0urHBddvqQh0PZQyqi9EHng
- /IEqXobAoIwKG0fX7g9Rj71NLT5fedCxk2BZ1BR7U9LZbY8AW5TBI9A2RF8jE8mo
- ZePj12H5Ff7OFqae4VG0P1oWa++ucqIsNxmBvU/XYlKmcXClICrSdyuGkDsxXILB
- U8gVENPhAoGBAP0rXc+G5MkddqITH1AVAf1Tl8wRgFpdJmgkEhNJrtWTnybo55ST
- C+h6cDX2vxh86+OkPGsner4eHHKyWBrkl6DLH3K//oiIOQ64sEPmjsRvldLyv0os
- Jqvpue2Rdhaw3tcBVCaLYBg7prZE1nt/emsNqYKV0UdIRgD9FmxojumHAoGBAPE4
- ZKXEiqfrB4yK7ZQS08L+iwrlQaUJ+PTzrBFPxGVhpBA3i3mxkOirjTm5Taip+Di+
- aEmAJOu2l3swRWwo2AstGgCd7mleP4XYTY/6mnHt4Lx/FkwGN3BL6P7fdouYlO33
- nTv5AcY4FSaKRQF7Q/x7C05YPXo6MKYMtdfe2+NVAoGARSLXnnme9tEF+aKxNWRX
- Q7/VP1Q0MfkoKN5Y1U2U4hxLJQwLWcaCRP1SsVntu5k5rdPG8Bg667o7WJMdflKY
- mb9+mg6WSuCwfDWxZQmMSVaTmqTR2kaOVPoh3R+RGQc6A4sIWPJMzrFTiIjp7ZXV
- b3CursuM+CNjgpeazQYMqPcCgYEAm6bpAzJkyl/VejH3hfH0JUI9FGXEyys5M069
- PFp9f3HW/QPqgzc6K3jvY00YOHqdCniLMMp4iIVFEB+g3F8qsWOEANvoCKPhV4uw
- 2PQ7jsKRnvBeweXNBjBlg3lMtF1b1IZQNm/CXla4Byt3xbH1t8jqDb7QxLshwzQ2
- brqGpxUCgYAP+ZXLmOUCbGq2HVQeAMo7r6bztYBJvREtvYT2bntKFWGrXb7m9k3W
- F1fuVgfc5xjbu5k6+MV6KJe5bbpfJKv0QLmRi0THvh0jANKqP0/id3Iz3QsyCYFs
- 0r/OvWuNJo+kT7TnzdlacR9OWZ/Y7fMZUtdfx88tqWJ/4BP3phRi5A==
- -----END RSA PRIVATE KEY-----
- `;
- const signature_b64 = openssl_sign.sign(key, 'base64');
- console.log(signature_b64);
- }
- sign('Deposit', '258a2184-2842-b485-25ca-293525152425', {"Username":"merchant_username","Password":"merchant_password","NotificationURL":"URL_to_your_notification_service","EndUserID":"12345","MessageID":"your_unique_deposit_id","Attributes":{"Locale":"sv_SE","Currency":"SEK","IP":"123.123.123.123","MobilePhone":"+46709876543","Firstname":"John","Lastname":"Doe","NationalIdentificationNumber":"790131-1234"}})
- //5ctJ++3oKu+Il1ybyzJZr6XiRX3//3lYIX9V2JXSz7+vQDmr5eX03SIhf86r+WfaJV+ArqPq3V3ooGbJNnJ7qcX0VCOF/hVwPsqfTSBL9Vp4+O6Qm46uTZBuxgVNib45ZmiTPacBaLyOquB4gBaP+j0hJcka9XBBjJXjoRUHknX17UTgC/dDyVyh8Vk4ZMDsT7a4I5vSeXuxpx/5de6Fr5kJhYGY7lD2k4sQw+wQFJpO2vdAqiXMrqMUGI+dqexclZE+rDkae+CTCpmAyQGtzKWefEOZS8upIM/rP0lZ9Owjn7js1BDOk1LT53ZIBCp+HFTxcKNCnVxkEEQC2nNi6g==
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement