Я использую этот пакет laravel "https://github.com/kanazaca/easypay" для создания ссылки на МБ с помощью Easypay API.
У меня есть этот метод для создания ссылки:
public function generateReference()
{
$amount = Session::get('total');
$payment_info = [
't_value' => $amount,
'o_obs' => '',
't_key' => 1
];
$easypay = new EasyPay($payment_info);
$reference = $easypay->createReference();
Session::put('entity', $reference['ep_entity']);
Session::put('reference', $reference['ep_reference']);
Session::put('value', $reference['ep_value']);
}
И с этим кодом все работает, я получаю несколько справочных кодов, которые можно оплатить с помощью МБ или кредитной картой.
Затем, когда платеж будет выполнен, easypay вызовет «URL-адрес уведомления».
что мы должны сконфигурировать в бэк-офисе easypay в разделе «Конфигурации URL».
Потому что, когда сервис easypay получит оплату, он позвонит по указанному нами URL-адресу. Поэтому я определил URL-адрес в бэк-офисе easypay и создал маршрут в проекте:
Route::get('/easypay/notification-callback', [
'uses' => 'PaymentController@receiveNotifications',
'as' =>'mb.notifications'
]);
В бэк-офисе API есть кнопка, которая имитирует платеж, после нажатия этой кнопки ничего не происходит, и если я вручную обращаюсь к «http://....ngrok.io/easypay/notification-callback
», появляется пустой массив:
[]
Но в документации (https://docs.easypay.pt/workflow/payment-notification) сказано, что когда Easypay вызывает эту конечную точку, она имеет несколько параметров: «ep_cin», «ep_user» и «ep_doc», которые будут необходимы в процессе. не должен появляться пустой массив.
Вы знаете, в чем может быть проблема? Я начинающий пользователь API, поэтому я не понимаю, в чем проблема.
PaymentController receiveNotifications()
метод:
public function receiveNotifications(Request $request)
{
dd($request->all());
//$easypay = new EasyPay($payment_info);
//$xml = $easypay->processPaymentInfo();
//return \Response::make($xml, '200')->header('Content-Type', 'text/xml'); //must return in text/xml for easypay
}
Метод receiveNotifications () с журналом:
public function receiveNotifications(Request $request)
{
//dd($request->all());
Log::info('Showing info: ' .var_export($request->all(),true));
$payment_info = [
'ep_cin' => $request->ep_cin,
'ep_user' => $request->ep_user,
'ep_doc' => $request->ep_doc
];
Log::info('Showing info: ' .var_export($payment_info,true));
//dd($payment_info);
$easypay = new EasyPay($payment_info);
$xml = $easypay->processPaymentInfo();
return \Response::make($xml, '200')->header('Content-Type', 'text/xml'); //must return in text/xml for easypay
}