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对接其他的快递接口的时候,如果有问题用这两个的其中一个应该就没有问题

  • 相关阅读:
    MyBatisCodeHelper-Pro插件破解
    NO.1 用python打印你的宠物小精灵吧(python入门教程)
    类型转换
    VS2013无调试信息
    IP地址框
    map容器的使用
    MFC修改初始窗口大小和窗口名字禁止窗口最大,最小化
    Tensorflow之CNN卷积层池化层padding规则
    CNN之池化层tf.nn.max_pool | tf.nn.avg_pool | tf.reduce_mean | padding的规则解释
    tf.nn.conv2d卷积函数之图片轮廓提取
  • 原文地址:https://www.cnblogs.com/wuxi15/p/12745116.html
Copyright © 2011-2022 走看看