API 在 ASP.NET MVC 中使用 JSON 响应调用

API Call With JSON Response in ASP.NET MVC

我是 ASP.NET MVC 的新手。我想在支付网关上调用 API。 API 仅尝试解析用户身份。我已经用 C# 编写了 CURL,但我似乎对如何继续使用 AJAX.[=17= 调用 API 和 return JSON 感到困惑]

下面是转换为 C# 的 Curl。

[HttpPost]
public JsonResult ResolveBVN()
{
        //string str = BVN;

        var secretKey = "secretkey";

        using (var client = new HttpClient())
        {
            client.DefaultRequestHeaders.Add("Authorization", $"Bearer {secretKey}");
            var response = client.PostAsync("https://api.paystack.co/bvn/match", new StringContent("{ bvn: \"22146592120\",\n      account_number: \"0689688306\",\n      bank_code: \"044\",\n      first_name: \"uthman\",\n      last_name: \"jinadu\"\n  }")).Result;

            PaystackAPI paystackAPI = new PaystackAPI()
            {
                statuscode = response.IsSuccessStatusCode,
                message = response.StatusCode
            };

            return Json(paystackAPI);
        }
}

AJAX 调用如下:

$("#btnGetBVN").click(function () {
    if ($('#BVN').val() == '' || $('#BVN').val() == undefined) {
        alert('Please Enter Customer BVN');
        return false;
    }

    $('.spinner').css('display', 'block');  //if clicked ok spinner shown

    $.ajax({
                    type: "POST",
                     url: "@Url.Action("ResolveBVN", "Transactions")",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (response) {
                        alert(response.status);
                        $('#Firstname').val(response.data.first_name);
                        $('#Surname').val(response.data.last_name);
                      //  $('#Phone_Number').val(response.data.mobile);
                    
                        $('.spinner').css('display', 'none');
                    },
                    failure: function (response) {
                        
                        alert('BVN Does Not Exist Or Error Processing Request');
                        $('.spinner').css('display', 'none');
                    },
                    error: function (response) {
                       
                        alert('BVN Does Not Exist Or Error Processing Request');
                        $('.spinner').css('display', 'none');
                    }
    });
});

警报消息响应是UNDEFINED

编辑

我已将 Class 添加到 return,将 JSon 添加到 AJAX 调用。我只能使用响应的状态码。

如何访问响应的其他部分?响应示例如下:

 {
  "status": true,
  "message": "BVN lookup successful",
  "data": {
   "bvn": "000000000000",
"is_blacklisted": false,
"account_number": true,
"first_name": true,
"last_name": true
  },
  "meta": {
"calls_this_month": 1,
"free_calls_left": 9
  }
}

如何访问 class 中的其他部分,如 account_Number、消息 等。

请使用以下:-

var secretKey = string.Empty;
            using (var client = new HttpClient())
            {

                client.DefaultRequestHeaders.Add("Authorization", $"Bearer {secretKey}");
                var response = httpClient.PostAsync("https://api.paystack.co/bvn/match", new StringContent("{ bvn: \"12345678912\",\n      account_number: \"0000000000\",\n      bank_code: \"087\",\n      first_name: \"bojack\",\n      last_name: \"horseman\"\n  }")).Result;
            }

请确保设置正确的密钥。 您应该在 ajax.Response 变量调用的方法中编写此代码,该方法将包含 paystack api

返回的响应