- 微信开放平台业务域名无法添加
这边都可以正常访问 https://www.uuni.cn/Fy9kr3vF3Z.txt [图片][图片][图片]
01-14 - Authorization签名总不成功
{"code":"INVALID_REQUEST","message":"头部信息不完整"} <?php // 商户号 $mch_id = '199999'; // 商户API私钥路径 $private_key_path = 'apiclient_key.pem'; // 证书序列号 $serial_no = '5780E68666666BDECEBED64D7625392'; // 请求的API地址 $url = 'https://api.mch.weixin.qq.com/v3/merchant-service/complaints-v2'; // 请求的参数 $params = [ 'limit' => 50, // 每页返回的投诉单数 'offset' => 0, // 查询起始位置 'begin_date' => '2024-11-01', // 查询开始日期 'end_date' => '2024-11-30', // 查询结束日期 // 被投诉商户号(可选) 'complainted_mchid' => '19999', // 不传查询所有 ]; // 生成请求签名 function generate_signature($method, $url, $params, $private_key_path, $mch_id, $serial_no) { // 获取请求时间戳 $timestamp = time(); // 生成请求随机串 $nonce_str = bin2hex(random_bytes(16)); // 构造请求的查询字符串 $query_str = http_build_query($params); $absolute_url = parse_url($url, PHP_URL_PATH) . '?' . $query_str; // 构造签名串 $sign_str = "{$method}\n{$absolute_url}\n{$timestamp}\n{$nonce_str}\n\n"; // 使用私钥对签名串进行签名 openssl_sign($sign_str, $signature, file_get_contents($private_key_path), OPENSSL_ALGO_SHA256); // Base64编码签名 $signature_base64 = base64_encode($signature); // 构造 Authorization 头部 $auth_header = sprintf( 'WECHATPAY2-SHA256-RSA2048 mchid="%s",nonce_str="%s",signature="%s",timestamp="%d",serial_no="%s"', $mch_id, $nonce_str, $signature_base64, $timestamp, $serial_no ); return $auth_header; } // 发起GET请求 function send_get_request($url, $params, $auth_header) { $query_str = http_build_query($params); $url_with_params = $url . '?' . $query_str; // 初始化cURL $ch = curl_init($url_with_params); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "Authorization: $auth_header", "Accept: application/json", ]); $response = curl_exec($ch); if(curl_errno($ch)) { echo 'Curl error: ' . curl_error($ch); } curl_close($ch); return $response; } // 生成签名 $auth_header = generate_signature('GET', $url, $params, $private_key_path, $mch_id, $serial_no); // 发送请求并获取响应 $response = send_get_request($url, $params, $auth_header); // 输出响应结果 echo $response; ?>
2024-12-01