// 生成
protected function rsaSign($data, $signType = "RSA")
    {
//        $res = "-----BEGIN RSA PRIVATE KEY-----\n" .
//            wordwrap($rsaPrivateKey, 64, "\n", true) .
//            "\n-----END RSA PRIVATE KEY-----";
        $res = self::SY;
        ($res) or die('您使用的私钥格式错误,请检查RSA私钥配置');

        if ("RSA2" == $signType) {
            openssl_sign($data, $sign, $res, OPENSSL_ALGO_SHA256);
        } else {
            openssl_sign($data, $sign, $res);
        }

        $sign = base64_encode($sign);
        return $sign;
    }
    //验证
    public function pay_verify($data)
    {
        $signResult = $data["sign"];
        unset($data["sign"]);
        $signContent = $this->getSignContent($data);
        $sxfPublic = '公钥';
        $verify = $this->verify($signContent, $signResult, $sxfPublic);
        if ($verify) {
            return true;
//            echo("验签成功");
        } else {
            return false;
//            echo("验签失败");
        }
    }

    public function getSignContent($params)
    {
        ksort($params);
        $stringToBeSigned = "";
        foreach ($params as $k => $v) {
            $isarray = is_array($v);
            if ($isarray) {
                $stringToBeSigned .= "$k" . "=" . json_encode($v, 320) . "&";
            } else {
                $stringToBeSigned .= "$k" . "=" . "$v" . "&";
            }
        }
        unset ($k, $v);
        $stringToBeSigned = substr($stringToBeSigned, 0, strlen($stringToBeSigned) - 1);

//        echo "拼接:" . $stringToBeSigned;

//        echo "<br><br><br><br><br>";
        return $stringToBeSigned;
    }