ASP.NET MVC中带有JSON响应的API调用

问题描述

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

下面是将Curl转换为C#。

[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',error: function (response) {
                       
                        alert('BVN Does Not Exist Or Error Processing Request');
                        $('.spinner').css('display','none');
                    }
    });
});

警报消息响应为UNDEFINED

编辑

我添加了Class以将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
  }
}

如何访问课程中的其他部分,例如 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返回的响应

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...