Получите параметры через POST и используйте их для создания объекта в PHP, затем JSON сериализует объект - PullRequest
0 голосов
/ 30 мая 2018

фон:

Я получаю параметры инициализации транзакции через POST для платежного сервиса.Затем мне нужно использовать эти параметры для создания объекта «Deposit» в PHP, а затем JSON сериализует депонированный объект и сохраняет JSON в переменной.

Я пытаюсь добиться этого с помощью следующего кода:

код:

//get parameters by POST and add to Deposit class
$user_id = echo $_POST["user"];
$tradingaccount_id = echo $_POST["trading_account"];
$fundprocessor_id = echo $_POST["func_processor"];
$paymentgateway_type = echo $_POST["payment_gateway_type"];
$paymentgateway_id = echo $_POST["payment_gateway_id"];
$amount = echo $_POST["deposit_amount"];
$client_ip = echo $_POST["user_ip"];

//Deposit class
var deposit = new Deposit 
{ 
UserId = echo $user_id, 
TradingAccountId = new Guid(echo $tradingaccount_id), 
FundProcessorId = int (echo $fundprocessor_id), 
PaymentGatewayId = echo $paymentgateway_id, 
Amount = echo $amount, 
ClientIp = echo $client_ip 

//serialize data to JSON
function getJsonData(){
    $var = get_object_vars($this);
    foreach ($var as &$value) {
        if (is_object($value) && method_exists($value,'getJsonData')) {
            $value = $value->getJsonData();
        }
    }
    return $var;
}

};

Вопрос:

Является ли вышеуказанный правильный способ сделать это?Будет ли переменная $ var содержать сериализованный объект JSON?

1 Ответ

0 голосов
/ 15 сентября 2018

Если ваш класс Deposit не будет реализовывать никакой дополнительной логики, вы можете воспользоваться более простым подходом:

  $deposit = [];

  $deposit['UserId'] = $_POST["user"];
  $deposit['TradingAccountId'] = new Guid($_POST["trading_account"]);
  $deposit['FundProcessorId'] = intval($_POST["func_processor"]);
  $deposit['PaymentGatewayId'] = $_POST["payment_gateway_id"];
  $deposit['Amount'] = $_POST["deposit_amount"];
  $deposit['ClientIp'] = $_POST["user_ip"];

  $json = json_encode($deposit);

В противном случае вам следует реализовать JsonSerializable в вашем классе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...