支付宝openssl_sign(): supplied key param cannot be coerced into a private key in

先说一下,生成rsa 私钥 公钥的方法,以ubuntu 为例
sudo apt-get install openssl # 先装上这个库
genrsa -out rsa_private_key.pem 1024  #生成1024长度的私钥, 支付宝的 rsa2 要求是 2048长度,这里可以修改一下
rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem #使用刚才生成的私钥,生成一个配对的公钥

使用 支付宝电脑支付,提供的sdk ,配置好 config.php 中的 appid ,支付同步、异步地址、配置支付宝私钥等后,打开浏览器测试,报一个waring openssl_sign(): supplied key param cannot be coerced into a private key 检查代码发现

复制代码
protected function sign($data, $signType = "RSA") {
        if($this->checkEmpty($this->rsaPrivateKeyFilePath)){
            $priKey=$this->rsaPrivateKey;
            $res = "-----BEGIN RSA PRIVATE KEY-----\n" .
                wordwrap($priKey, 64, "\n", true) .
                "\n-----END RSA PRIVATE KEY-----";
        }else {
            $priKey = file_get_contents($this->rsaPrivateKeyFilePath);
            $res = openssl_get_privatekey($priKey);
        }
复制代码

 

 

这里帮你,做了添加头部,结束和换行的处理,所以,你必须要配置的私钥,里面不能有这些,就是只能长在一行里面写好。

posted @   study_php_java_C++  阅读(10695)  评论(0编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 我与微信审核的“相爱相杀”看个人小程序副业
· DeepSeek “源神”启动!「GitHub 热点速览」
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
历史上的今天:
2019-08-17 浏览器控制台
点击右上角即可分享
微信分享提示