Delphi 加密签名代码示例

data:='{"amount":"0.00","hisBillNo":"1234","orderNo":"5678"}';
        RecordErrLog('post退款请求数据:'+data);
        datahex:=GetDataHex(data);
        Url:=refundUrl;//支付接口
        try
          retinfo:=GetPost(Url,datahex);
          if zwPayUnit.erroMsg<>'' then
          begin
              MsgInfo('退款失败:'+zwPayUnit.erroMsg,2);
              verrmsg:= zwPayUnit.erroMsg;
              Payfail('退款失败:'+zwPayUnit.erroMsg);
              btn_qx.Enabled:=True;
              Exit;
          end;
          //验证返回是否正确
          retinfo:=YanZhengSign(retinfo);
          js:=TlkJSON.ParseText( trim(retinfo)) as TlkJSONobject;

          if js<>nil then
          begin
              if (js.Count>0) then
              begin
                  RecordErrLog('退款成功');
                  PaySuc;
              end
              else
              begin
                MsgInfo('退款失败,接口返回错误!'+retinfo,2);
                verrmsg:= retinfo;
                PayOverTime;
              end;
          end
          else
          begin
              MsgInfo('退款失败,接口返回错误!'+retinfo,2);
              verrmsg:= retinfo;
              PayOverTime;
          end;
        except
          on e:Exception do
          begin
            MsgInfo('退款失败:'+e.Message,2);
            Payfail('退款失败:'+e.Message);
            //PayOverTime;
            Exit;
          end;
        end;


-------------------------------
function GetDataHex(data:string):string;
var mytime: TDateTime;
fpmm:string;
i:integer;
s:string;
Len:Integer;
dataHEX:string;
sign:string;
begin
  if appid='' then
  begin
    Initone;
  end;
  mytime:=Now;
  fpmm:=GetSHa1(password);
  dataHEX:= LowerCase(StrToHexstr(data));
  sign:=GetMd5(dataHEX+ fpmm);
  Result:= GetMd5(DateToStr(mytime))+ sign+dataHEX;
end;

function GetSHa1(input:string):string;
var value:string;
begin
    with Tidhashsha1.Create do
     try
        //value := HashBytesAsHex(TidBytes(Bytesof(input)));
        value := HashStringAsHex(input,IndyTextEncoding_UTF8);
     finally
       free;
     end;
     Result:=LowerCase(value);
end;


function GetMd5(s:string):string;
var Md5Encode: TIdHashMessageDigest5;
var value:string;
begin
  try
    Md5Encode:= TIdHashMessageDigest5.Create;
    value:= Md5Encode.HashStringAsHex(UTF8Encode(s));
  finally
    Md5Encode.Free;
  end;
  Result:=LowerCase(value);
end;

results matching ""

    No results matching ""