Как вернуть ответ на запрос? чистый PHP
Есть самописный платежный шлюз на PHP (просто форма на html + логика на PHP, которая делает запрос по API банка и передает данные в банк). Пример запроса
payload = {
"service_id": "777",
"order_price": "10",
"contract_id": "5",
"contract_date": "2021-03-05",
"contract_name": "Иванов Иван Иваныч",
"payer_name": "Иванов Иван Иваныч",
"payer_phone": "+7(666)666-66-66",
"payer_email": "[email protected]",
"personal_data_acceptance": "personal_data_acceptance",
"commission_payment_acceptance": "commission_payment_acceptance"
}
После отправки в банк этих данных, возвращается результат об оплате и в лог записывается результат с номером операции от банка.
Хочу сделать так чтоб при запросе с определенного доменного имени отрабатывал скрипт шлюза и возвращал на это доменное имя результат об оплате в виде:
payload = {
"service_id": "777",
"payment_result" = "true",
"contract_id": "5",
"user_id" = "2881488" (будет приходить в запросе от домена)
}
Как это сделать на чистом PHP?
Ответы (1 шт):
Автор решения: Eugene X
→ Ссылка
Если говорить о чистейшем PHP то делается это через PHP Streams и file_get_contents.
Но всё-же рекомендую использовать libcurl.
<?php
$data = json_encode([
"service_id" => "777",
"order_price" => "10",
"contract_id" => "5",
"contract_date" => "2021-03-05",
"contract_name" => "Иванов Иван Иваныч",
"payer_name" => "Иванов Иван Иваныч",
"payer_phone" => "+7(666)666-66-66",
"payer_email" => "[email protected]",
"personal_data_acceptance" => "personal_data_acceptance",
"commission_payment_acceptance" => "commission_payment_acceptance"
]);
$url = 'https://ptsv2.com/t/oz8rh-1637133493/post';
// use key 'http' even if you send the request to https://...
$options = array(
'http' => array(
'header' => "Content-type: application/json\r\n",
'method' => 'POST',
'content' => $data,
)
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
if ($result === FALSE) { /* Handle error */ }
var_dump($result);