调试错误,请回到请求来源地,重新发起请求。
错误代码 ILLEGAL_SIGN
这个问题真的很愁人排查了很久才发现原因 其实新的接口真的很变态 还要公钥 私钥 不过为了安全考虑 将就吧!从了支付宝吧!

alipay_submit.class.php 这文件的如下代码生成签名串的 最终返回到function buildRequestHttpInFile()

function buildRequestMysign($para_sort) {
		//把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串
		$prestr = createLinkstring($para_sort);
		
		$mysign = "";
		switch (strtoupper(trim($this->alipay_config['sign_type']))) {
			case "RSA" :
				$mysign = rsaSign($prestr, $this->alipay_config['private_key_path']);
				break;
			default :
				$mysign = "";
		}
		
		return $mysign;
	}

再排查到alipay_rsa.function.php
rsaSign() 函数 发现!发现! 地址都能读取到就是读取不到内容

最终发现 alipay.config.php

//商户的私钥(后缀是.pen)文件相对路径
$alipay_config[‘private_key_path’]    = ‘alipay/pay/key/rsa_private_key.pem’;

//支付宝公钥(后缀是.pen)文件相对路径
$alipay_config[‘ali_public_key_path’]= ‘alipay/pay/key/alipay_public_key.pem’;

 

公钥私钥的 路径一定要配置正确 支付宝真是把我坑了!!! 希望我的分析可以帮到大家!!!

特别注意1:

如果控制器读出来的不是UTF-8编码 还还要加

header(“Content-type:text/html;charset=utf-8”);

特别注意2:

如果使用TP框架开发消除多余POST 与 GET

if(!empty($_GET[‘m’])){
unset($_GET[‘m’]);
}else if(!empty($_POST[‘m’])){
unset($_POST[‘m’]);
}

发表回复