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

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

После того, как я подключаюсь к выход в банк с помощью 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

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
18
194
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Проблема заключалась в следующем: 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 из банка.

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

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

Status Code: 301 Moved Permanently

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

Другие вопросы по теме