如何解决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返回的响应
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。