PHP服务器 支付宝 对接出现 【交易订单处理失败 请稍后再试 ALI38173】

最近在移动端停下来了,一直在搞PHP和前端,公司想我们的app实现H5化,最近在接入支付宝时,使用的是支付宝官方接口,在各种权限都申请完成之后,本地本人自己搭的服务器上可以运行,并且实现了付款功能,但是一到服务器上就报错,报错就是上面的 : 交易订单处理失败,请稍后再试。ALI38173,我很纳闷,为啥我本地可以,服务器就不能呢?后来参考了官方解释:
官方解释网址为:https://support.open.alipay.com/docs/doc.htm?spm=a219a.7386797.0.0.JUPUDC&treeId=193&articleId=105849&docType=1
附图:
PHP服务器 支付宝 对接出现 【交易订单处理失败 请稍后再试 ALI38173】_第1张图片

它就说我选择参数少了,没有办法,直接进linux环境,打印我们的代码,刚开始还以为服务器哥们没有上传好我的代码,就进去看看了,发现我缺少的参数是 bizContent,它一直是NULL的:

官方自带的一个信息类AlipayTradeWapPayContentBuilder中有一个方法:

    public function getBizContent()
    {
        if(!empty($this->bizContentarr)){
            $this->bizContent = json_encode($this->bizContentarr,JSON_UNESCAPED_UNICODE);
        }
        return $this->bizContent;
    }

这里面的json_encode($this->bizContentarr,JSON_UNESCAPED_UNICODE),我们的系统并不支持,所以才造成了我们系统返回NULL对象,改成这个就好了:

 $this->bizContent = json_encode($this->bizContentarr);

至于原因,我想应该是我们自己服务器的PHP环境吧,json_encode($obj , JSON_UNESCAPED_UNICODE)是PHP5.4以上的环境才有的,而我本人的服务器环境是PHP5.5,所以说我真是日了服务器大爷的狗了,提前说一声不行么???

你可能感兴趣的:(PHP基础)