支付宝篇
1 公钥和私钥要正确,格式要正确,公钥必须是支付宝公钥
2 我用的是laravel框架,一开始laravel会把支付宝返回参数过滤,导致异步回调的接口取值,取不到返回值,换成
file_get_contents('php://input'),
3 本人采用内网穿透来试验 natapp.cn ,这种内网,nginx配置如下
if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; break; }
结果支付宝返回的多余的参数带着,导致签名不成功
s=
改成配置,成功
if (-f $request_filename) { break; } if ($request_filename ~* ".(js|ico|gif|jpe?g|bmp|png|css)$") { break; } if (!-e $request_filename) { rewrite . /index.php last; }
4 本人采用github的扩展包,很长时间找不到问题,后来拿支付宝原生的对比,才发现问题