5,284
社区成员




微信支付商户API v3要求请求通过HTTP Authorization
头来传递签名。 Authorization
由认证类型和签名信息两个部分组成
签名已经做好了的,就是这个HTTP Authorization头传递签名,不知道怎么搞?
delphi xe10 idhttp组件,get方式发送
procedure Tfrmmain.Button72Click(Sender: TObject);
var url:string;
resdata:TStringStream;
begin
url:='https://api.mch.weixin.qq.com/v3/profitsharing/bills?'+
'sub_mchid=3453524234s&bill_date=2023-01-10';
requestStr:='WECHATPAY2-SHA256-RSA2048 '+#10+
'mchid=3453524234s,'+
'nonce_str='+nonce_str+','+
'timestamp='+timestamp+','+
'signature='+trim(memo18.Text)+','+
'serial_no=20F06C79521t54dfg345sfAA0E077AD3F5742484';
resdata:=TStringStream.Create('',Tencoding.UTF8);
idhttp1.HandleRedirects:=true;
//idhttp1.Request.Authentication 这个不知道怎么用?
idhttp1.Request.CustomHeaders.AddValue('Authorization',requestStr);
idhttp1.Request.ContentType:='application/json';
idhttp1.Request.CharSet:='UTF-8';
idhttp1.Response.ContentType:='application/json';
IdHTTP1.Get(url,resdata);
memo5.Text:=resdata.DataString;
end;
建议使用TNetHTTPClient,支持https,不需要libeay32.dll和ssleay32.dll这两个文件。
NetHTTPClient.CustomHeaders['Authorization'] :=authorization;
不需要requestStr
你把你现在requestStr里的,分别处理:
idhttp1.Request.CustomHeaders.AddValue('mchid',‘3453524234s’);
idhttp1.Request.CustomHeaders.AddValue('nonce_str',nonce_str);
........