2016-11-18 2 views
1

Я являюсь любопытным для yii FrameWork, и мне нужна помощь.yii2 Webhook post empty

Мне нужно реализовать сетевой контроллер webhook, который используется для события подписки, отправленного Stripe. Для этого контроллера нет никакого вида или модели

Я могу получить доступ к контроллеру, но содержимое $ _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... 
} 

я использовал

print_r(Yii::$app->request->post() /*$_POST*/); exit(); 

и я получил только пустой массив.

После нескольких дней поисков я не нашел ничего ...

Если какой-либо один есть идея, я с радостью его

Additionnal информация: мы бежим на веб-сервере IIS, используя структуру Yii2

Спасибо за чтение мне Су

ответ

0

Если Yii::$app->request->post() пусто, то запрос не POST данные. Возьмите запрос в beforeAction и свалите всю вещь. Это будет то, что получает ваша машина. Если пустой, аппарат не получает данные, отправленные с запросом.

+0

Я попробовал то, что вы просили, и вот что: Array() Так что я не понимаю, что контроллер ничего не получает. Другое испытание, которое я сделал: ($ _SERVER ['REQUEST_METHOD'] дает мне получить ... soooooo i confused –

+0

Это говорит мне, что сервер получает пустой запрос; _POST действительно будет пустым. Это заставляет меня думать неудача предшествует выполнению процесса. –

+0

Вы думаете, что IIS откажутся от глагола POST только на этом контроллере? –