我是一名新的vb.net开发人员,我正在尝试与API服务集成,该服务允许我存储信用卡数据而不符合PCI标准。我遇到的问题是该示例仅为JavaScript提供,而且我无法弄清楚如何在vb.NET中创建相同的简单过程。我希望有人可以帮助我这个样本。
我们的想法是将此数据从我的表单发送到API,然后处理成功或失败的响应数据。
//<![CDATA[
$(document).ready(function() {
$('input:button').click(function() {
$.ajax({
type: 'post',
url: 'https://certify.i4go.com/index.cfm',
dataType: 'jsonp',
data: {
fuseaction: 'account.jsonpPostCardEntry',
i4Go_AccountID: '123123',
i4Go_SiteID: '456456',
i4Go_CardNumber: $('#i4Go_CardNumber').val(),
i4Go_ExpirationMonth: $('#i4Go_ExpirationMonth').val(),
i4Go_ExpirationYear: $('#i4Go_ExpirationYear').val()
},
cache: false
});
});
});
function parseResponse(data) {
if (data.i4go_responsecode != null) {
if (data.i4go_responsecode == 1) {
$('#response').html('i4Go_UniqueId: ' + data.i4go_uniqueid);
} else {
$('#response').html('i4Go_ResponseCode: ' + data.i4go_responsecode);
}
} else {
$('#response').html('i4Go_ResponseCode is null');
}
}
//]]>
</script>
</head>
<body>
<table cellpadding="0" cellspacing="0">
<tbody><tr>
<td>Card number:</td><td><input type="text" id="i4Go_CardNumber" value="4111111111111111"></td>
</tr>
<tr>
<td>Exp month:</td><td><input type="text" id="i4Go_ExpirationMonth" value="12"></td>
</tr>
<tr>
<td>Exp year:</td><td><input type="text" id="i4Go_ExpirationYear" value="2020"></td>
</tr>
<tr>
<td><input type="button" value="Get Token"></td>
</tr>
</tbody></table>
<div id="response"></div>
我感谢任何帮助。
干杯,
AJ
答案 0 :(得分:1)
如果您使用的是.NET 4.5,请查看新的WebAPI调用,这使得这非常简单。创建表示数据的类后,序列化全部为您完成,您的代码将如下所示:
Dim jsonObject As ' TODO: Create a class that represents the data, and instantiate the object with the data
Dim client As New HttpClient()
client.BaseAddress = new Uri("https://certify.i4go.com/")
Dim result As HttpResponseMessage = client.PostAsJsonAsync("index.cfm", jsonObject).Result
分析返回的对象以获取他们传回给你的任何内容,并决定如何从那里继续。
有很多重载可供选择,所有这些都基本相同。
修改强>:
对于.NET 4.0,您可以使用WebClient
而不是HttpClient
- 这是一个更多的工作,但仍然不是太糟糕 - 您只需手动处理序列化。还有很多方法可以做到这一点,但这里有一个:
Dim message As String
Dim s As New SomeData() ' SomeData still represents the data you're passing
message = New JavaScriptSerializer().Serialize(s)
Dim webClient As New WebClient()
Dim response() As Byte = webClient.UploadData(url, Encoding.UTF8.GetBytes(message))
Dim responseString as String = Encoding.UTF8.GetString(response)
现在您已将响应作为字符串,您可以弄清楚如何处理它 - 它可能是一个JSON对象或类似的东西,您需要阅读或反序列化。