ESSAY / NOTE

最新支付宝接口错误代码 ILLEGAL_SIGN 问题解决具体分析

调试错误,请回到请求来源地,重新发起请求。 错误代码 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']); }