ホームページ > WeChat アプレット > WeChatの開発 > Senparc.Weixin.MP SDK WeChat パブリック プラットフォーム開発チュートリアル (2): 開発者になる

Senparc.Weixin.MP SDK WeChat パブリック プラットフォーム開発チュートリアル (2): 開発者になる

高洛峰
リリース: 2017-02-22 15:28:31
オリジナル
1519 人が閲覧しました

ぼんやりと WeChat バックエンドの「高度な」機能を有効にするよりも、開発者になるための準備を整えることが重要だと思うので、このセクションを最初に置きます。

1. パブリック プラットフォームの通信プロセス

開発者として、WeChat サーバーとアプリケーション (ウェブサイト) サーバーという 2 つの主要なオブジェクトに直面する必要があります。

WeChat ユーザーがパブリック プラットフォームにメッセージを送信すると、そのメッセージは実際にはまず WeChat サーバーに送信され、WeChat サーバーは Web サイト サーバーへの別のリクエストを開始し、Web サイト サーバーはこのリクエストの結果を返します。 WeChat サーバーはそれを WeChat クライアントに送信します。

メッセージ通信プロセス全体は以下のとおりです:

Senparc.Weixin.MP SDK 微信公众平台开发教程(二):成为开发者

上記の 5 つのステップのうち、開発者としてはステップ 3 に主に焦点を当てます。このステップには実際には 3 つのタスクがあります:

  1. からの受信 2 の XML 情報

  2. サーバー内部ロジックの実行

  3. は、4つのXML情報を整理して返します

上記の3つのタスクについては後ほど詳しく説明し、一連のシンプルで効率的な処理方法を提供します。

2. XML 通信形式

ユーザーが WeChat クライアントを使用してさまざまな種類のメッセージを送信すると、Web サイトのサーバーはさまざまな形式 (テキスト、音声、画像など) でデータを受信します。現在のデータ形式は XML です。

勉強としては、最も単純なテキストタイプをマスターすれば十分だと思います。他の形式も同様です。次の手順では、Senparc.Weixin.MP.dll を使用すると、これらの面倒な形式と定義を完全に無視できることがわかります。

単純なテキストリクエスト XML (RequestMessage) の内容は次のとおりです:

<xml>
    <ToUserName><![CDATA[gh_a96a4a619366]]></ToUserName>
    <FromUserName><![CDATA[olPjZjsXuQPJoV0HlruZkNzKc91E]]></FromUserName>
    <CreateTime>1357986928</CreateTime>
    <MsgType><![CDATA[text]]></MsgType>
    <Content><![CDATA[TNT2]]></Content>
    <MsgId>5832509444155992350</MsgId>
</xml>
ログイン後にコピー

対応するノードの公式の説明は次のとおりです:

Parameter Description
ToUserName 開発者WeChat ID
FromUserName 送信者アカウント (OpenID)
CreateTime メッセージ作成時間 (整数)
MsgType text
コンテンツ テキストメッセージのコンテンツ
MsgId メッセージ ID、64 ビット整数

内容は次のとおりです。

りー

対応ノード 公式説明は以下の通り:

ParametersToUserNameFromUserNameCreateTimeMsgTypeContentFuncFlag3. 注意が必要で見落とされやすいいくつかの問題:

テキスト情報など、各 XML 情報にはサイズ制限があります。コンテンツの内容は 600 ワードを超えてはなりません。

上の図では、ステップ 2 が開始された後、WeChat サーバーの待機時間は

5 秒

この時間内にステップ 4 に到達しない場合、リクエストはクローズされます (データ送信を含む)。 )。つまり、時間を超えるとWebサイトサーバーがデータを返してもクライアントは応答を受け取ることができなくなります。


テキストメッセージでは、リンクを配置するためにタグを追加することができますが、多くの友人がそれをテストしたところ、iOSでは問題がないことがわかりましたが、実際にはリンクをクリックできません。理由は (少なくとも今のところ): Android WeChat クライアントは タグの形式に厳密に従ってください: content< /a>。href の後に一重引用符を使用しないでください。他のプロパティも追加しないでください。

  1. 上記の XML ノードの FromUserName は WeChat ユーザーの OpenId であり、同じパブリック アカウントの場合、この OpenId の最初の 6 桁はパブリック プラットフォーム全体のレコード間で一貫しており、一意です。つまり、同じユーザーが 2 つの異なる公開アカウントをフォローしている場合、そのユーザーは 2 つの異なる OpenId を持つことになります。

  2. CreateTime は Unix 時間を使用するため、C# を使用する場合は変換を行う必要があります。 以前は、WeChat サーバーはノード名の代わりにノードの位置 (node[0]) を使用して、XML ノードの順序を維持しようとしました。改善されましたが、まだ注意が必要です (¥…………&%&……)。

  3. この特別な通信方法により、(少なくとも現時点では) すべてのリクエストは最初にクライアントから開始される必要があります。API または SDK を使用するだけで、Web サイトサーバーがアクティブにメッセージをクライアントにプッシュできるとは期待しないでください。もちろん、模擬ログインなどの他の方法もあります)。

  4. 4. 仕事をうまくやりたいなら、まずツールを磨く必要があります: Senparc.Weixin.MP.dll

  5. 通信プロセス全体は非常にシンプルですが、公式 API は依然として特別な調整や処理を行っています。非常に多くの種類のリクエスト データを手続き的に処理することも、非常に骨の折れる作業です。
  6. この目的のために、私はオープンソース プロジェクトを作成しました: Senparc.Weixin.MP、アドレス: //m.sbmmt.com/

  7. Senparc.Weixin.MP の主な目的は、C# 開発者が全体を簡素化できるようにすることです。通信プロセスを指向しており、オブジェクト単位でメッセージを処理することを目的としており、煩雑な API ではなくビジネス ロジックに重点を置いています。
  8. Senparc.Weixin.MP を使用し、それを外部ネットワークに展開して WeChat サーバーと通信します。

  9. VS2012 (少なくとも VS2010 SP1); を実行する必要がある場合。 MVC デモ、少なくとも .NET 4.0 (MVC 4 をインストール)、Webforms デモを実行、少なくとも .NET 3.5 が必要です

ポート 80、仮想ホスト、ピーナッツ シェル マッピングを使用してアクセスできるドメイン名または IPイントラネット、VPS、独立したサーバーはすべて受け入れられます。

Senparc.Weixin.MP SDK WeChat パブリック プラットフォーム開発チュートリアル (2) の詳細については、開発者になることに関する記事については、PHP 中国語 Web サイトに注目してください。

    Description
    受信者アカウント(受信したOpenID)
    開発者WeChat ID
    メッセージの作成時間
    text
    返信のメッセージ内容、長さは2048バイトを超えません
    ビット0x0001がマークされている場合、スターはメッセージを受信したばかりです。
    ソース:php.cn
    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート