サンプルコードを公開しました! delphi+intraweb を使用して WeChat 開発 1 ~ 4 のコード サンプルをダウンロードしてください。これはサンプル コードですが、パッケージは完成しており、自己拡張や修正に適しています。
iw14.0.50 は、完全な httphandler 関数が追加されたことです。最後に、アドレス バーに URL を直接入力して、iw 関数ページを開くことができます。 EasyUI として; 表示モード ダイアログ ボックスが煩わしくなくなりました。これで、初めて主流の Web 開発ツールに近づいたように感じます。
とても興奮しているので、試してみましょう。実際、iw にはまだ落とし穴がたくさんありますが、それについては後ほど説明します...
1. 新しい iw プロジェクトを作成し、スタンドアロン サーバー/サービスを選択して開発するのが理想的です。このモードでは、正式にリリースされると、ライブラリ タイプのプロジェクトを作成して .net サーバーに公開できるため、デバッグが非常に便利になります。 (はい、正しく読みました。iw は isapi モードから離脱し、.net mvc4 アプリケーションと同じように IIS にデプロイできるようになりました。後で説明するように、.net 仮想ホストも iw アプリケーションを公開できます。大幅な改善です。)
2. プロジェクトを保存した後、たとえば wxapi.pas という名前の新しいユニット ファイルをプロジェクトに追加します。このファイル内のコードは WeChat アクセス処理を担当します。コードは次のとおりです:
EInterface erUses クラス、iW.Content.base、System.Sysutils、httpapp、iWapplication、
i i
Type
//// & gt; クラスTContentBase から継承されたものは、asp.net の httphandler と同等です
///
TWxApi = class(TContentBase)
protected
function Execute(aRequest: THtt pRequest; aReply: THttpReply; const aPathname: string ; aSession: TIWApplication ; aParams: TStrings): Boolean; public
public コンストラクター Create; end
uses rSessionUnit、Crypt.SHA1; クエスト: THttpRequest;
aPathname: string; TIWApplication;
aParams: TStrings): ブール値;
タイムスタンプ: 文字列;
署名:= True; ']; '];
strs := TStringList.Create;
strs.Add('MyTestToken'); // トークンは WeChat インターフェイスの設定情報と一致している必要があります
strs.Add(timestamp); ;
begin
aReply.WriteString(echostr)
end else begin
aReply.WriteString('このプロンプトが表示された場合は、このリンク アドレスが WeChat インターフェイス アドレスとして使用できることを意味します。 ');
end;
aSession.Terminate; // セッション リソースを解放します。このハンドラーはセッションを必要としません。
end; iwForm を使用する必要がある場合は、使用できる TContentForm 基本クラスもあります。ブラウザのアドレス バーに URL を入力して iwform を直接開くこともできます。 TWxApi.Execute のコードは WeChat アクセス用のコードです。理解できない場合は、WeChat ヘルプ: WeChat アクセス ガイドを参照してください。
3. この httphandler を ServerController に登録し、ServerController 登録コードを直接ポストします:
procedure TIWServerController.IWServerControllerBaseConfig(Sender: TObject);
begin
// ServerController.OnConfig イベントで、定義した WeChat ハンドラーを登録します
// ServerController。 Onconfigイベントは、アプリケーションのライフサイクルで1回しか実行されません、最初に /$/start を実行してセッションを開始する必要があります。その後、 // 通常、/wxapi.php ページにアクセスできます。これは明らかに必要なものではありません。
end; ://localhost/wxapi.php
登録したコントローラーにアクセスできます。
しかし、このコードには小さな落とし穴があります。詳細については、私のコードのコメントを参照してください。
落とし穴は、ハンドラーが登録された後、iw アプリケーションが開始されることですが、プログラムを開始するためにブラウザーのアドレス バーに /$/start を入力する代わりに、/wxapi.php を直接入力すると httphandler の検証に失敗し、ページは自動的にメイン フォームに移動します。ヘルプを読んだ後、TContentBase.RequiresSessionStart:=false を設定する必要があることがわかりました。そうでない場合、iw アプリケーションは httphandler を使用する前に、まずセッションを開始してメイン フォームにアクセスする必要があります。ヘルプに従って、TContentBase.RequiresSessionStart:=false を設定しました。 /wxapi.php を直接入力しても機能しませんが、再度メイン フォームに移動すると、httphandler コードが実際に実行されたことが判明したため、404 コード エラーが表示されます。エラー。マルチパーティの検証と実験により、TContentBase.CanStartSession:= True を設定する必要があることがわかりました。笑、これはヘルプには記載されていませんが、おそらく新しいバージョンで新しく追加された属性です。さて、アドレスバーに
http://localhost/wxapi.php
と入力すると、ページが通常どおり開くことができます。
が、実際には構成が失敗したことを示すメッセージが表示されます。何が起こっているのでしょうか? 私が使用したコードは、他の人が作成した WeChat アクセス インターフェイス コードの Delphi バージョンからコピーされたものでした。そのとき、最初に思ったのは、ページのエンコードが間違っているということでした。 iw のハンドラーのデフォルトのエンコーディングを UTF-8 形式に変更したので、gbk、iso-8859-1 などのエンコーディング形式を試しましたが、上記のエラーが表示されました。仕方なく、ハンドラー コードが実行されたかどうかをログに記録しました。結果は衝撃的でした。しかし、ローカル マシンでデバッグすると、ハンドラー コードは実行されませんでした。実サーバーのブラウザで閲覧しても問題ありません。何日もかけてさまざまなテストと修正を行った後、私はあきらめるつもりでしたが、iw の httphandler サンプルを調べたところ、その ServerController: OnBrowserCheck にイベントが実装されていることがわかりました。同じイベント コードをテスト用に自分のコードに追加しました。すごい、うまくいきました。 。 。 procedure TIWServerController.IWServerControllerBaseBrowserCheck( 、ははは、ほんの数行のコードに数日苦労しましたが、ついに WeChat 開発に使用できるようになりました。
aSession: TIWApplication; var rBrowser: TBrowser);
begin
// このイベント コードは非常に重要です。私はここで数日間行き詰まっています。
//
// このイベントが実装されていない場合、どのブラウザでも /wxapi.php を入力すると正常に応答できます。
// WeChat で設定が失敗したことが示された場合にのみ、コード内のログ出力を使用したことがわかりました。 WeChat リクエストは受信できますが、
// TWxApi.Execute メソッドは実行されません。その後、公式 Web サイトにアクセスして関連するヘルプを読んだところ、ブラウザのみをサポートしていることがわかりました
// ブラウザは出力に正常に応答できます。 WeChat によって送信された TWxApi.Execute メソッド この Web リクエストは明らかに既知のブラウザーに属しません
rBrowser が TOther の場合、開始します
rBrowser := TInternetExplorer.Create(8); // ページのコンテンツを出力します互換性のある IE8 ページの閲覧
end;
end;

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ドリームウィーバー CS6
ビジュアル Web 開発ツール

ホットトピック









