2016-11-18 98 views
1

我有点新的yii FrameWork,我需要帮助。yii2 Webhook发布空

我需要实现一个条纹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(); 

,我只得到了一个空数组。

后搜索的日子里,我什么也没发现......

如果任何人有一个想法,我会很乐意把它

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

感谢您阅读我 CYA

回答

0

如果Yii::$app->request->post()为空,那么请求没有POST数据。在beforeAction中抓取请求并转储整个事情。这将是您的机器正在接收。如果为空,机器没有收到与请求一起发送的数据。

+0

我试着你问了什么,这是什么出去: Array() 所以我控制器没有收到任何东西。 我做的另一个测试: ($ _SERVER ['REQUEST_METHOD'] 给了我一个get ... soooooo我一个困惑 –

+0

这告诉我服务器正在接收一个空请求; _POST确实是空的,这让我觉得 –

+0

你认为IIS会拒绝那个控制器上的POST动作吗? –