


WeChat パブリック アカウント (サービス アカウントとサブスクリプション アカウントを含む) は、管理を容易にするために、通常、メニュー データをローカルで管理および維持し、更新する必要がある場(chǎng)合は、WeChat サーバーに更新するだけです。 。この方法に基づいて、この記事では、私の WeChat ポータル プラットフォーム管理システムで WeChat サーバーにメニューを送信する操作を紹介します。 WeChat ポータル アプリケーション管理システムは、MVC+EasyUI に基づくルートを採(cǎi)用しています。ほとんどのドメイン ネーム サーバーは .NET4.0 しかサポートできないため、開(kāi)発ベースとして MVC3 と C#4.0 を使用し、基本的にどの .NET サーバーにも展開(kāi)できます。
1. WeChat メニューの要件と関連するインターフェイスの設(shè)計(jì)
WeChat パブリック アカウントのメニューを Web サイトを通じてローカルに管理し、それらの間の階層関係を維持できます。WeChat にはカスタマイズされたメニューに対する?yún)棨筏ひⅳ毪郡?、以下?WeChat のカスタム要件です。メニュー:
現(xiàn)在、カスタム メニューには最大 3 つの第 1 レベルのメニューが含まれ、各第 1 レベルのメニューには最大 5 つの第 2 レベルのメニューが含まれます。第 1 レベルのメニューには最大 4 文字、第 2 レベルのメニューには最大 7 文字の中國(guó)語(yǔ)を含めることができます。余分な部分は「...」に置き換えられます。
そのため、私たちの合意に従って、境界を越えないようにします。そうしないと、ローカル メニュー管理を作成するときに、これらの詳細(xì)に注意する必要があります。カスタム メニューの內(nèi)容については、以前の記事でも紹介していますので、必要に応じて「WeChat ポータルとアプリケーションの C# 開(kāi)発 (6) -- WeChat ポータル メニューの管理操作」を參照してください。プラットフォーム管理システムでは、前に紹介したメニュー インターフェイス API が呼び出され、メニューをサーバーに送信する操作が実裝されます。
WeChatのカスタムメニュー要件に従って、管理システム內(nèi)のWeChatメニューのいくつかの基本インターフェイスを次のように設(shè)計(jì)しました。
メインメニューの管理インターフェイスは以下のとおりです。
メニューを追加するインターフェイスのデザインは次のとおりです
WeChatメニューの変更インターフェイスは次のとおりです
WeChatメニューの定義は、必要に応じてデータベースに保存されます。 WeChatサーバーに送信して有効にするには、WeChat APIインターフェースを呼び出して処理する必要があります。ページのコントローラーにサーバーに送信する処理メソッドを追加しました。
2. WeChat サーバーにメニューを送信する操作
上記のインターフェイスは主に、WeChat メニューのプロパティに基づいてメニューを維持および管理します。顧客関連のインシデント業(yè)務(wù)を擔(dān)當(dāng)します。
メニュー操作を送信するには、MVC ビュー ページで JQuery の Ajax を使用して送信できます (後で紹介するコントローラーに対応する処理を追加する場(chǎng)合)。インターフェイス スクリプト コードは次のとおりです。
//綁定提交按鈕的的點(diǎn)擊事件 ????????function?BindSubmitEvent()?{ ????????????$("#btnSubmit").click(function?()?{ ????????????????$.messager.confirm("提交菜單確認(rèn)",?"您確認(rèn)需要提交菜單到微信服務(wù)器嗎?",?function?(action)?{ ????????????????????if?(action)?{ ????????????????????????//提交數(shù)據(jù) ????????????????????????$.ajax({ ????????????????????????????url:?'/Menu/UpdateWeixinMenu', ????????????????????????????type:?'post', ????????????????????????????dataType:?'json', ????????????????????????????success:?function?(data)?{ ????????????????????????????????if?(data.Success)?{ ????????????????????????????????????$.messager.alert("提示",?"提交微信菜單成功"); ????????????????????????????????} ????????????????????????????????else?{ ????????????????????????????????????$.messager.alert("提示",?"提交微信菜單失敗:"?+?data.ErrorMessage); ????????????????????????????????} ????????????????????????????}, ????????????????????????????data:?'' ????????????????????????}); ????????????????????} ????????????????}); ????????????}); ????????}
上記の赤いコードは、MVC コントローラーで定義したメソッドです。メニューを WeChat サーバーに送信するには、POST メソッドを介してコントローラー メソッドを呼び出すだけです。処理のためにそれらをコントローラーまたは下位レベルに移動(dòng)できます。ページにはあまり多くのロジックを含める必要はありません。
上記のMenuコントローラーのUpdateWeixinMenuメソッドのコードは次のとおりです(主に以前に紹介した開(kāi)発モデルに基づいています)。
///?<summary> ????????///更新微信菜單 ????????///?</summary> ????????///?<returns></returns> ????????public?ActionResult?UpdateWeixinMenu() ????????{ ????????????string?token?=?base.GetAccessToken(); ????????????MenuListJson?menuJson?=?GetWeixinMenu(); ????????????IMenuApi?menuApi?=?new?MenuApi(); ????????????CommonResult?result?=?menuApi.CreateMenu(token,?menuJson); ????????????return?ToJsonContent(result); ????????}
ここでは上記の方法を一つずつ紹介していきます。 GetAccessToken は主に現(xiàn)在の操作のアクセス トークンを取得するために使用されます。そうでない場(chǎng)合、AccessToken は 1 日に指定された回?cái)?shù)に達(dá)すると、その日は再度使用できなくなります。
GetWeixinMenu メソッドは主に便宜上、WeChat のカスタム メニュー データを取得する関數(shù)をカプセル化します。具體的なコードは次のとおりです。
りーりー
上面的代碼,就是把本地存儲(chǔ)的MenuNodeInfo數(shù)據(jù),通過(guò)遞歸遍歷的方式,轉(zhuǎn)換為微信的自定義菜單實(shí)體MenuJson,這樣我們調(diào)用API就非常方便了,這個(gè)函數(shù)主要負(fù)責(zé)構(gòu)造對(duì)應(yīng)的實(shí)體信息就是了。至于調(diào)用微信API提交菜單的事情,還是讓API自己親自處理為好,他們的代碼如下所示(也就是上面函數(shù)的部分代碼)。
????????IMenuApi?menuApi?=?new?MenuApi(); ????????CommonResult?result?=?menuApi.CreateMenu(token,?menuJson);????????return?ToJsonContent(result);
最終的結(jié)果是返回一個(gè)通用的結(jié)果CommonResult,這個(gè)結(jié)果對(duì)象,非常方便腳本的處理,如果有錯(cuò)誤,則提示錯(cuò)誤,否則也方便判斷布爾值,也就是上面的頁(yè)面代碼腳本。
success:?function?(data)?{ ????????if?(data.Success)?{ ??????????????????$.messager.alert("提示",?"提交微信菜單成功"); ???????????} ??????????else?{ ????????????????????$.messager.alert("提示",?"提交微信菜單失敗:"?+?data.ErrorMessage); ????????????} ???????},
通過(guò)以上幾部分的代碼,我們就可以實(shí)現(xiàn)前臺(tái)MVC的視圖界面,調(diào)用后臺(tái)封裝好的微信API,實(shí)現(xiàn)菜單的提交處理了。
更多C#開(kāi)發(fā)微信門(mén)戶及應(yīng)用微信門(mén)戶菜單管理及提交到微信服務(wù)器?相關(guān)文章請(qǐng)關(guān)注PHP中文網(wǎng)!

ホットAIツール

Undress AI Tool
脫衣畫(huà)像を無(wú)料で

Undresser.AI Undress
リアルなヌード寫(xiě)真を作成する AI 搭載アプリ

AI Clothes Remover
寫(xiě)真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版
中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1
強(qiáng)力な PHP 統(tǒng)合開(kāi)発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開(kāi)発ツール

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