<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Help (hmac sha512) in Integration and Testing</title>
    <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Help-hmac-sha512/m-p/66834#M40338</link>
    <description>&lt;P&gt;&lt;a href="https://community.developer.cybersource.com/t5/user/viewprofilepage/user-id/28634"&gt;@Ssooption11&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So I just copied and pasted your string. A few things stick out- 1: you have test, , as the address. Not sure if that's how you entered it on the form. 2: You have a space at the end of your string. That will throw off your hash. 3: You have x_test_request set to false, but do not have x_trans_id in your string, or a value for it rather.&amp;nbsp; You may know something that I do not but it would seem you would get some sort of trans_id. If you're using test mode on a production account I would get out of there bc that will cause all sorts of issues when doing hash verifications.&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 08 Mar 2019 19:55:17 GMT</pubDate>
    <dc:creator>Renaissance</dc:creator>
    <dc:date>2019-03-08T19:55:17Z</dc:date>
    <item>
      <title>Help (hmac sha512)</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Help-hmac-sha512/m-p/66807#M40313</link>
      <description>&lt;P&gt;Please advice&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;While determining the SHA512 value using the 30 form field values and that is returned from the silent url doesn't match&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;StringValue = "^^60117720851^false^1^H0ENJ3^P^2^Y^CC^XXXX0002^5.00^^Kim^Abunuwara^test, ,^Orem^UT^84097^United States of&lt;SPAN&gt;&amp;nbsp;&lt;A&gt;America^^^gartha@quickmerlin.com^^^^^^^^^1111651-MS-903088832^&amp;nbsp; "&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Signature Key = DC3F79CD0C200E088B3E51EA84BFDC47EED00388F46C014C794D95BF499467EC31FA42AD7AEAFBEE88D9888CE777EF428D3B2C18915DAC2660CA3204A1C53AAB&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Actual Value from Response&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SHA512&amp;nbsp;=&lt;SPAN&gt;&amp;nbsp;&lt;SPAN&gt;1B63276C9779170B4C74B261FD742C26939420C2FBFE714410A38B11CB1E9B5972AD37B5ECBC6778CAA388BD89B5D567557C0527CECF4B67482BF2F2CC787444 get from the response&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Scenario 1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;By using the string Value (30 form field values) and by using the .net Code to determine the SHA512 i get a different value&lt;/P&gt;&lt;P&gt;Following is how i determine the textToHash value&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Dim x_trans_id&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x_trans_id = AssignDefaultValueIfBlank(Request.Form("x_trans_id"))&lt;BR /&gt;Dim x_test_request&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x_test_request = AssignDefaultValueIfBlank(Request.Form("x_test_request"))&lt;BR /&gt;Dim x_response_code&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x_response_code = AssignDefaultValueIfBlank(Request.Form("x_response_code"))&lt;BR /&gt;Dim x_auth_code&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x_auth_code = AssignDefaultValueIfBlank(Request.Form("x_auth_code"))&lt;BR /&gt;Dim x_cvv2_resp_code&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x_cvv2_resp_code = AssignDefaultValueIfBlank(Request.Form("x_cvv2_resp_code"))&lt;BR /&gt;Dim x_cavv_response&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x_cavv_response = AssignDefaultValueIfBlank(Request.Form("x_cavv_response"))&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;BR /&gt;Dim x_avs_code&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x_avs_code = AssignDefaultValueIfBlank(Request.Form("x_avs_code"))&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;BR /&gt;Dim x_method&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x_method = AssignDefaultValueIfBlank(Request.Form("x_method"))&lt;BR /&gt;Dim x_account_number&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x_account_number = AssignDefaultValueIfBlank(Request.Form("x_account_number"))&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;BR /&gt;Dim x_amount&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x_amount = AssignDefaultValueIfBlank(Request.Form("x_amount"))&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;BR /&gt;Dim x_company&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x_company = AssignDefaultValueIfBlank(Request.Form("x_company"))&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;BR /&gt;Dim x_first_name&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x_first_name = AssignDefaultValueIfBlank(Request.Form("x_first_name"))&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;BR /&gt;Dim x_last_name&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x_last_name = AssignDefaultValueIfBlank(Request.Form("x_last_name"))&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;BR /&gt;Dim x_address&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x_address = AssignDefaultValueIfBlank(Request.Form("x_address"))&lt;SPAN&gt;&amp;nbsp;&lt;BR /&gt;Dim x_city&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x_city = AssignDefaultValueIfBlank(Request.Form("x_city"))&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;BR /&gt;Dim x_state&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x_state = AssignDefaultValueIfBlank(Request.Form("x_state"))&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;BR /&gt;Dim x_zip&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x_zip = AssignDefaultValueIfBlank(Request.Form("x_zip"))&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;BR /&gt;Dim x_country&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x_country = AssignDefaultValueIfBlank(Request.Form("x_country"))&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;BR /&gt;Dim x_phone&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x_phone = AssignDefaultValueIfBlank(Request.Form("x_phone"))&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;BR /&gt;Dim x_fax&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x_fax = AssignDefaultValueIfBlank(Request.Form("x_fax"))&lt;SPAN&gt;&amp;nbsp;&lt;BR /&gt;Dim x_email&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x_email = AssignDefaultValueIfBlank(Request.Form("x_email"))&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;BR /&gt;Dim x_ship_to_company&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x_ship_to_company = AssignDefaultValueIfBlank(Request.Form("x_ship_to_company"))&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;BR /&gt;Dim x_ship_to_first_name&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x_ship_to_first_name = AssignDefaultValueIfBlank(Request.Form("x_ship_to_first_name"))&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;BR /&gt;Dim x_ship_to_last_name&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x_ship_to_last_name = AssignDefaultValueIfBlank(Request.Form("x_ship_to_last_name"))&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;BR /&gt;Dim x_ship_to_address&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x_ship_to_address = AssignDefaultValueIfBlank(Request.Form("x_ship_to_address"))&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;BR /&gt;Dim x_ship_to_city&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x_ship_to_city = AssignDefaultValueIfBlank(Request.Form("x_ship_to_city"))&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;BR /&gt;Dim x_ship_to_state&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x_ship_to_state = AssignDefaultValueIfBlank(Request.Form("x_ship_to_state"))&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;BR /&gt;Dim x_ship_to_zip&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x_ship_to_zip = AssignDefaultValueIfBlank(Request.Form("x_ship_to_zip"))&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;BR /&gt;Dim x_ship_to_country&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x_ship_to_country = AssignDefaultValueIfBlank(Request.Form("x_ship_to_country"))&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;BR /&gt;Dim x_invoice_num&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x_invoice_num = AssignDefaultValueIfBlank(Request.Form("x_invoice_num"))&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;BR /&gt;Dim textToHash&lt;SPAN&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; textToHash = "^" &amp;amp; x_trans_id&amp;nbsp; &amp;amp; "^" &amp;amp; x_test_request&amp;nbsp; &amp;amp; "^" &amp;amp; x_response_code&amp;nbsp; &amp;amp; "^" &amp;amp; x_auth_code&amp;nbsp; &amp;amp; "^" &amp;amp; x_cvv2_resp_code&amp;nbsp; &amp;amp; "^" &amp;amp; x_cavv_response&amp;nbsp; &amp;amp; "^" &amp;amp; x_avs_code&amp;nbsp; &amp;amp; "^" &amp;amp; x_method&amp;nbsp; &amp;amp; "^" &amp;amp; x_account_number&amp;nbsp; &amp;amp; "^" &amp;amp; x_amount&amp;nbsp; &amp;amp; "^" &amp;amp; x_company&amp;nbsp; &amp;amp; "^" &amp;amp; x_first_name&amp;nbsp; &amp;amp; "^" &amp;amp; x_last_name&amp;nbsp; &amp;amp; "^" &amp;amp; x_address&amp;nbsp; &amp;amp; "^" &amp;amp; x_city&amp;nbsp; &amp;amp; "^"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; textToHash = textToHash &amp;amp; x_state &amp;amp; "^" &amp;amp; x_zip &amp;amp; "^" &amp;amp; x_country &amp;amp; "^" &amp;amp; x_phone &amp;amp; "^" &amp;amp; x_fax &amp;amp; "^" &amp;amp; x_email &amp;amp; "^" &amp;amp; x_ship_to_company &amp;amp; "^" &amp;amp; x_ship_to_first_name &amp;amp; "^" &amp;amp; x_ship_to_last_name &amp;amp; "^" &amp;amp; x_ship_to_address &amp;amp; "^" &amp;amp; x_ship_to_city &amp;amp; "^" &amp;amp; x_ship_to_state &amp;amp; "^" &amp;amp; x_ship_to_zip &amp;amp; "^" &amp;amp; x_ship_to_country &amp;amp; "^" &amp;amp; x_invoice_num &amp;amp; "^"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;StringValue = "^^60117720851^false^1^H0ENJ3^P^2^Y^CC^XXXX0002^5.00^^Kim^Abunuwara^test, ,^Orem^UT^84097^United States of&lt;SPAN&gt;&amp;nbsp;&lt;A&gt;America^^^gartha@quickmerlin.com^^^^^^^^^1111651-MS-903088832^&amp;nbsp; "&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Signature Key = DC3F79CD0C200E088B3E51EA84BFDC47EED00388F46C014C794D95BF499467EC31FA42AD7AEAFBEE88D9888CE777EF428D3B2C18915DAC2660CA3204A1C53AAB&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SHA512&amp;nbsp;=&lt;SPAN&gt;&amp;nbsp;&lt;SPAN&gt;FD5AEB8713300C38B7D6A6E25624DE553832A62D56C58C9D5BA15A452863E521E215D16BA06CED8E040B37AA828DAE63470DE2870E4D446CC15A8004EA21ED50&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Scenario 2&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;By using the string value (3 form fields)&lt;/P&gt;&lt;P&gt;apiLogin&amp;nbsp; = "3stJ86Ef"&lt;BR /&gt;transId&amp;nbsp; = "60117720851"&lt;BR /&gt;amount&amp;nbsp; = "5.00"&lt;/P&gt;&lt;P&gt;textToHash = "^" + apiLogin + "^" + transId + "^" + amount + "^"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = "^3stJ86Ef^60117720851^5.00^"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SHA512&amp;nbsp;= "&lt;SPAN&gt;7D2C2C0D1A98B4E6F67A7EAD80E019CAA8212D9139785BC7483BBF82A5B22CAC973D10EFD774EA93DE9D24D27B0CF56F477750220F02A95881D80AD8C7BCF6FD"&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Both doesn't match the SHA512 value that was captured from the response.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Would really appreciate if you could advice which fields were used to determine the sHA512 value and whether the information is correct or if am missing something.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is back and forth and amn't getting any were with this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Please advice what am i missing?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Following is the .net code that was provided by you guys to calculate the SHA512 value&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Looking forward to hear from you.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As this is delaying our full process and we have passed our deadline.&lt;/P&gt;</description>
      <pubDate>Fri, 08 Mar 2019 05:31:38 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Help-hmac-sha512/m-p/66807#M40313</guid>
      <dc:creator>Ssooption11</dc:creator>
      <dc:date>2019-03-08T05:31:38Z</dc:date>
    </item>
    <item>
      <title>Re: Help (hmac sha512)</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Help-hmac-sha512/m-p/66808#M40314</link>
      <description>&lt;P&gt;This is the function used to generate the hash value for scenario1 and scenario 2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Public Shared Function GetAuthorizeNetHMACSHA512(ByVal key As String, ByVal textToHash As String)&lt;/P&gt;&lt;P&gt;If String.IsNullOrEmpty(key) Then Return ""&lt;BR /&gt;If String.IsNullOrEmpty(textToHash) Then Return ""&lt;/P&gt;&lt;P&gt;If Key.Length Mod 2 &amp;lt;&amp;gt; 0 OrElse Key.Trim().Length &amp;lt; 2 Then&lt;BR /&gt;Return ""&lt;BR /&gt;End If&lt;/P&gt;&lt;P&gt;Try&lt;BR /&gt;Dim k As Byte() = Enumerable.Range(0, Key.Length).Where(Function(x) x Mod 2 = 0).[Select](Function(x) Convert.ToByte(Key.Substring(x, 2), 16)).ToArray()&lt;BR /&gt;Dim hmac As System.Security.Cryptography.HMACSHA512 = New System.Security.Cryptography.HMACSHA512(k)&lt;BR /&gt;Dim HashedValue As Byte() = hmac.ComputeHash((New System.Text.ASCIIEncoding()).GetBytes(textToHash))&lt;BR /&gt;Return BitConverter.ToString(HashedValue).Replace("-", String.Empty)&lt;BR /&gt;Catch ex As Exception&lt;BR /&gt;Return ""&lt;BR /&gt;End Try&lt;/P&gt;&lt;P&gt;End Function&lt;/P&gt;</description>
      <pubDate>Fri, 08 Mar 2019 05:59:48 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Help-hmac-sha512/m-p/66808#M40314</guid>
      <dc:creator>Ssooption11</dc:creator>
      <dc:date>2019-03-08T05:59:48Z</dc:date>
    </item>
    <item>
      <title>Re: Help (hmac sha512)</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Help-hmac-sha512/m-p/66819#M40324</link>
      <description>Your scenario 2 is totally out of the picture. I am unfortunately slammed or I would run a test in your string for scenario 1 and see what I get. If you have the ability to convert php code to .net code see my thread “Working php hash verification”. On the very last page of that post I put some 100% tested and working SIM code. The step that .net has that php does not is converting the signature key to a byte array.&lt;BR /&gt;&lt;BR /&gt;But the 30 fields in that post are the right 30 fields to use and the string for the fingerprint is also 100% tested and working. Your scenario one looks like you’re on the right track for the response. Needs tweaked if you are not matching but it looks close to right just glancing at it.</description>
      <pubDate>Fri, 08 Mar 2019 15:29:42 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Help-hmac-sha512/m-p/66819#M40324</guid>
      <dc:creator>Renaissance</dc:creator>
      <dc:date>2019-03-08T15:29:42Z</dc:date>
    </item>
    <item>
      <title>Re: Help (hmac sha512)</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Help-hmac-sha512/m-p/66834#M40338</link>
      <description>&lt;P&gt;&lt;a href="https://community.developer.cybersource.com/t5/user/viewprofilepage/user-id/28634"&gt;@Ssooption11&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So I just copied and pasted your string. A few things stick out- 1: you have test, , as the address. Not sure if that's how you entered it on the form. 2: You have a space at the end of your string. That will throw off your hash. 3: You have x_test_request set to false, but do not have x_trans_id in your string, or a value for it rather.&amp;nbsp; You may know something that I do not but it would seem you would get some sort of trans_id. If you're using test mode on a production account I would get out of there bc that will cause all sorts of issues when doing hash verifications.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 08 Mar 2019 19:55:17 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Help-hmac-sha512/m-p/66834#M40338</guid>
      <dc:creator>Renaissance</dc:creator>
      <dc:date>2019-03-08T19:55:17Z</dc:date>
    </item>
    <item>
      <title>Re: Help (hmac sha512)</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Help-hmac-sha512/m-p/66840#M40344</link>
      <description>&lt;P&gt;&lt;a href="https://community.developer.cybersource.com/t5/user/viewprofilepage/user-id/28634"&gt;@Ssooption11&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I just ran your string. You do have a value for x_trans_id, you just have an extra caret in front of it.&amp;nbsp; If you axe the space at the end and remove the extra caret you will get a validated hash.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is your string:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;"^60117720851^false^1^H0ENJ3^P^2^Y^CC^XXXX0002^5.00^^Kim^Abunuwara^test, ,^Orem^UT^84097^United States of America^^^gartha@quickmerlin.com^^^^^^^^^1111651-MS-903088832^";&lt;/P&gt;</description>
      <pubDate>Sat, 09 Mar 2019 20:54:36 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Help-hmac-sha512/m-p/66840#M40344</guid>
      <dc:creator>Renaissance</dc:creator>
      <dc:date>2019-03-09T20:54:36Z</dc:date>
    </item>
    <item>
      <title>Re: Help (hmac sha512)</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Help-hmac-sha512/m-p/66850#M40353</link>
      <description>&lt;P&gt;Thanks Renaissance.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;that really helped in generating the hash value and it matched the SHA512 hash value that was provided from the response url.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;</description>
      <pubDate>Mon, 11 Mar 2019 08:32:09 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Help-hmac-sha512/m-p/66850#M40353</guid>
      <dc:creator>Ssooption11</dc:creator>
      <dc:date>2019-03-11T08:32:09Z</dc:date>
    </item>
  </channel>
</rss>

