yii2 配置支付宝接口遇到的问题(notify_url 没有操作) [ 2.0 版本 ]
$alipay_config['return_url'] = "http://xxxx/frontend/web/index.php?r=order/return";
可以验证成功。
但是,
$alipay_config['notify_url'] = "http://xxx/frontend/web/index.php?r=order/notify";
根本没有任何操作。
nofity内容如下:
public function actionNotify(){
file_put_contents('test.txt', 'data');
}
换成 $alipay_config['notify_url'] = "http://xxx/frontend/web/test.php?r=order/notify";
test.php 可以发现会生成了test.test
内容:
file_put_contents('test.txt', 'data');
由于yii初始路由方式为index.php?r=XX/XX 所以后面也算是带参的url,在支付成功后会出现验证失败的情况,解决办法是更改alipy_core.function.php中的paraFilter()方法
function paraFilter($para) {
$para_filter = array();
while (list ($key, $val) = each ($para)) {
if($key == "sign" || $key == "sign_type" || $val == "" || $key == 'r')continue;
else $para_filter[$key] = $para[$key];
}
return $para_filter;
}
okokad 补充于 2016-10-30 20:33
notify_url是POST请求,
要关闭YII2的CSRF才可以。同时,也不能带参数。
okokad
注册时间:2016-02-29
最后登录:2017-07-01
在线时长:49小时26分
最后登录:2017-07-01
在线时长:49小时26分
- 粉丝12
- 金钱25
- 威望80
- 积分1315