我正在将Orange Money Payment网关与我的Yii2基本应用程序集成在一起,以便能够在此应用程序上接收本地付款。 在此API中,当用户发起交易时,向Orange money API发送卷曲请求后,我会收到一些数据。我通过密钥调用notif_token将这些数据存储在数据库中。然后,将用户重定向到完成付款的橙色付款门户。当用户在其门户网站上完成付款过程时,他们向我发送json响应给特定的URL调用Notifcation URL。我想接收这些数据,更新我的数据库并向该用户授予访问某些资源的权限。
一切正常,直到通过通知URL接收来自他们的反馈为止。
我已尽我所能接收此信息,但由于此操作不是api网址,因此无济于事。我已按照如下所示编写了动作,但是我不知道自己缺少什么(可能是该动作的配置或其他内容)。
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数据,可能是如何将该操作转换为API调用网址或我尚无法弄清的内容)。对此的任何帮助将不胜感激,因为我无法在线找到任何资源来帮助我。
答案 0 :(得分:0)
要接收JSON数据,您需要在配置中配置request
组件:
'components' => [
...
'request' => [
'parsers' => [
'application/json' => 'yii\web\JsonParser',
]
],
...
]
有关更多信息,请参见docs