Я интегрирую платежный шлюз Orange Money с моим основным приложением Yii2, чтобы получать локальные платежи по этому приложению.
В этом API, когда пользователь инициирует транзакцию, я получаю некоторые данные после отправки запроса скручивания в API Orange. Я храню эти данные в моей базе данных с помощью ключевого вызова notif_token. Затем пользователь перенаправляется на оранжевый платежный портал, где производится оплата. когда пользователь завершает процесс оплаты на своем портале, он отправляет мне ответ json на определенный URL-адрес уведомления о вызове URL. Я предполагаю получить эти данные, обновить мою базу данных и предоставить доступ этому пользователю к некоторым ресурсам.
Все работает хорошо до уровня получения обратной связи от них через URL-адрес уведомления.
Я перепробовал все, что я знаю, чтобы получить эту информацию, но безрезультатно, так как это действие не является api url. Я написал свое действие, как показано ниже, но я не знаю, чего мне не хватает (возможно, это конфигурация для этого действия или что-то в этом роде).
public function actionOnotification(){
\Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
$request = \yii::$app->request->post();
$transaction =OrangeFeedback::findOne(['notif_token'=>$request['notif_token']]);
$transaction->status = $request['status'];
$transaction->txnid = $request['txnid'];
$transaction->save();
//do some processing here
}
Я не знаю, как решить эту проблему, так как мне кажется, что мне здесь не хватает фундаментальной концепции (может быть, о том, как настроить базовое действие приложения Yii2 для получения данных json, может быть о том, как преобразовать это действие в URL-адрес вызова API или что-то в этом роде). который я пока не могу понять). Любая помощь по этому вопросу будет принята с благодарностью, так как я не могу найти какие-либо ресурсы в Интернете, чтобы помочь мне.
Для получения данных в формате JSON необходимо настроить request
компонент в конфиге:
'components' => [
...
'request' => [
'parsers' => [
'application/json' => 'yii\web\JsonParser',
]
],
...
]
Увидеть документы для дополнительной информации
Других решений пока нет …