Как использовать ответ, полученный от URL обратного вызова в другой функции в том же контроллере в PHP? - PullRequest
0 голосов
/ 27 июня 2019

Я интегрирую API на основе подписки в свой проект laravel, и вызов API использует callback_url https://example.com/api/callback-handler, который отправляет асинхронный ответ и уже получен в функции обратного вызова, но как передать ответ в другой функции, называемой startSubcription() когда получен ответ ??

Я попытался использовать массив GLOBAL, переменную session, cookie, но он не работает в функции.

Переменная сеансаСодержит нулевую функцию при использовании в функции startSubcription (), но печатает в функции callback ()

$req_details =  (object) array(
                'action'     => 'subscription',
                'merchant'   => 'xxxxx',
                'order'      => 'xxxxxx',
                'request_id' => 'zxxxxx',
                'service_name' => $service_name,
                'url_callback' => 'https://example.com/api/callback-handler',
                'url_return' => 'https://example.com/start-subscription',
            );

Вызов API ::

$url = "https://services.exmple.at/smart/payment?action&merchant=$req_details->merchant&digest=$digest&order=$req_details->order&request_id=$req_details->request_id&service_name=$service_name&url_callback=$req_details->url_callback&url_return=$req_details->url_return";

public function callback(HttpRequest $request)
    { 
      $callback_response = file_get_contents('php://input');              
      $callback_response = urldecode($callback_response);
      $callback_response_xml = simplexml_load_string($callback_response_xml);
      $json_callback_response = json_encode($callback_response_xml);
      $callback_array_response = json_decode($json_callback_response, true);
    $channel  =  $callback_array_response['payment_parameters'] 
     ['channel'];
   }

Теперь я хочу использовать $channel in startSubscription(), которые выполняются после обратного вызова, упомянутого в url_return

Я хочу использовать $channel внутри этой функции, присутствующей в том же контроллере

public function startSubscription(HttpRequest $request)
    { 

      if ($channel == something){  
          //some task
      }
   }

ПОЖАЛУЙСТА, помогите мне

Спасибо

...