关于Delphi通过https访问支付宝接口

关于Delphi通过https访问支付宝接口

1、将libeay32.dll、ssleay32.dll拷贝至exe目录下。
2、uses IdIOHandler, IdIOHandlerSocket, IdSSLOpenSSL,
IdBaseComponent, IdComponent, IdRawBase, IdRawClient, IdIcmpClient,
IdTCPClient, IdHTTP;
3、编写函数fucHttpAlipay。

//---------------------------------------------------------------
//支付宝请求
//add by jzh 2014-06-06
//---------------------------------------------------------------
function fucHttpAlipay(sUrl: String; slPara: TStrings): String;
var
  idhttpApp: TIdHTTP;
  idssl: TIdSSLIOHandlerSocket;
  sValue: String;
begin
  idhttpApp:= TIdHTTP.Create(nil);
  idhttpApp.HandleRedirects:= True;
  idhttpApp.AllowCookies:= True;
  idhttpApp.HTTPOptions:= [hoForceEncodeParams];
  idhttpApp.ProtocolVersion:= pv1_1;
  idhttpApp.Request.ContentType:= 'application/x-www-form-urlencoded';
  idhttpApp.ConnectTimeout:= 6000;
  idhttpApp.ReadTimeout:= 12000;

  idssl:= TIdSSLIOHandlerSocket.Create(nil);
  idssl.SSLOptions.Method:= sslvSSLv3;
    
  idhttpApp.IOHandler:= idssl;

  try
    sValue:= idhttpApp.Post(sUrl, slPara);
    //sValue:= StringReplace(sValue, #$D#$A, '', [rfReplaceAll, rfIgnoreCase]); //rfIgnoreCase忽略大小写
    sValue:= StringReplace(sValue, #$A, '', [rfReplaceAll, rfIgnoreCase]); //rfIgnoreCase忽略大小写
    idhttpApp.Free;
    idssl.Free;
    Result:= sValue;
  except
    begin
      idhttpApp.Free;
      idssl.Free;
      Result:= '-1';
    end;
  end;
end;

 

发表回复

您的电子邮箱地址不会被公开。