@TERRAN47

Как отправить ответ на принятый post с другого сервера?

Всем добра! подскажите, суть вот в чем я получаю данные от банка виде xml распарсил взял что надо, и теперь мне нужно отправить банку такой же xml с ордером покупки, я знаю как это в ручную сделать)) по нажатию кнопочки)) но надо как то сразу в том же контролере где я принимаю xml от банка отправить им ответ, вот контроллер
public function offpaysuccess(Request $request){
      if(isset($request->input('response'))){

        $response = simplexml_load_string($request->input('response'));
        $order_id = $response[0]->bank[0]->customer[0]->merchant[0]->order['order_id'];
        $reference = $response[0]->bank[0]->results[0]->payment['reference'];
        $approval_code = $response[0]->bank[0]->results[0]->payment['approval_code'];
        $amount = $response[0]->bank[0]->results[0]->payment['amount'];
        
        Offmkpays::where('offmkpay_code_tranzaction','=',$order_id)->update(['offmkpay_paysuccess'=>true]);

        $payMkCours = Offmkpays::where([['offmkpay_code_tranzaction','=',$order_id],['offmkpay_paysuccess','=',true]])->first();
        $userEmail = $payMkCours->offmkpay_user_email;
        $userName = $payMkCours->offmkpay_user_name;
        Mail::send('rus.mail.paymksuccess', ['payMkCours' => $payMkCours], function($message) use ($userName,$userEmail){
          $message->to($userEmail, $userName)->subject('Успешная запись!');
        });
//ПЫТАЮСЬ ОТПРАВИТЬ ОТВЕТ)) <--------------------------------------------------------------------------------
        $apruve = '<document><merchant id="93745451"> 
            <command type="complete"/>
            <payment reference="'.$reference.'" approval_code="'.$approval_code.'" orderid="'.$order_id.'" amount="'.$amount.'"    currency_code="398"/> 
          </merchant>
          <merchant_sign type="RSA" cert_id="c233e074"></merchant_sign>
        </document>';

        $mainXML = base64_encode($apruve);

        return Redirect::to('https://epay.kkb.kz/jsp/remote/control.jsp?'.$mainXML);
        //return redirect('https://epay.kkb.kz/jsp/remote/control.jsp')->withInput($mainXML);

      }
}


НО им приходит ошибка

вот роут Route::match(['get', 'post'], '/offpaysuccess','Rus\offlinemkController@offpaysuccess');
  • Вопрос задан
  • 279 просмотров
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat
{PHP, MySql, HTML, JS, CSS} developer
Redirect выполняется методом GET, вам же вроде пост нужен? Либо курл, либо через file_get_contents(). В случае с курл енкод не нужен.

в случае гет запроса поменять
Redirect::to('https://epay.kkb.kz/jsp/remote/control.jsp?'.$mainXML);
на
$response = file_get_contents('https://epay.kkb.kz/jsp/remote/control.jsp?'.$mainXML);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы