📄 ecardchargexmlrpcut.pas
字号:
unit ECardChargeXMLRPCUt;
interface
uses
Windows,SysUtils,Classes,SystemInfoUt;
type
TECardChargeXMLRPC = class
private
ECC_ServerURL:string;
{ Private declarations }
public
function ECC_Init:Boolean;
function ECC_ChargeCredit(UserType,UserID,money,item,memo:string ;var ResultCode: array of string):Boolean;
function ECC_ChargeGetBalance(var UserType,UserID:string ;var ResultCode: array of string):Boolean;
{ Public declarations }
end;
var
ECardChargeXMLRPC:TECardChargeXMLRPC;
implementation
uses
ECardXMLRPCUt,ConstValueUt;
function TECardChargeXMLRPC.ECC_Init:Boolean;
begin
Result:=false;
ECC_ServerURL:=SIU_RD_SystemServerConfig.ChargeServerURL;
Result:=true;
end;
function TECardChargeXMLRPC.ECC_ChargeCredit(UserType,UserID,money,item,memo:string ;var ResultCode: array of string):Boolean;
var
InfoXml,SysTime,uid:string;
RC:array[0..3] of string;
begin
Result:=false;
try
with ECardXMLRPC do begin
EC_Request.URL :=ECC_ServerURL;
EC_Request.MethodName := 'money.credit';
EC_Request.Params.Param.Clear;
EC_Response.params.param.Clear;
EC_Request.Params.Param.AddString(EC_SID);
EC_Request.Params.Param.AddString(UserType);
EC_Request.Params.Param.AddString(UserID);
EC_Request.Params.Param.AddDouble(strtofloat(money));
EC_Request.Params.Param.AddString(item);
EC_Request.Params.Param.AddString(memo);
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]<>'0' then
begin
Result:=true;
exit;
end;
GetResultUID(InfoXml,uid);
RC[2]:=SysTime;
RC[3]:=uid;
end;
end;
except
exit;
end;
Result:=true;
end;
function TECardChargeXMLRPC.ECC_ChargeGetBalance(var UserType,UserID:string ;var ResultCode: array of string):Boolean;
var
InfoXml:string;
rc:array[0..1] of string;
begin
Result:=false;
try
with ECardXMLRPC do begin
EC_Request.URL :=ECC_ServerURL;
EC_Request.MethodName := 'money.getBalance';
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(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);
if ResultCode[0]='0' then
begin
ChargeEncode(InfoXml,rc);
UserType:=rc[0];
UserID:=rc[1];
end;
if ResultCode[0]=CT_SVR_ErrCode[1] then
begin
UserType:='0';
UserID:='0';
ResultCode[0]:=CT_SVR_ErrCode[0];
end;
end;
end;
except
exit;
end;
Result:=true;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -