Как я могу получить данные формы в обратном вызове со значением post в контроллере?

Я пытаюсь подтвердить онлайн-платеж.

После того, как я подключусь к банк используя function actionToken и оплатите, банк отправит мне некоторую информацию для подтверждения оплаты с POST метод, но я не могу получить информацию с POST метод.

Вот мой payment controller, function actionToken для отправки данных с моего сайта, таких как количество ,а также function actionVerify для подтверждения оплаты, что я получил банковскую информацию. Вот моя проблема, я не знаю, что мне делать.

<?php

namespace frontend\controllers;

use Yii;
use common\models\Order;

class PaymentController extends \yii\web\Controller {

public function actionRequest() {
include_once('lib/nusoap.php');
$terminalId     = "xxxx";                    // Terminal ID
$userName       = "xxxx";                    // Username
$userPassword   = "xxxxxxx";                 // Password
$orderId        = time();                       // Order ID
$amount         = $amount.'0';                  // Price / Rial
$localDate      = date('Ymd');                  // Date
$localTime      = date('Gis');                  // Time
$additionalData = $model['notes'];
$callBackUrl    = "http://dastsazkala.com/payment/verify?id=".$id;  // Callback URL
$payerId        =  $id;

$parameters = [
'terminalId'        => $terminalId,
'userName'          => $userName,
'userPassword'      => $userPassword,
'orderId'           => $orderId,
'amount'            => $amount,
'localDate'         => $localDate,
'localTime'         => $localTime,
'additionalData'    => $additionalData,
'callBackUrl'       => $callBackUrl,
'payerId'           => $payerId];

$client = new \nusoap_client('https://bpm.shaparak.ir/pgwchannel/services/pgw?wsdl');
$namespace='http://interfaces.core.sw.bps.com/';
$result     = $client->call('bpPayRequest', $parameters, $namespace);

}

public function actionVerify($id = null, $check = null) {
//my promblem is in this function, that I cant receive posts.

if ($_POST['ResCode'] == '0') {
//payment is correct
include_once('lib/nusoap.php');
$client = new nusoap_client('https://bpm.shaparak.ir/pgwchannel/services/pgw?wsdl');
$namespace='http://interfaces.core.sw.bps.com/';

$terminalId             = "xxxx";                    // Terminal ID
$userName               = "xxxxx";                    // Username
$userPassword           = "xxxxx";                   // Password
$orderId                = $_POST['SaleOrderId'];        // Order ID
$verifySaleOrderId      = $_POST['SaleOrderId'];
$verifySaleReferenceId  = $_POST['SaleReferenceId'];

$parameters = [
'terminalId' => $terminalId,
'userName' => $userName,
'userPassword' => $userPassword,
'orderId' => $orderId,
'saleOrderId' => $verifySaleOrderId,
'saleReferenceId' => $verifySaleReferenceId];
// Call the SOAP method
$result = $client->call('bpVerifyRequest', $parameters, $namespace);
if($result == 0) {
//verify is correct
echo 'The transaction was successful';
} else {
//error in pyament
}
} else {
//error in pyament
}
}
}

В этом function Я ничего не получаю.

Должен ли я что-то делать в поведении моего контроллера или что-то еще?

Почему я не могу получать сообщения в моем контроллере?

Общий хром:

Request URL: http://dastsazkala.com/payment/verify
Request Method: POST
Status Code: 301 Moved Permanently
Remote Address: 138.201.30.123:80
Referrer Policy: no-referrer-when-downgrade

Вот что я получаю:

Вот мой ответ из банка

0

Решение

Проблема была в следующем: URL моего сайта www в начале, но был нет www в callBackUrl,

Итак, я изменился

$callBackUrl = "http://www.dastsazkala.com/payment/verify?id=".$id; //add www. in the beginning

вместо

$callBackUrl = "http://dastsazkala.com/payment/verify?id=".$id;

и я могу получить Данные формы с POST метод из банка

0

Другие решения

dastsazkala.com/payment/verify Перенаправляет на www.dastsazkala.com/payment/verify уведомление о www!

Результат запроса:

Status Code: 301 Moved Permanently

ясно намекает на то, что может происходить перенаправление

0

По вопросам рекламы [email protected]