⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ecardtokenxmlrpcut.pas

📁 delphi的XMPRPC通讯例子
💻 PAS
字号:
unit ECardTokenXMLRPCUt;

interface
uses
  Windows,SysUtils,Classes,SystemInfoUt,ConstValueUt;
type
  TECardTokenXMLRPC = class
  private
    ECT_ServerURL:string;

    { Private declarations }
  public
    function ECT_Init:Boolean;
    function token_validate(itemId:String ; t_SID:String;var ResultCode: array of string):Boolean;
    function token_activate(t_SID:String;var ResultCode: array of string):Boolean;
    function GateCheck(UserType,UserID:string;var gate_UserInfo:TSIU_CL_UserInfo;var ResultCode: array of string):Boolean;
    { Public declarations }
  end;

var
  ECardTokenXMLRPC: TECardTokenXMLRPC;

implementation
 uses
ECardXMLRPCUt;
function TECardTokenXMLRPC.ECT_Init:Boolean;
begin

Result:=false;
ECT_ServerURL:=SIU_RD_SystemServerConfig.TokenServerURL;
Result:=true;

end;

function TECardTokenXMLRPC.token_activate(t_SID:String;var ResultCode: array of string): Boolean;
var
InfoXml:String;
begin
 Result:=false;
 try

   with ECardXMLRPC do begin
    EC_Request.URL :=ECT_ServerURL;
    EC_Request.MethodName := 'token.token_activate';
    EC_Request.Params.Param.Clear;
    EC_Response.params.param.Clear;
    EC_Request.Params.Param.AddString(t_SID);
    EC_Response.ProcessRequest(EC_Request);
    InfoXml:='';
      if EC_Response.IsFault then
       exit
      else
        begin
          InfoXml:=EC_Response.params.param.Strings[0];
          DecodeResultErr(InfoXml,ResultCode);

        end;
    end;

  except
    exit;
  end;
Result:=true;
end;

function TECardTokenXMLRPC.token_validate(itemId, t_SID: String;
  var ResultCode: array of string): Boolean;
var
InfoXml:String;
begin
 Result:=false;
 try

   with ECardXMLRPC do begin
    EC_Request.URL :=ECT_ServerURL;
    EC_Request.MethodName := 'token.token_validate';
    EC_Request.Params.Param.Clear;
    EC_Response.params.param.Clear;
    EC_Request.Params.Param.AddString(itemId);
    EC_Request.Params.Param.AddString(t_SID);
    EC_Response.ProcessRequest(EC_Request);
    InfoXml:='';
      if EC_Response.IsFault then
       exit
      else
        begin
          InfoXml:=EC_Response.params.param.Strings[0];
          DecodeResultErr(InfoXml,ResultCode);

        end;
    end;

  except
    exit;
  end;
Result:=true;

end;

function TECardTokenXMLRPC.GateCheck(UserType,UserID:string;var gate_UserInfo:TSIU_CL_UserInfo;var ResultCode: array of string):Boolean;
var
InfoXml,SysTime:string;
RC:array[0..1] of string;

begin
Result:=false;
 try

   with ECardXMLRPC do begin
    EC_Request.URL :=ECT_ServerURL;
    EC_Request.MethodName := 'gate.gate_check';
    EC_Request.Params.Param.Clear;
    EC_Response.params.param.Clear;
    EC_Request.Params.Param.AddString(UserType);
    EC_Request.Params.Param.AddString(UserID);
    EC_Request.Params.Param.AddString(ECardXMLRPC.EC_Point);
    EC_Request.Params.Param.AddString(ECardXMLRPC.EC_Action);
    EC_Request.Params.Param.AddString(ECardXMLRPC.EC_ID);
    EC_Request.Params.Param.AddString(ECardXMLRPC.EC_SID);
    EC_Response.ProcessRequest(EC_Request);
    InfoXml:='';
      if EC_Response.IsFault then
       exit
      else
        begin
          InfoXml:=EC_Response.params.param.Strings[0];
          DecodeResultErr(InfoXml,ResultCode);
        //  GetSysTime(SysTime,RC);

          if ResultCode[0]='6' then
           begin
            Result:=true;
            exit;
           end;
          RegUserDecode( InfoXml,gate_UserInfo);
         // if RC[0]='0' then
          //  gate_UserInfo.M_OP_DATE:=now();


        end;
    end;

  except
    exit;
  end;
Result:=true;

end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -