0

私は新しい vb.net 開発者で、PCI に準拠せずにクレジット カード データを保存できる API サービスと統合しようとしています。私が抱えている問題は、サンプルが JavaScript に対してのみ提供されていることです。vb.NET で同じ単純な手順を作成する方法を理解するのに苦労しています。誰かがこのサンプルで私を助けてくれることを望んでいました.

アイデアは、このデータをフォームから API に POST し、成功または失敗の応答データを処理することです。

        //<![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

4

1 に答える 1

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-もう少し作業が必要ですが、それでもそれほど悪くはありません-シリアライゼーションを手動で処理する必要があります。これを行うにはおそらく多くの方法がありますが、ここではその 1 つを示します。

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 オブジェクトなどであり、読み取りまたは逆シリアル化する必要があります。

于 2013-02-21T23:38:26.317 に答える