【支付宝】退款接口|【支付宝】退款接口 报 “缺少签名参数”
问题描述:支付宝冲钱接口可以,但是退款接口会报这个错误
【【支付宝】退款接口|【支付宝】退款接口 报 “缺少签名参数”】百度到的这个,然而没用到https://openclub.alipay.com/read.php?tid=2333&fid=46
问题定位:从描述内容可以看到问题sign取不到
解决:我的问题是代码比较旧,支付宝现在都用RSA2的,但是代码里面只有 MD5、RSA两种代码实现,故找不到RSA2的实现方式也就会返回空
文章图片
protected function makeSign($signStr)
{
$sign = '';
switch ($this->signType) {
case 'MD5':
$signStr .= $this->md5Key;
// 此处不需要通过 & 符号链接
$sign = md5($signStr);
break;
case 'RSA':
case 'RSA2'://原来没RSA2的处理,会直接default sign返回 '' 导致现在这个报错,RSA用不着了,直接改成给RSA2用
$rsa_private_key = @file_get_contents($this->rsaPrivatePath);
$rsa = new RsaEncrypt($rsa_private_key);
$sign = $rsa->encrypt($signStr);
break;
default:
$sign = '';
}return $sign;
}
然后修改
文章图片
public function encrypt($data)
{
if ($this->key === false) {
return '';
}$res = openssl_get_privatekey($this->key);
if (empty($res)) {
throw new \Exception('您使用的私钥格式错误,请检查RSA私钥配置');
}openssl_sign($data, $sign, $res,OPENSSL_ALGO_SHA256);
//请注意,原先是只有3个入参,现在多一个入参
openssl_free_key($res);
//base64编码
$sign = base64_encode($sign);
return $sign;
}
推荐阅读
- 宽容谁
- 我要做大厨
- 增长黑客的海盗法则
- 画画吗()
- 2019-02-13——今天谈梦想()
- 远去的风筝
- 三十年后的广场舞大爷
- 叙述作文
- 2021-02-17|2021-02-17 小儿按摩膻中穴-舒缓咳嗽
- 20190302|20190302 复盘翻盘