zoukankan      html  css  js  c++  java
  • Delphi对接快递单的md5函数

    对接快递单每个快递商家的接口都不同,但基本大同小异,主要的算法都是md5 和Base64。一般提供的Demo都不会有Delphi的。其实md5和Base64Delpi都自带了。

    base64一般都不会有问题,主要是md5,很多用Delphi对接的,主要的问题都是出在这里。下面我分享对接两个不同快递接口,用到的md5处理都不同。

    procedure TForm1.SpeedButton1Click(Sender: TObject);
    var
      Str:String;
      M5Str,BaseStr:AnsiString;
    begin
      str:=StringReplace(Trim(Edit1.Text),' ','',[rfReplaceAll]);
      Memo1.Lines.Add('原文'+str);
      M5Str:=THashMD5.GetHashString(Str);
      Memo1.Lines.Add('MD5:'+M5Str);
      Memo1.Lines.Add('QDAC,URL:'+qstring.UrlEncode(str,False,true));
      Memo1.Lines.Add('TNET,URL:'+TURLEncoding.URL.Encode(str));
      BaseStr:=TNetEncoding.Base64.Encode(M5Str);
      Memo1.Lines.Add('Base64(MD5):'+BaseStr);
      Memo1.Lines.Add('QDAC,URL(Base64(MD5)):'+qstring.UrlEncode(BaseStr,True,true));
    
      Memo1.Lines.Add('TNET,URL(Base64(MD5)):'+TNetEncoding.URL.Encode(BaseStr));
    end;
    

      

    procedure TForm1.SpeedButton2Click(Sender: TObject);
    var
      md5: TIdHashMessageDigest5;
      base64: TIdEncoderMIME;
      sMD5:TIdBytes;
      Str:String;
      fStr:AnsiString;
      aMD5:TBytes;
      MStream,OStream:TMemoryStream;
    begin
      Memo1.Lines.Clear;
      MStream:=TMemoryStream.Create;
      OStream:=TMemoryStream.Create;
      str:='<order></order>123456';
      aMD5:=THashMD5.GetHashBytes(Str);
      var s:=TNetEncoding.Base64.EncodeBytesToString(aMD5);
      Memo1.Lines.Add('TNetEncoding.Base64.EncodeBytesToString:'+s);
      Memo1.Lines.Add('UrlEncode:'+qstring.UrlEncode(s,True,true));
      md5 := TIdHashMessageDigest5.Create;
      base64 := TIdEncoderMIME.Create(nil);
      try
        base64.FillChar := '=';
        sMD5:=md5.HashString(str);
        Memo1.Lines.Add(base64.EncodeBytes(sMD5));
      finally
        base64.Free;
        md5.Free;
      end;
    

      如果你在用Delphi对接其他的快递接口的时候,如果有问题用这两个的其中一个应该就没有问题

  • 相关阅读:
    奇数阶魔方问题
    《DSP using MATLAB》示例9.3
    《DSP using MATLAB》示例9.2
    《DSP using MATLAB》示例9.1
    找个目标很重要
    《DSP using MATLAB》示例Example 8.30
    《DSP using MATLAB》示例Example 8.29
    《DSP using MATLAB》示例Example 8.28
    《DSP using MATLAB》示例Example 8.27
    《DSP using MATLAB》示例Example 8.26
  • 原文地址:https://www.cnblogs.com/wuxi15/p/12745116.html
Copyright © 2011-2022 走看看