支付宝支付回调失败(isSign=false)的解决

版权声明:要转载的亲请留言哦 https://blog.csdn.net/qq_31487227/article/details/77374934

最近在项目中做支付宝的APP支付,折腾一大圈,APP上能够正常支付了,然而APP没有收到任何返回信息,在项目后台中查看该用户的订单状态仍然为未支付,于是想到是支付宝方面没有给我服务器返回交易结果信息,去蚂蚁金服-开放平台一看,果然没有设置“授权回调地址”,赶紧设置项目中处理回调的URL。
然而这样做完仍然没有,于是去找到alipay_core.function.php中找到logResult(),找到日志文件的位置并在刚才处理授权回调的地方启用相关功能。
这样可以在刚才的日志文件中看到相关日志,发现从支付宝方面的异步通知的返回信息里有这样的信息:responseTxt=true 这个参数看来是OK了,接下来有一句:isSign=false,于是在项目中找到有这个的地方,是支付宝的sdk中有这样一段

//验证
			//$responsetTxt的结果不是true,与服务器设置问题、合作身份者ID、notify_id一分钟失效有关
			//isSign的结果不是true,与安全校验码、请求时的参数格式(如:带自定义参数等)、编码格式有关

仔细核对之后发现并没有哪里写错了,还专门看了服务器上对密钥文件是否给有权限,发现也不是。
无奈上支付宝找技术客服,将返回的参数发过去之后马上确定了问题。我在蚂蚁金服上专门开通的APP支付,使用的APPID和密钥都是这个应用下面的,然而项目中使用的是老版本的sdk,需要的是“mapi网关产品密钥”下面对应的支付宝公钥。于是从此处copy到项目的支付宝公钥文件中保存,这下整个支付流程终于完成。所以遇到开发文档里没有写清楚的问题还是直接问技术客服吧。

更多文章请到 http://skyline-traveler.com

猜你喜欢

转载自blog.csdn.net/qq_31487227/article/details/77374934