1

我关于codeigniter的第一个问题。我已经使用 paypal 库在 codeigniter 中集成了 paypal。一切正常,但是当我返回成功页面时,它给了我“发生错误:您执行的操作无效”。但是可以直接从 url 访问相同的成功页面(我的意思是当我直接将它放在浏览器中时)。

控制器

function form()
{
$this->paypal_lib->add_field('business', 'xxxxxxx@ymail.com');
$this->paypal_lib->add_field('return', site_url('checkout/paypal/success'));
$this->paypal_lib->add_field('cancel_return', site_url('checkout/paypal/cancel'));
$this->paypal_lib->add_field('notify_url', site_url('checkout/paypal/ipn')); 
$this->paypal_lib->
add_field($this->security->csrf_token_name,   $this->security->csrf_hash); 
}
function success()
{
  echo "success";
}   

路线

$route['checkout/paypal'] = 'checkout/paypal/index';
$route['checkout/paypal/(:any)'] = "checkout/paypal/$1";

成功页面可直接访问并打印“成功”,但是当我从贝宝返回时,它给了我“发生错误”

在 apache log..getting 500 572 中。我不太确定它反映了什么。

谢谢

4

2 回答 2

0

打开您站点的主配置文件并检查您的 CSRF 设置。我曾经遇到过类似的问题,通过禁用 CSRF 保护解决了。

$config['csrf_protection'] = FALSE;

这有什么区别吗?

于 2012-07-05T13:17:32.820 回答
0
$config['csrf_protection'] = FALSE;

上面的代码在这种情况下会起作用,尽管你不应该把它关掉,所以在这种情况下:

$config['csrf_protection'] = TRUE;

$config['csrf_exclude_uris'] = array('controller/success_function');

也会成功的。

于 2015-09-26T22:03:04.927 回答