NIUBI
wordpress教程

关于集成支付宝即时到账功能官方 demo 中的异常总结

1个月前/ 23/ / WP爱好者/ 未收录/
导语: 前不久 WP 爱好者拿到了个体工商户证件,成功申请了支付宝即时到账接口。不得不说大企业的开发文档真的很坑,腾讯如此,阿里也是一样只有一个字形容,乱。各种文档没有目录,而且邮件中给的文档地址根本没有需要的内容。好不容易找到的即时到账接口文档,下载的 demo 中还有异常,花了我好长时间浪费精力,下面是我在集成支付宝即时到账功能时,遇到的坑,写给大家共勉。

前不久 WP 爱好者拿到了个体工商户证件,成功申请了支付宝即时到账接口。不得不说大企业的开发文档真的很坑,腾讯如此,阿里也是一样只有一个字形容,乱。各种文档没有目录,而且邮件中给的文档地址根本没有需要的内容。好不容易找到的即时到账接口文档,下载的 demo 中还有异常,花了我好长时间浪费精力,下面是我在集成支付宝即时到账功能时,遇到的坑,写给大家共勉。

关于集成支付宝即时到账功能官方 demo 中的异常总结

支付宝即时到账接口集成问题总结

支付成功校验失败

测试支付时出现支付成功后跳转到自己网站同步通知时,出现校验错误,按照官方 demo 中的代码逻辑,支付成功后会同步通知商家,并校验签名取得通知 id 向支付宝服务器请求核实,核实成功结果以布尔类型返回,然而坑就在这里。

 function verifyReturn(){   if(empty($_GET)) {//判断 POST 来的数组是否为空    return false;   }   else {    //生成签名结果    $isSign = $this->getSignVeryfy($_GET, $_GET["sign"]);    //获取支付宝远程服务器 ATN 结果(验证是否是支付宝发来的消息)    $responseTxt = 'false';    if (! empty($_GET["notify_id"])) {$responseTxt = $this->getResponse($_GET["notify_id"]);}          //验证    //$responsetTxt 的结果不是 true,与服务器设置问题、合作身份者 ID、notify_id 一分钟失效有关    //isSign 的结果不是 true,与安全校验码、请求时的参数格式(如:带自定义参数等)、编码格式有关    if (preg_match("/true$/i",$responseTxt) && $isSign) {     return true;    } else {     return false;    }   }  }

为了找出这个问题,我将支付宝给的 demo 中通知类里验证部分逐步 die 并输出后发现,支付宝服务器返回的核实结果是空的,以至于后面使用正则匹配字符串 true 没有找到,也就出现验证失败的情况。

既然知道返回空,那么我们只需要检查下我们提交的数据是不是正常的,于是我将提交的数据使用 var_dump 函数打印出来后发现了异常。&notify 这个字段被转义成了乱码字符,乍一看我还以为原因在这里,后面发现是我理解错了。

这里要说到特殊字符在 HTML 中显示可能会被转义的情况,可以使用 PHP 函数 htmlspecialchars 过滤下就能看到真实的数据了,过滤后发现没问题。但在一个文件路径中发现了新的异常。

关于集成支付宝即时到账功能官方 demo 中的异常总结

关于集成支付宝即时到账功能官方 demo 中的异常总结

就是这段获取支付宝证书的代码带来的错误,重点在于路径分隔符!

Windows 与 Linux 路径分隔符是不同的,Windows 使用过/表示,Linux 中使用/,这份 demo 应该是支付宝的技术人员使用 Windows 平台验证后发布的,而我的服务器是 Linux,在向支付宝服务器要求核验时,由于没有携带正确的支付宝证书,导致支付宝服务器未响应我们的请求,也就出现了上面支付成功但验证失败的情况。

解决办法只需要根据你自己的运行平台修改对应的路径连接符即可,真是坑。问了三个支付宝接口集成技术客服,个个都说我的编码问题,我真想喷他们。总结了下,一般情况下,任何技术支持都是没作用的,除非你直接花钱让他们给你搞定,反正不管腾讯还是阿里我发的工单已经有十多个了,没一个解决了的,反正是自己的问题。虽然最后确实是用户的问题,但用户反馈了情况,你应该结合自己的技术给予对方一点提示吧,乱码提示???擦!

点点赞赏,手留余香

还没有人赞赏,快来当第一个赞赏的人吧!
admin给Admin打赏
×
予人玫瑰,手有余香
  • 2
  • 5
  • 10
  • 20
  • 50
2
支付
收藏 0 海报

版权归属:本文为原创文章,版权归 所有

本文链接:( 欢迎分享本文,转载请保留出处 )

免责声明:如发现本站有涉嫌抄袭侵权/违法违规的内容,请邮件/留言反馈,一经查实本站将立刻删除!

<< 上一篇

2020-07-28

下一篇 >>

2021-02-07

全部评论( 0 条 )
扫一扫二维码分享