Angularjs 从Angular js中的HTTP POST响应获取表单数据

Angularjs 从Angular js中的HTTP POST响应获取表单数据,angularjs,asp.net-web-api,http-headers,httprequest,Angularjs,Asp.net Web Api,Http Headers,Httprequest,我正在尝试使用angularjs和asp.net web api开发支付模块。 我使用的是支付api iyzico 使用该api,我创建了购物令牌请求,该请求返回一个js脚本响应和一个购物令牌 我加载这个js文件,通过返回js文件生成付款单 生成付款表单后,我输入了我的信用卡信息,并将这些信息发送到支付api,然后支付api返回响应,但我无法从页面获得此响应。此响应在加载页面时出现 在payment.js中生成购物令牌的Http Get方法 function loadDetails() {

我正在尝试使用angularjs和asp.net web api开发支付模块。 我使用的是支付api iyzico

使用该api,我创建了购物令牌请求,该请求返回一个js脚本响应和一个购物令牌

我加载这个js文件,通过返回js文件生成付款单

生成付款表单后,我输入了我的信用卡信息,并将这些信息发送到支付api,然后支付api返回响应,但我无法从页面获得此响应。此响应在加载页面时出现

在payment.js中生成购物令牌的Http Get方法

  function loadDetails() {

        $http.get( '/API/api/profile/GetPaymentToken').then(function (results) {
            $scope.paymentData = jQuery.parseJSON(results.data);
            $scope.code_snippet = $sce.trustAsHtml($scope.paymentData.code_snippet);
            var paymentScriptUrl = "https://www.iyzico.com/frontend/form/v1/widget.js?mode=test&token=" + $scope.paymentData.transaction_token;
            $.ajax({
                url: paymentScriptUrl,
                dataType: "script",
                cache: true,
                success: function (data, textStatus, jqXHR) {
                    var f = new Function(data);
                    f();

                    iyzi_jQuery(this).iyziPayment({
                        host: 'https://iyziconnect.com/pay-with-transaction-token/',
                        mode: 'test',
                        assetsURL: 'https://www.iyzico.com/frontend/form/v1/',
                        installment: '0',
                        language: 'tr'
                    });

                },
                error: function (jqXHR, status, err) {
                    console.log("");
                }
            });
        },
            function (response) { // optional
                _helper.error.handleError(toaster, response.data, response.status);
            })

    }
[Authorize]
[HttpGet]
[Route("GetPaymentToken")]
public async Task<IHttpActionResult> GetPaymentToken()
{
    System.Diagnostics.Debugger.Break(); 
    WebRequest request = WebRequest.Create("https://api.iyzico.com/v2/create");
    request.Method = "POST";
    var rand = new Random();
    var external_id = rand.Next(0, 100000000);
    string postData = "api_id=my_id"
    + "&secret=my_secret"
    + "&external_id=" + external_id.ToString()
    + "&mode=test"
    + "&type=CC.DB"
    + "&return_url=http://localhost:2020/payment2" //returning url
    + "&amount=10020"
    + "&currency=TRY"
    + "&descriptor=PAYMENT_DESCRIPTION"
    + "&customer_contact_ip=CUSTOMER_IP"
    + "&customer_language=tr"
     + "&installment=false";

    byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(postData);
    request.ContentType = "application/x-www-form-urlencoded";
    request.ContentLength = byteArray.Length;
    System.IO.Stream dataStream = request.GetRequestStream();
    dataStream.Write(byteArray, 0, byteArray.Length);
    dataStream.Close();

    WebResponse response = request.GetResponse();
    dataStream = response.GetResponseStream();

    System.IO.StreamReader reader = new System.IO.StreamReader(dataStream);
    string responseFromServer = reader.ReadToEnd();

    reader.Close();
    dataStream.Close();
    response.Close();

    return Ok(responseFromServer);
Api中的令牌生成器,在payment.js中调用

  function loadDetails() {

        $http.get( '/API/api/profile/GetPaymentToken').then(function (results) {
            $scope.paymentData = jQuery.parseJSON(results.data);
            $scope.code_snippet = $sce.trustAsHtml($scope.paymentData.code_snippet);
            var paymentScriptUrl = "https://www.iyzico.com/frontend/form/v1/widget.js?mode=test&token=" + $scope.paymentData.transaction_token;
            $.ajax({
                url: paymentScriptUrl,
                dataType: "script",
                cache: true,
                success: function (data, textStatus, jqXHR) {
                    var f = new Function(data);
                    f();

                    iyzi_jQuery(this).iyziPayment({
                        host: 'https://iyziconnect.com/pay-with-transaction-token/',
                        mode: 'test',
                        assetsURL: 'https://www.iyzico.com/frontend/form/v1/',
                        installment: '0',
                        language: 'tr'
                    });

                },
                error: function (jqXHR, status, err) {
                    console.log("");
                }
            });
        },
            function (response) { // optional
                _helper.error.handleError(toaster, response.data, response.status);
            })

    }
[Authorize]
[HttpGet]
[Route("GetPaymentToken")]
public async Task<IHttpActionResult> GetPaymentToken()
{
    System.Diagnostics.Debugger.Break(); 
    WebRequest request = WebRequest.Create("https://api.iyzico.com/v2/create");
    request.Method = "POST";
    var rand = new Random();
    var external_id = rand.Next(0, 100000000);
    string postData = "api_id=my_id"
    + "&secret=my_secret"
    + "&external_id=" + external_id.ToString()
    + "&mode=test"
    + "&type=CC.DB"
    + "&return_url=http://localhost:2020/payment2" //returning url
    + "&amount=10020"
    + "&currency=TRY"
    + "&descriptor=PAYMENT_DESCRIPTION"
    + "&customer_contact_ip=CUSTOMER_IP"
    + "&customer_language=tr"
     + "&installment=false";

    byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(postData);
    request.ContentType = "application/x-www-form-urlencoded";
    request.ContentLength = byteArray.Length;
    System.IO.Stream dataStream = request.GetRequestStream();
    dataStream.Write(byteArray, 0, byteArray.Length);
    dataStream.Close();

    WebResponse response = request.GetResponse();
    dataStream = response.GetResponseStream();

    System.IO.StreamReader reader = new System.IO.StreamReader(dataStream);
    string responseFromServer = reader.ReadToEnd();

    reader.Close();
    dataStream.Close();
    response.Close();

    return Ok(responseFromServer);

如何获得json命名的数组?

为了回调,您必须牺牲单页应用程序

返回您的REST地址 处理POST参数 生成返回文本/html一个简单的成功失败页面。让此页面包含结果并链接到相应的页面主页url或付款页面url 链接应该打开你的单页angularjs,你的控制器应该显示 根据URL选择合适的页面。