支付宝 转账 Required parameter $subnum follows optional parameter $n


运行环境:php8.0

在使用商家【转账到支付宝账户】功能时报错: Required parameter $subnum follows optional parameter $n

这是因为 函数中参数设置问题:有默认值的参数 ,后面跟的参数必须也要有默认值

 

在支付宝sdk 中找到 下面两个文件 AopClient.php  AopCertClient.php 

在上面两个文件中找到函数 splitCN subCNchar

将参数 $n 后面的 $subnum$charset 设置一个默认值就可以了。

如下:

 function splitCN($cont, $n = 0, $subnum= 0, $charset = "gbk")
    {
        //$len = strlen($cont) / 3;
        $arrr = array();
        for ($i = $n; $i < strlen($cont); $i += $subnum) {
            $res = $this->subCNchar($cont, $i, $subnum, $charset);
            if (!empty ($res)) {
                $arrr[] = $res;
            }
        }

        return $arrr;
    }

 

   function subCNchar($str, $start = 0, $length = 30, $charset = "gbk")
    {
        if (strlen($str) <= $length) {
            return $str;
        }
        $re['utf-8'] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
        $re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";
        $re['gbk'] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
        $re['big5'] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";
        preg_match_all($re[$charset], $str, $match);
        $slice = join("", array_slice($match[0], $start, $length));
        return $slice;
    }
发布时间 : 2024-11-07,阅读量:131 , 分类: PHP
本文链接:https://upwqy.com/details/960.html
php 获得富文本中的所有图片 java spring boot微服务模块管理(Module)