小程序
小游戏
企业微信
微信支付
扫描小程序码分享
您好,请问一下商家转账到零钱是先通过接口/v3/certificates
取获取平台证书 ,然后用返回的证书签名吗? 返回的证书是-----BEGIN CERTIFICATE-----
不是私钥? 用这个证书签名提示Warning: openssl_sign(): supplied key param cannot be coerced into a private key
4 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
平台证书是用于回调支付通知签名验证和敏感信息加密使用,不是用于支付接口请求签名计算,V3接口签名使用的是商户API证书https://kf.qq.com/faq/161222NneAJf161222U7fARv.html
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
私钥是 apiclient_key.pem 那个文件
签名使用到商户的证书在商户后台下载工具生成的。
https://kf.qq.com/faq/161222NneAJf161222U7fARv.html
https://pay.weixin.qq.com/docs/merchant/development/interface-rules/certificate-faqs.html
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
平台证书是用于回调支付通知签名验证和敏感信息加密使用,不是用于支付接口请求签名计算,V3接口签名使用的是商户API证书https://kf.qq.com/faq/161222NneAJf161222U7fARv.html
Array
(
[0] => Authorization: WECHATPAY2-SHA256-RSA2048 mchid="160***754",serial_no="750EAA77981D2**********CBD2AD9C",nonce_str="dE8pl8yxX***********aChrC7A=="
[1] => Content-Type:application/json
[2] => Accept:application/json
[3] => User-Agent:*/*
[4] => Wechatpay-Serial:RJmztJT*********V1/fQvlJriLdAa9HQ==
)
Array
(
[code] => SIGN_ERROR
[detail] => Array
(
[detail] => Array
(
[issue] => sign not match
)
[field] => signature
[location] => authorization
[sign_information] => Array
(
[method] => POST
[sign_message_length] => 882
[truncated_sign_message] => POST
/v3/transfer/batches
1705461388
dE8pl8******NjbcBHQsSU2M
--------
[url] => /v3/transfer/batches
)
)
[message] => 错误的签名,验签失败
)
Wechatpay-Serial
必填
string
【微信支付平台证书序列号】 请求参数中的敏感字段,需要使用微信支付平台证书公钥加密。请设置为该证书的证书序列号。详见敏感信息加解密
看文档是要求加密,不过加不加密都提示验签失败。Body参数也是要一起参与签名吧,像这样
$pushdata = [
"appid" => $this->appid,
"out_batch_no" => $out_batch_no,
"batch_name" => $batch_name,
"batch_remark" => $batch_remark,
"total_amount" => $total_amount * 100,
"total_num" => $total_num,
"transfer_detail_list" => $transfer_detail_list
];
$message = "GET\n$url\n$time\n$randstr\n$pushdata \n\n"
私钥是 apiclient_key.pem 那个文件
$token = sprintf('mchid="%s",serial_no="%s",timestamp="%d",nonce_str="%s",signature="%s"', MCHID, SERIAL_NO, $timestamp, $nonce_str, $key);
$token 里面 SERIAL_NO证书是否和 'Wechatpay-Serial:' . SERIAL_NO 是同一个序列号? 还是 Wechatpay-Serial的序列号需要通过/v3/certificates 获取。
签名使用到商户的证书在商户后台下载工具生成的。
https://kf.qq.com/faq/161222NneAJf161222U7fARv.html
https://pay.weixin.qq.com/docs/merchant/development/interface-rules/certificate-faqs.html
"code": "SIGN_ERROR",
-"detail": {
-"detail": {
"issue": "sign not match"
},
"field": "signature",
"location": "authorization",
-"sign_information": {
"method": "POST",
"sign_message_length": 542,
"truncated_sign_message": "POST\n/v3/transfer/batches\n1705495397\nPdbGGB8HESlhfHovBSyOHMSPMsMpStYR\nappid=&o\n",
"url": "/v3/transfer/batches"
}
},
"message": "错误的签名,验签失败"
}
这个是什么 原因