<?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 Webhook X-Anet-Signature validation problem C# in Integration and Testing</title>
    <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Webhook-X-Anet-Signature-validation-problem-C/m-p/86346#M54337</link>
    <description>&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN&gt;When my transactionRequest.amount equal a 100.00 I can't match in&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;X-Anet-Signature&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;SPAN&gt;, if it is 100.11, or other amount with two decimal points can match X-Anet-Signature：like 155.94 ,it is ok&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN&gt;This is my C# Get HPP Code:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;var transactionRequest = new transactionRequestType&lt;BR /&gt;{&lt;BR /&gt;transactionType = !ispreauth ? transactionTypeEnum.authCaptureTransaction.ToString() : transactionTypeEnum.authOnlyTransaction.ToString(), // authorize capture only&lt;BR /&gt;amount = amount,&lt;BR /&gt;profile = new customerProfilePaymentType()&lt;BR /&gt;{&lt;BR /&gt;customerProfileId = myprofileid,&lt;BR /&gt;},&lt;BR /&gt;order = new orderType()&lt;BR /&gt;{&lt;BR /&gt;invoiceNumber = formid,&lt;BR /&gt;description = ""&lt;BR /&gt;},&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;var request = new getHostedPaymentPageRequest();&lt;BR /&gt;request.transactionRequest = transactionRequest;&lt;BR /&gt;request.hostedPaymentSettings = settingslist.ToArray();&lt;BR /&gt;request.merchantAuthentication = merchantAuthentication;&lt;/P&gt;&lt;P&gt;// instantiate the controller that will call the service&lt;BR /&gt;var controller = new getHostedPaymentPageController(request);&lt;BR /&gt;controller.Execute(runEnvironment);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV class=""&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN&gt;This is my webhook CheckToken Code:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;public static bool CheckTokens(string signatureKey, string jsonRawBody, string AnetSignature)&lt;BR /&gt;{&lt;BR /&gt;if (String.IsNullOrEmpty(jsonRawBody)) return false;&lt;BR /&gt;if (String.IsNullOrEmpty(AnetSignature)) return false;&lt;BR /&gt;if (String.IsNullOrEmpty(signatureKey)) return false;&lt;/P&gt;&lt;P&gt;// generate the shaw token&lt;BR /&gt;var token = GetSHAToken(jsonRawBody, signatureKey);&lt;BR /&gt;if (String.IsNullOrEmpty(token)) return false;&lt;/P&gt;&lt;P&gt;return AnetSignature.Equals(token, StringComparison.OrdinalIgnoreCase);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;static private string GetSHAToken(string data, string key)&lt;BR /&gt;{&lt;BR /&gt;// use Encoding.ASCII.GetBytes or Encoding.UTF8.GetBytes&lt;BR /&gt;byte[] keyBytes = Encoding.ASCII.GetBytes(key);&lt;BR /&gt;byte[] bodyBytes = Encoding.ASCII.GetBytes(data);&lt;BR /&gt;using (var hmac = new HMACSHA512(keyBytes))&lt;BR /&gt;{&lt;BR /&gt;byte[] hashBytes = hmac.ComputeHash(bodyBytes);&lt;BR /&gt;string computedSignature = BitConverter.ToString(hashBytes).Replace("-", "");&lt;/P&gt;&lt;P&gt;return computedSignature;&lt;BR /&gt;}&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Success response: &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;X-Anet-Signature：&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;sha512=8B681B20F71C03A1EF29AD143FA69208DE30AE3B3479B1DA3B145574792AC8B1BDC65CBA8AE4BB33A43D153346DB8BE59C328CCF0219C90E202AB2CB7114356C&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Body:&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;SPAN&gt;"notificationId"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"1a3e3187-d4a2-4789-8b50-2232347abb9c"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"eventType"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"net.authorize.payment.authcapture.created"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"eventDate"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"2023-04-24T17:08:18.600636Z"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"webhookId"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"231a1387-1f73-4dc2-9376-1e874b1be836"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"payload"&lt;/SPAN&gt;&lt;SPAN&gt;:{&lt;/SPAN&gt;&lt;SPAN&gt;"responseCode"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"authCode"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"50SMK4"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"avsResponse"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"Y"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"authAmount"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;155.94&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"invoiceNumber"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"20230424170807229"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"entityName"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"transaction"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"id"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"60215674752"&lt;/SPAN&gt;&lt;SPAN&gt;}}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;Error Reponse:&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;X-Anet-Signature：sha512=D636BEE76B7FB85079E95347000C8689C44026745A9123A588768273CD4FE43228ED472A34AFFCD30FA743793A30FA479C536CEC51FBADF46D2E85B3BE614FF1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Body：&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;SPAN&gt;"notificationId"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"5018bb26-0cb1-4d93-8b95-4f750b962ab6"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"eventType"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"net.authorize.payment.authcapture.created"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"eventDate"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"2023-04-24T19:33:37.2940108Z"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"webhookId"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"231a1387-1f73-4dc2-9376-1e874b1be836"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"payload"&lt;/SPAN&gt;&lt;SPAN&gt;:{&lt;/SPAN&gt;&lt;SPAN&gt;"responseCode"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"authCode"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"HGOSNF"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"avsResponse"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"Y"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"authAmount"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;100.0&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"invoiceNumber"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"20230424193316292"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"entityName"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"transaction"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"id"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"60215683565"&lt;/SPAN&gt;&lt;SPAN&gt;}}&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV class=""&gt;&lt;DIV&gt;&lt;DIV class=""&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN&gt;I promise to use the same signatureKey，I don't quite understand if I set amount to 100.00, but the webhook returns 100.0 to me has anything to do with it，&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;I've also tried replacing C# requests with HTTP POST methods&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;and&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;I tried to set amount to 100 or 100.0 or 100.00 , But it never matched.&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;</description>
    <pubDate>Mon, 24 Apr 2023 20:14:45 GMT</pubDate>
    <dc:creator>jerry</dc:creator>
    <dc:date>2023-04-24T20:14:45Z</dc:date>
    <item>
      <title>Webhook X-Anet-Signature validation problem C#</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Webhook-X-Anet-Signature-validation-problem-C/m-p/86346#M54337</link>
      <description>&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN&gt;When my transactionRequest.amount equal a 100.00 I can't match in&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;X-Anet-Signature&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;SPAN&gt;, if it is 100.11, or other amount with two decimal points can match X-Anet-Signature：like 155.94 ,it is ok&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN&gt;This is my C# Get HPP Code:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;var transactionRequest = new transactionRequestType&lt;BR /&gt;{&lt;BR /&gt;transactionType = !ispreauth ? transactionTypeEnum.authCaptureTransaction.ToString() : transactionTypeEnum.authOnlyTransaction.ToString(), // authorize capture only&lt;BR /&gt;amount = amount,&lt;BR /&gt;profile = new customerProfilePaymentType()&lt;BR /&gt;{&lt;BR /&gt;customerProfileId = myprofileid,&lt;BR /&gt;},&lt;BR /&gt;order = new orderType()&lt;BR /&gt;{&lt;BR /&gt;invoiceNumber = formid,&lt;BR /&gt;description = ""&lt;BR /&gt;},&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;var request = new getHostedPaymentPageRequest();&lt;BR /&gt;request.transactionRequest = transactionRequest;&lt;BR /&gt;request.hostedPaymentSettings = settingslist.ToArray();&lt;BR /&gt;request.merchantAuthentication = merchantAuthentication;&lt;/P&gt;&lt;P&gt;// instantiate the controller that will call the service&lt;BR /&gt;var controller = new getHostedPaymentPageController(request);&lt;BR /&gt;controller.Execute(runEnvironment);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV class=""&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN&gt;This is my webhook CheckToken Code:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;public static bool CheckTokens(string signatureKey, string jsonRawBody, string AnetSignature)&lt;BR /&gt;{&lt;BR /&gt;if (String.IsNullOrEmpty(jsonRawBody)) return false;&lt;BR /&gt;if (String.IsNullOrEmpty(AnetSignature)) return false;&lt;BR /&gt;if (String.IsNullOrEmpty(signatureKey)) return false;&lt;/P&gt;&lt;P&gt;// generate the shaw token&lt;BR /&gt;var token = GetSHAToken(jsonRawBody, signatureKey);&lt;BR /&gt;if (String.IsNullOrEmpty(token)) return false;&lt;/P&gt;&lt;P&gt;return AnetSignature.Equals(token, StringComparison.OrdinalIgnoreCase);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;static private string GetSHAToken(string data, string key)&lt;BR /&gt;{&lt;BR /&gt;// use Encoding.ASCII.GetBytes or Encoding.UTF8.GetBytes&lt;BR /&gt;byte[] keyBytes = Encoding.ASCII.GetBytes(key);&lt;BR /&gt;byte[] bodyBytes = Encoding.ASCII.GetBytes(data);&lt;BR /&gt;using (var hmac = new HMACSHA512(keyBytes))&lt;BR /&gt;{&lt;BR /&gt;byte[] hashBytes = hmac.ComputeHash(bodyBytes);&lt;BR /&gt;string computedSignature = BitConverter.ToString(hashBytes).Replace("-", "");&lt;/P&gt;&lt;P&gt;return computedSignature;&lt;BR /&gt;}&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Success response: &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;X-Anet-Signature：&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;sha512=8B681B20F71C03A1EF29AD143FA69208DE30AE3B3479B1DA3B145574792AC8B1BDC65CBA8AE4BB33A43D153346DB8BE59C328CCF0219C90E202AB2CB7114356C&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Body:&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;SPAN&gt;"notificationId"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"1a3e3187-d4a2-4789-8b50-2232347abb9c"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"eventType"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"net.authorize.payment.authcapture.created"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"eventDate"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"2023-04-24T17:08:18.600636Z"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"webhookId"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"231a1387-1f73-4dc2-9376-1e874b1be836"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"payload"&lt;/SPAN&gt;&lt;SPAN&gt;:{&lt;/SPAN&gt;&lt;SPAN&gt;"responseCode"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"authCode"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"50SMK4"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"avsResponse"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"Y"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"authAmount"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;155.94&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"invoiceNumber"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"20230424170807229"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"entityName"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"transaction"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"id"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"60215674752"&lt;/SPAN&gt;&lt;SPAN&gt;}}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;Error Reponse:&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;X-Anet-Signature：sha512=D636BEE76B7FB85079E95347000C8689C44026745A9123A588768273CD4FE43228ED472A34AFFCD30FA743793A30FA479C536CEC51FBADF46D2E85B3BE614FF1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Body：&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;SPAN&gt;"notificationId"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"5018bb26-0cb1-4d93-8b95-4f750b962ab6"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"eventType"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"net.authorize.payment.authcapture.created"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"eventDate"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"2023-04-24T19:33:37.2940108Z"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"webhookId"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"231a1387-1f73-4dc2-9376-1e874b1be836"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"payload"&lt;/SPAN&gt;&lt;SPAN&gt;:{&lt;/SPAN&gt;&lt;SPAN&gt;"responseCode"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"authCode"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"HGOSNF"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"avsResponse"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"Y"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"authAmount"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;100.0&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"invoiceNumber"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"20230424193316292"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"entityName"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"transaction"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;"id"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;"60215683565"&lt;/SPAN&gt;&lt;SPAN&gt;}}&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV class=""&gt;&lt;DIV&gt;&lt;DIV class=""&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN&gt;I promise to use the same signatureKey，I don't quite understand if I set amount to 100.00, but the webhook returns 100.0 to me has anything to do with it，&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;I've also tried replacing C# requests with HTTP POST methods&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;and&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;I tried to set amount to 100 or 100.0 or 100.00 , But it never matched.&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;</description>
      <pubDate>Mon, 24 Apr 2023 20:14:45 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Webhook-X-Anet-Signature-validation-problem-C/m-p/86346#M54337</guid>
      <dc:creator>jerry</dc:creator>
      <dc:date>2023-04-24T20:14:45Z</dc:date>
    </item>
    <item>
      <title>Re: Webhook X-Anet-Signature validation problem C#</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Webhook-X-Anet-Signature-validation-problem-C/m-p/86692#M54559</link>
      <description>&lt;P&gt;thanks for sharing&lt;/P&gt;</description>
      <pubDate>Mon, 05 Jun 2023 13:40:02 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Webhook-X-Anet-Signature-validation-problem-C/m-p/86692#M54559</guid>
      <dc:creator>mihcaelmark834</dc:creator>
      <dc:date>2023-06-05T13:40:02Z</dc:date>
    </item>
  </channel>
</rss>

