0

我正在将 Orange Money 支付网关与我的 Yii2 基本应用程序集成,以便能够在此应用程序上接收本地付款。在这个 API 中,当用户发起交易时,我在向 Orange money API 发送 curl 请求后会收到一些数据。我通过调用 notif_token 将这些数据存储在我的数据库中。然后用户被重定向到完成支付的橙色支付门户。当用户在他们的门户上完成支付过程时,他们会向我发送对特定 url 调用通知 URL 的 json 响应。我想接收这些数据,更新我的数据库并授予该用户对某些资源的访问权限。

在通过通知 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 数据,可能是如何将该操作转换为 API 调用 URL 或其他内容我还不能弄清楚)。对此的任何帮助将不胜感激,因为我在网上找不到任何资源来帮助我。

4

1 回答 1

1

要接收 JSON 数据,您需要在配置request中配置组件:

'components' => [
    ...
    'request' => [
        'parsers' => [
            'application/json' => 'yii\web\JsonParser',
        ]
    ],
    ...
]

有关更多信息,请参阅文档

于 2018-09-24T06:55:55.567 回答