PHP集成支付宝手机网页支付问题

如果在集成的过程当中发现,在本地测试支付正常,但是发布到服务上后支付一直提示签名错误之类的问题,首先看一下本地环境的PHP版本和服务器PHP版本是否一样,支付宝官方提供的SDK需要5.5以上版本不包括5.5

两种解决办法:1、升级服务器PHP版本

2、将AopClient.php中修改为openssl_sign($data, $sign, $res, sha256WithRSAEncryption);

另外自定义json_encode方法

public function my_json_encode($array)

            {

                if(version_compare(PHP_VERSION,'5.6.0','<')){

                    $str = json_encode($array);

                    $str = preg_replace_callback("#\\\u([0-9a-f]{4})#i",function($matchs){

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

                    },$str);

                    return $str;

                }else{

                    return json_encode($array, JSON_UNESCAPED_UNICODE);

                }

            }

你可能感兴趣的:(PHP集成支付宝手机网页支付问题)