1

我正在为发布请求处理正文有效负载摘要。

我正在使用提供的测试用例来尝试获得与 Cyber​​Source 使用其测试值和测试方法相同的输出 base64。

public static string GenerateDigest() {
     var digest = "";
     var bodyText = "{ your JSON payload }";
     using (var sha256hash = SHA256.Create()) {
         byte[] payloadBytes = sha256hash
             .ComputeHash(Encoding.UTF8.GetBytes(bodyText));
         digest = Convert.ToBase64String(payloadBytes);
         digest = "SHA-256=" + digest;
     }
     return digest;
}

消化 测试用例具有以下 JSON 有效负载:

{
  "clientReferenceInformation": {
    "code": "TC50171_3"
  },
  "processingInformation": {
    "commerceIndicator": "internet"
  },
  "paymentInformation": {
    "card": {
      "number": "4111111111111111",
      "expirationMonth": "12",
      "expirationYear": "2031",
      "securityCode": "123"
    }
  },
  "orderInformation": {
    "amountDetails": {
      "totalAmount": "102.21",
      "currency": "USD"
    },
    "billTo": {
      "firstName": "John",
      "lastName": "Doe",
      "company": "Visa",
      "address1": "1 Market St",
      "address2": "Address 2",
      "locality": "san francisco",
      "administrativeArea": "CA",
      "postalCode": "94105",
      "country": "US",
      "email": "test@cybs.com",
      "phoneNumber": "4158880000"
    }
  }
}

Cyber​​Source 图像

我尝试生成 base64 字符串的测试有效负载如下:

var bodyText = @"
{
  ""clientReferenceInformation"": {
    ""code"": ""TC50171_3""
  },
  ""processingInformation"": {
    ""commerceIndicator"": ""internet""
  },
  ""paymentInformation"": {
    ""card"": {
      ""number"": ""4111111111111111"",
      ""expirationMonth"": ""12"",
      ""expirationYear"": ""2031"",
      ""securityCode"": ""123""
    }
  },
  ""orderInformation"": {
    ""amountDetails"": {
      ""totalAmount"": ""102.21"",
      ""currency"": ""USD""
    },
    ""billTo"": {
      ""firstName"": ""John"",
      ""lastName"": ""Doe"",
      ""company"": ""Visa"",
      ""address1"": ""1 Market St"",
      ""address2"": ""Address 2"",
      ""locality"": ""san francisco"",
      ""administrativeArea"": ""CA"",
      ""postalCode"": ""94105"",
      ""country"": ""US"",
      ""email"": ""test@cybs.com"",
      ""phoneNumber"": ""4158880000""
    }
  }
}
";

和..

var bodyjson = new
            {
                clientReferenceInformation = 
                new { code = "TC50171_3" },
                processingInformation =
                new {
                commerceIndicator = "internet"},
                paymentInformation =
                new { card =
                    new {
                        number = "4111111111111111",
                        expirationMonth = "12",
                        expirationYear = "2031",
                        securityCode = "123"
                    }
                },
                orderInformation = new
                {
                    amountDetails = new
                    {
                        totalAmount = "102.21",
                        currency = "USD"
                    },
                    billTo = new
                    {
                        firstName = "John",
                        lastName = "Doe",
                        company = "Visa",
                        address1 = "1 Market St",
                        address2 = "Address 2",
                        locality = "san francisco",
                        administrativeArea = "CA",
                        postalCode = "94105",
                        country = "US",
                        email = "test@cybs.com",
                        phoneNumber = "4158880000"
                    }
                }
            };
            var bodystring = JsonConvert.SerializeObject(bodyjson, Formatting.Indented);

返回的 Sha256 byte64 应该是:

SHA-256=a/goIo1XUCr80rnKFCWp7yRpwVL50E9RaunuEHh11XM=

在此处输入图像描述

上面的测试用例代码全部来自 Cyber​​source 入门指南。但是我的身体字符串不会产生相同的结果。

任何援助将不胜感激。

4

1 回答 1

0
string body = "{\n" +
                "  \"clientReferenceInformation\": {\n" +
                "    \"code\": \"TC50171_3\"\n" +
                "  },\n" +
                "  \"processingInformation\": {\n" +
                "    \"commerceIndicator\": \"internet\"\n" +
                "  },\n" +
                "  \"orderInformation\": {\n" +
                "    \"billTo\": {\n" +
                "      \"firstName\": \"john\",\n" +
                "      \"lastName\": \"doe\",\n" +
                "      \"address1\": \"201 S. Division St.\",\n" +
                "      \"postalCode\": \"48104-2201\",\n" +
                "      \"locality\": \"Ann Arbor\",\n" +
                "      \"administrativeArea\": \"MI\",\n" +
                "      \"country\": \"US\",\n" +
                "      \"phoneNumber\": \"999999999\",\n" +
                "      \"email\": \"test@cybs.com\"\n" +
                "    },\n" +
                "    \"amountDetails\": {\n" +
                "      \"totalAmount\": \"10\",\n" +
                "      \"currency\": \"USD\"\n" +
                "    }\n" +
                "  },\n" +
                "  \"paymentInformation\": {\n" +
                "    \"card\": {\n" +
                "      \"expirationYear\": \"2031\",\n" +
                "      \"number\": \"5555555555554444\",\n" +
                "      \"securityCode\": \"123\",\n" +
                "      \"expirationMonth\": \"12\",\n" +
                "      \"type\": \"002\"\n" +
                "    }\n" +
                "  }\n" +
                "}";
于 2020-11-20T09:07:45.603 回答