首页 > 解决方案 > 如何从 AngularJS 调用 PHP 文件

问题描述

我正在尝试将支付网关集成到 Web 应用程序中。我正在尝试调用重定向到另一个页面的 php 文件。我需要向它传递一些值,然后它应该重定向到支付网关页面。

这就是我正在做的事情:

<form name="payBillForm" id="payBillFormId" ng-submit="paymentGateway()">
 <div class="input-group"  ng-class="{'has-error': amountEnteredInvalid}" >
          <span class="input-group-addon"> <i class="fa fa-rupee"></i>
          </span>
          <input type="text" class="form-control" 
          ng-change="testAmountValidity()"
          ng-disabled="isPaymentComplete" ng-model="amountPayingNow" >
         <button class="btn btn-info" type="submit">Pay</button>
        </div>
</form>

控制器:

let formName = document.getElementById('payBillFormId');

let paymentFormData = new FormData(formName);
paymentFormData.append("amount", $scope.amountPayingNow);
paymentFormData.append("email", $scope.payEmailId);
paymentFormData.append("mobile_no", $scope.payContactNo);
paymentFormData.append("invoice", 234);
paymentFormData.append("invoice_amount", $scope.amountPayingNow);


$http({
    method: "POST",
        url: '../PaymentGateway/index.php',
        data: paymentFormData,
        ContentType: false

}).then(function successCallback(response) {
  console.log(response, "Payrespo");
});

在控制台的响应中,我得到:

"<br />↵&lt;b>Notice</b>:  Undefined index: invoice_amt in <b>C:\xampp\htdocs\myworkspace\AMS\apartment-management-system\PaymentGateway\index.php</b> on line <b>15</b><br />

PHP:

    <?php
require_once('fonepaisa.php'); 
 $invoice_amt = $_REQUEST['invoice_amt'];
 $amount = $_REQUEST['amount'];
 $email = $_REQUEST['email'];
 $mobile_no = $_REQUEST['mobile_no'];
 //$invoice = $_REQUEST['invoice'];

fonepaisa_forward(array(

            'id'=>'FPTEST',
            'merchant_id'=>'FPTEST',
            'merchant_display'=>'fonePaisa Test Merchant',
            'invoice_amt' => "$invoice_amt",
            'amount' => "$amount",
            'email'=> "$email",
            'mobile_no'=> "$mobile_no",
            'callback_url'=>'http://localhost/myworkspace/AMS/apartment-management-system/PaymentGateway/confirm.php',
            'callback_failure_url'=>'http://localhost/myworkspace/AMS/apartment-management-system/PaymentGateway/cancel.php',
            'invoice'=>'FPORDER'.rand(1,100000000),
            'api_key'=>'08Z1782051U62BY9OUGW4XM67GF2004',
            'private_key'=>'file://C:\xampp\htdocs\myworkspace\AMS\apartment-management-system\PaymentGateway\priv.pem',
            'public_key'=>'',
            'is_live_env'=>'N' //The value should be changed to 'Y' when one wants to move to production
        ));
exit
?>

标签: javascriptphpangularjssymfony

解决方案


您的 HTML 和 JS 代码不包含POST 请求的任何“invoice_amt”值!我认为你invoice_amout而不是invoice_amt

尝试替换你$_POST['invoice_amt']$_POST['invoice_amount']


推荐阅读