Joy,
Using the foxCryptoNG class at
https://github.com/cwollenhaupt/foxCryptoNG:LOCAL Crypto AS foxCryptoNG
LOCAL Seed AS String
LOCAL ApiKey AS String
LOCAL ApiPin AS String
LOCAL PreHash AS String
LOCAL ApiHash AS String
LOCAL Result64 AS String
LOCAL ExpectedResult64 AS String
m.ExpectedResult64 = "X2ZDelgwdDB2UDMxMFZuMHJLelZFaWo0elNCYjdnMGo6czIvMzIxNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkw" + ;
"LzAwMzVhMjJhNjU1MDllMTE4MTE5YjgwOWNhMDI4MDg3ZTQzMDdjNDUyZWZiNmFiNzk2NTViYTQ0ZDc5ZDFmOGM="
m.Crypto = CREATEOBJECT("foxCryptoNG")
m.Seed = "321456789012345678901234567890"
m.ApiKey = "_fCzX0t0vP310Vn0rKzVEij4zSBb7g0j"
m.ApiPin = "J105251T"
m.PreHash = m.ApiKey + m.Seed + m.ApiPin
m.ApiHash = "s2/" + m.Seed + "/" + LOWER(m.Crypto.Hash_sha256(m.PreHash))
m.Result64 = STRCONV(m.ApiKey + ":" + m.ApiHash, 13)
IF m.Result64 == m.ExpectedResult64
MESSAGEBOX("Success!")
ELSE
MESSAGEBOX("Fail...")
ENDIF
>HI All,
>
>Just wondering if anyone ever coded the authentication header for USAePay API.
>I tried using vfpencryption.fll but the results did not come out correct.
>
>Here is the javascript code that works:
>var seed = "321456789012345678901234567890";
>var apikey = "_fCzX0t0vP310Vn0rKzVEij4zSBb7g0j";
>var apipin = "J105251T";
>var prehash = apikey + seed + apipin;
>var apihash = 's2/'+ seed + '/' + SHA256(prehash);
>var authKey = new Buffer(apikey + ":" + apihash).toString('base64');
>var authKey2 = (apikey + ":" + apihash).toString('base64');
>console.log("Authorization: Basic " + authKey);
>
>
https://onecompiler.com/javascript/3xh8rx8pr>
>My attempts to replicate this in VFP did not work.
>
>Thanks
>Joy Tan
----------------------------------
António Tavares Lopes