黔优媒体网-软文媒体自助发稿平台!
  1. 行业资讯
  2. 正文

开发微信服务器接口的实例教程

来源:黔优媒体网   时间:2024-09-19

因erp系统需要与微信公众号做数据接口,现准备做一个中间服务器。
开发环境:xe10
使用控件:idhttpserver

因刚开发阶段,在路由路上直接做了测试机的80端口转发,申请微信公众测试号后,却一直配置失败。跟踪发现是服务器无法收到微信发来的get请求。代码如下:

Delphi/Pascal code?

unit Unit1;

interface
 Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
 Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, IdBaseComponent,
 IdComponent, IdCustomTCPServer, IdCustomHTTPServer, IdHTTPServer, IdContext,
 IdHashSHA, IdGlobal;
 TForm1 = class(TForm)
 IdHTTPServer1: TIdHTTPServer;
 Button1: TButton;
 Memo1: TMemo;
 procedure Button1Click(Sender: TObject);
 procedure IdHTTPServer1CommandGet(AContext: TIdContext;
 ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
 private
 { Private declarations }
 public
 { Public declarations }
 function SHA1(Input: String): String;
 function CheckSignature(ARequestInfo: TIdHTTPRequestInfo): boolean;
 end;
 Form1: TForm1;
Const
 Token = #39;weixin #39;;
implementation
{$R *.dfm}
function TForm1.SHA1(Input: String): String;
begin
 with TIdHashSHA1.Create do
 Result := LowerCase(HashBytesAsHex(TidBytes(Bytesof(Input))));
 finally
 Free;
 end;

signature := ARequestInfo.Params.Values[ #39;signature #39;]; timestamp := ARequestInfo.Params.Values[ #39;timestamp #39;]; nonce := ARequestInfo.Params.Values[ #39;nonce #39;]; echostr := ARequestInfo.Params.Values[ #39;echostr #39;]; tmpstr.Add(Token); tmpstr.Add(timestamp); tmpstr.Add(nonce); tmpstr.Sort; temp := StringReplace(tmpstr.text, #13#10, #39; #39;, [rfReplaceAll]); Result := SHA1(temp) = signature; finally tmpstr.Free; end;

procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo); begin Memo1.Lines.Add( #39;123 #39;); if CheckSignature(ARequestInfo) then if ARequestInfo.Params.Values[ #39;echostr #39;] #39; #39; then begin Memo1.Lines.Add(ARequestInfo.Params.Values[ #39;echostr #39;]); AResponseInfo.ContentType := #39;text/html; charset=UTF-8 #39;; AResponseInfo.ContentText := ARequestInfo.Params.Values[ #39;echostr #39;]; end; end.

以上就是开发微信服务器接口的实例教程的详细内容,更多请关注php中文网其它相关文章!

微信app下载

微信是一款手机通信软件,支持通过手机网络发送语音短信、视频、图片和文字。微信可以单聊及群聊,还能根据地理位置找到附近的人,带给大家全新的移动沟通体验,有需要的小伙伴快来保存下载体验吧!


【免责申明】黔优媒体网以上展示内容来源于用户自主上传、合作媒体、企业机构或网络收集整理,版权争议与本站无关,文章涉及见解与观点不代表黔优媒体网官方立场,请读者仅做参考,本文标题:开发微信服务器接口的实例教程;欢迎转载,转载时请说明出处。若您认为本文侵犯了您的版权信息,或您发现该内容有任何违法/违规的内容,请您立即联系我们及时修正或删除。(邮箱号: kefu@qianu.com)
此操作需要登录,请先登录~
免费注册会员,尽享国内领先平台!