Using PayPal IPN with Yii2

0 0
1
Viewed: 16 620 times
Version: 2.0
Category: Tips
Written by: darioo darioo
Updated by: darioo darioo
Created: Feb 28, 2015
Updated: 11 years ago

I'm using PayPal's script from

https://github.com/paypal/ipn-code-samples/blob/master/paypal_ipn.php

To create IPN. I'm using Yii2 framework. In my sandbox account I'm trying to test IPN but I'm keep getting error:

We could not send an IPN due to an HTTP error: 400: Bad Request

It is not cookie problem because I tried to use different browsers.

I fixed it by adding:

public $enableCsrfValidation = false;

To my XYZController. It's not safe to do it, but it worked, I'm using different controllers just for IPN, so it's fine.

Or just add this code in your controller so you can easily disable CSRF

public function beforeAction($action) 
{
	if(Yii::$app->controller->action->id=="ipn")
		$this->enableCsrfValidation = false;
	return parent::beforeAction($action);
}

Read more here: [Yii Forum]( http://www.yiiframework.com/forum/index.php/topic/21146-yii-and-paypal-ipn-400-bad-request-via-ipn-simulator/page__gopid__268890#entry268890 " http://www.yiiframework.com/forum/index.php/topic/21146-yii-and-paypal-ipn-400-bad-request-via-ipn-simulator/page__gopid__268890#entry268890")