小程序
小游戏
企业微信
微信支付
扫描小程序码分享
这边使用的v3接口,要构造header里的Authorization
这边遇到问题
使用https://tools.aifuwu.net/wechat-pay-tools/apiv3-request-signaturev3签名验证工具验证后,签名一致
但是发起接口后始终返回签名错误,请问这个要如何排查呢
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
body 如果计算的时候是字符串,那么你请求的时候不是就会有问题
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
本回答由AI生成,可能已过期、失效或不适用于当前情形,请谨慎参考
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
body 如果计算的时候是字符串,那么你请求的时候不是就会有问题
"appid" => "wx612a655e6dc42689",
"out_batch_no" => "ML".time(),
"batch_name" => "商户提现",
"batch_remark" => "测试",
"total_amount" => "1",
"total_num" => "1",
"transfer_detail_list" => [
[
"out_detail_no" =>"MLcash".time().rand(10000,99999),
"transfer_amount" => "1",
"transfer_remark" => "商户提现测试",
"openid" => "o15S37cWeEq1qYy1ySBr3i-dLG3c",
]
]
];
$body = json_encode($originBody, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
$url = "https://api.mch.weixin.qq.com/v3/transfer/batches";
$params = array( "url" => $url, "method" => "POST", "body" => $body );
# 商户号
$mch_id = "1499339842";
$url_parts = parse_url($url);
$canonical_url = $url_parts["path"] . ((!empty($url_parts["query"]) ? "?" . $url_parts["query"] : ""));
$http_method = $params["method"];
$timestamp = time();
$nonce = random(8);
$message = $http_method . "\n" . $canonical_url . "\n" . $timestamp . "\n" . $nonce . "\n" . $body . "\n";
$mch_private_key = openssl_pkey_get_private(file_get_contents("apiclient_key.pem"));
openssl_sign($message, $raw_sign, $mch_private_key, "sha256WithRSAEncryption");
$sign = base64_encode($raw_sign);
$schema = "WECHATPAY2-SHA256-RSA2048";
$merchant_id = $mch_id;
$serial_no = "76424E3229AEB58C946AE180124547BAE432B8F8";
$token = sprintf("mchid=\"%s\",nonce_str=\"%s\",timestamp=\"%d\",serial_no=\"%s\",signature=\"%s\"", $merchant_id, $nonce, $timestamp, $serial_no, $sign);
$result = $schema . " " . $token;
$header = [
"Authorization" => $result,
"Accept" => "application/json",
"Content-Type" => "application/json",
];
$response = ihttp_request($url, $params, $header);
print_r($response);
商家转账接口
Array
(
[url] => https://api.mch.weixin.qq.com/v3/transfer/batches
[method] => POST
[body] => {"appid":"wx612a655e6dc42689","out_batch_no":"ML1757240805","batch_name":"商户提现","batch_remark":"测试","total_amount":"1","total_num":"1","transfer_detail_list":[{"out_detail_no":"MLcash175724080590362","transfer_amount":"1","transfer_remark":"商户提现测试","openid":"o15S37cWeEq1qYy1ySBr3i-dLG3c"}]}
)
Array
(
[Authorization] => WECHATPAY2-SHA256-RSA2048 mchid="1499339842",nonce_str="to8wQ8aG",timestamp="1757240805",serial_no="76424E3229AEB58C946AE180124547BAE432B8F8",signature="ySfYbVO0dOZjssxdjSQhIAZgNwQSx6+aJ06gHkmTSYLXk6VruOsm9s7r8jiW2jm+VDxLJrjuW1Vlm4dkDnJxRtfkknzUsILDzdqKDRgd5UhgxClFmr2KshbozLizn/pqLQ6V7g4qlBJBhshxpJL+lVVSqKeEcBamWp5DJLgwP55EJEKRdBKZxHqR1qEtAgPoYJm9JVXVX2eL6AImdXcFTEGL2KJmeE1IXUXSgk9XOKwo21uOUvRl2a/h/stOgiGRhAUV4mXvdh0GqEed03hQIyyt0Atdy9jOGyYcs/8F+iXQkPcgPrLUcbPxnmh54B7GriNFVfwqb+KulsYNoB0DEQ=="
[Accept] => application/json
[Content-Type] => application/json
[Wechatpay-Serial] => 36FB2601FAF732E2B03FAE935FBA82B2CF3B7934
)
返回401 签名错误