tp接支付宝接口签名不相等解决办法 接口版本3.3 tp版本3.1

(2)在Core.php和Notify.php文件中添加了去掉TP的URL中的'_URL_'参数的函数。这个是必须的,否则会导致验证失败问题。具体改变为:

function paraFilter改为

  1. function paraFilter($para) {
  2. $para_filter = array();
  3. while (list ($key, $val) = each ($para)) {
  4. if($key == "sign" || $key == "sign_type" || $key == '_URL_' || $val == "")continue;
  5. else $para_filter[$key] = $para[$key];
  6. }
  7. return $para_filter;
  8. }

然后在下面添加一个自定义函数

//过滤TP的ULR中的_URL_参数,否则验证失效 添加:蓝锂网络 http://www.lanelead.com

  1. function myparaFilter($para) {
  2. $para_filter = array();
  3. while (list ($key, $val) = each ($para)) {
  4. if($key == '_URL_')continue;
  5. else $para_filter[$key] = $para[$key];
  6. }
  7. return $para_filter;
  8. }

在Notify.php中,添加$_GET,$_POST的过滤,具体为:
$mysign = $this->getMysign(myparaFilter($_POST)); //这是修改后的
$mysign = $this->getMysign(myparaFilter($_GET)); //这是修改后的

原文地址:https://www.cnblogs.com/lh460795/p/3262604.html