public function sign_encode($body = ''){
$nostr = $this->GetRandStr(32);
$timestamp = time();
$mchid = $this->mchid;
$serial_no = $this->serial_no;
$url = 'https://api.mch.weixin.qq.com/v3/pay/partner/transactions/jsapi';
$http_method = 'POST';
$url_parts = parse_url($url);
$canonical_url = ($url_parts['path'] . (!empty($url_parts['query']) ? "?${url_parts['query']}" : ""));
$mch_private_key = file_get_contents('./static/wechatkey/apiclient_key.pem');
$message = $http_method."\n".$canonical_url."\n".$timestamp."\n".$nostr."\n".$body."\n";
openssl_sign($message, $raw_sign, $mch_private_key, 'sha256WithRSAEncryption');
$sign = base64_encode($raw_sign);
$token = sprintf('mchid="%s",nonce_str="%s",timestamp="%d",serial_no="%s",signature="%s"',$mchid, $nostr, $timestamp, $serial_no, $sign);
return $token;
}
您好,您的问题建议您前往微信支付APIV3文档, 点击右下角‘技术咨询’实时寻求技术帮助。若您的问题得到解决,请回社区晒出解决方案,以帮助更多遇到此问题的人,感谢您的支持~
Http头Authorization值格式错误,请参考《微信支付商户REST API签名规则》返回的永远是这个