您的位置:首页 > 编程语言 > PHP开发

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

2017-03-19 19:55 288 查看
最近在移动端停下来了,一直在搞PHP和前端,公司想我们的app实现H5化,最近在接入支付宝时,使用的是支付宝官方接口,在各种权限都申请完成之后,本地本人自己搭的服务器上可以运行,并且实现了付款功能,但是一到服务器上就报错,报错就是上面的 : 交易订单处理失败,请稍后再试。ALI38173,我很纳闷,为啥我本地可以,服务器就不能呢?后来参考了官方解释:

官方解释网址为:https://support.open.alipay.com/docs/doc.htm?spm=a219a.7386797.0.0.JUPUDC&treeId=193&articleId=105849&docType=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,所以说我真是日了服务器大爷的狗了,提前说一声不行么???
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐