php ali38173,支付宝WAP版接口出现ALI38173提示错误(原创)

支付宝WAP版接口出现ALI38173提示错误。

错误出现原因,PHP程序冲windows 服务器迁移到 apache 服务器,支付宝WAP支付出现ALI38173错误提示,而同接口下面的PC版支付接口什么问题都没有。

关于 ALI38173 这个提示的解释,官网上面的解释是缺少参数,请检查。

问题所在:AlipayTradeWapPayContentBuilder.php 下面有一个方法public function getBizContent()

{

if(!empty($this->bizContentarr)){

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

}

return $this->bizContent;

}

此方法返回的参数变成空的了,就导致了整体往支付宝递交的参数变为空了。通过度娘查了一下,是JSON_UNESCAPED_UNICODE

导致的问题,这个JSON的方法是不兼容5.4以下版本的。果然,把apache下面的 php版本升级到5.5,支付接口顺利运行。

到这里,就已经是找到问题所在了。

两个个方法解决:

1.升级PHP版本,一劳永逸的。

2.对于没法升级PHP版本的,可以考虑直接改造这个方法。或者去掉这个JSON方法试试,理论上也是可以允许的。下面是从度娘上面找来的方法,没有去试,大家要是改不动PHP版本的,可以是尝试一下,CSDN上面的,应该可以运行。function json_encode($array)

{

if(version_compare(PHP_VERSION,'5.4.0','

return iconv('UCS-2BE', 'UTF-8', pack('H4', $matchs[1]));

},$str);            return $str;

}else{            return json_encode($array, JSON_UNESCAPED_UNICODE);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值