yii2 Webhook发布为空

Pol*_*cot 4 php yii2

我是yii FrameWork的新手,我需要帮助。

我需要实现用于Stripe发送的订阅事件的Stripe Webhook控制器。对于此控制器,没有视图也没有模型

我可以访问控制器,但是$ _POST内容为空,我无法弄清楚原因。

可以在没有视图的情况下使用后动词吗?

这是一个例子:

class StripeWebhookController extends Controller
{
     public function beforeAction($action)
    {
        if ($action->id == 'index') {
          $this->enableCsrfValidation = false;
         }

        return parent::beforeAction($action);
    }

public function actionIndex()
{   
  header('Content-Type: text/html; charset=utf-8');

    StripeLoader::autoload();
    \Stripe\Stripe::setApiKey( Settings::get("stripe_secret_key") );
       // retrieve the request's body and parse it as JSON
       $input = file_get_contents('php://input'); // -> here $input is null

      $event_json = json_decode($input, true);

    //      Do the work...
}
Run Code Online (Sandbox Code Playgroud)

我用了

 print_r(Yii::$app->request->post() /*$_POST*/); exit(); 
Run Code Online (Sandbox Code Playgroud)

而且我只有一个空数组。

经过几天的搜索,我什么都没发现...

如果有人有想法,我会很乐意接受

附加信息:我们使用Yii2框架在IIS Web服务器上运行

谢谢你读我

Tob*_*ord 5

对于类似的人,我必须执行以下操作才能使其正常工作:

对整个班级禁用CSRF保护

public $enableCsrfValidation = false;

使用getRawBody()代替post()

$data = json_decode(Yii::$app->request->getRawBody());

在框架之外,您将使用 file_get_contents("php://input")

避免任何服务器端重定向

就我而言,这意味着没有斜杠或www。在网址中