{"id":613,"date":"2023-02-26T10:54:13","date_gmt":"2023-02-26T02:54:13","guid":{"rendered":"https:\/\/www.appblog.cn\/?p=613"},"modified":"2023-04-29T20:19:36","modified_gmt":"2023-04-29T12:19:36","slug":"laravel-integrate-easywechat-to-receive-regular-messages-and-event-push-notifications","status":"publish","type":"post","link":"https:\/\/www.appblog.cn\/index.php\/2023\/02\/26\/laravel-integrate-easywechat-to-receive-regular-messages-and-event-push-notifications\/","title":{"rendered":"Laravel\u96c6\u6210EasyWeChat\u63a5\u6536\u666e\u901a\u6d88\u606f\u548c\u4e8b\u4ef6\u63a8\u9001"},"content":{"rendered":"<p>Laravel\u5feb\u901f\u96c6\u6210EasyWeChat\uff1a<a target=\"_blank\" rel=\"noopener\" href=\"http:\/\/www.appblog.cn\/2018\/02\/11\/Laravel\u5feb\u901f\u96c6\u6210EasyWeChat\/\">http:\/\/www.appblog.cn\/2018\/02\/11\/Laravel\u5feb\u901f\u96c6\u6210EasyWeChat\/<\/a><\/p>\n<p><!-- more --><\/p>\n<pre><code>&lt;?php\n\/**\n * Created by PhpStorm.\n * User: yezhou\n * Date: 2018\/2\/7\n * Time: 13:20\n *\/\n\nnamespace App\\Http\\Controllers;\n\nuse Illuminate\\Support\\Facades\\Log;\n\nclass WeChatController extends Controller\n{\n\n    \/**\n     * \u5904\u7406\u5fae\u4fe1\u7684\u8bf7\u6c42\u6d88\u606f\n     *\n     * @return string\n     *\/\n    public function serve()\n    {\n        Log::info(&#039;request arrived.&#039;); # \u6ce8\u610f\uff1aLog \u4e3a Laravel \u7ec4\u4ef6\uff0c\u6240\u4ee5\u5b83\u8bb0\u7684\u65e5\u5fd7\u53bb Laravel \u65e5\u5fd7\u770b\uff0c\u800c\u4e0d\u662f EasyWeChat \u65e5\u5fd7\n\n        $app = app(&#039;wechat.official_account&#039;);\n        $app-&gt;server-&gt;push(function($message) {\n            switch ($message[&#039;MsgType&#039;]) {\n                case &#039;event&#039;:\n                    Log::info(&#039;\u6536\u5230\u4e8b\u4ef6\u6d88\u606f&#039;);\n                    \/\/\u63a5\u6536\u4e8b\u4ef6\u63a8\u9001: https:\/\/mp.weixin.qq.com\/wiki?t=resource\/res_main&amp;id=mp1421140454\n                    switch ($message[&#039;Event&#039;]) {\n                        case &#039;subscribe&#039;:  \/\/\u5173\u6ce8\u4e8b\u4ef6, \u626b\u63cf\u5e26\u53c2\u6570\u4e8c\u7ef4\u7801\u4e8b\u4ef6(\u7528\u6237\u672a\u5173\u6ce8\u65f6\uff0c\u8fdb\u884c\u5173\u6ce8\u540e\u7684\u4e8b\u4ef6\u63a8\u9001)\n                            return &quot;\u6b22\u8fce\u5173\u6ce8 HTTP:\/\/WWW.AppBlog.CN\uff01&quot;;\n                            break;\n                        case &#039;unsubscribe&#039;:  \/\/\u53d6\u6d88\u5173\u6ce8\u4e8b\u4ef6\n\n                            break;\n                        case &#039;SCAN&#039;:  \/\/\u626b\u63cf\u5e26\u53c2\u6570\u4e8c\u7ef4\u7801\u4e8b\u4ef6(\u7528\u6237\u5df2\u5173\u6ce8\u65f6\u7684\u4e8b\u4ef6\u63a8\u9001)\n                            return &quot;\u6b22\u8fce\u5173\u6ce8 HTTP:\/\/WWW.AppBlog.CN\uff01&quot;;\n                            break;\n                        case &#039;LOCATION&#039;:  \/\/\u4e0a\u62a5\u5730\u7406\u4f4d\u7f6e\u4e8b\u4ef6\n                            return &quot;\u7ecf\u5ea6: &quot; . $message[&#039;Longitude&#039;] . &quot;\\n\u7eac\u5ea6: &quot; . $message[&#039;Latitude&#039;] . &quot;\\n\u7cbe\u5ea6: &quot; . $message[&#039;Precision&#039;];\n                            break;\n                        case &#039;CLICK&#039;:  \/\/\u81ea\u5b9a\u4e49\u83dc\u5355\u4e8b\u4ef6(\u70b9\u51fb\u83dc\u5355\u62c9\u53d6\u6d88\u606f\u65f6\u7684\u4e8b\u4ef6\u63a8\u9001)\n                            return &quot;\u4e8b\u4ef6KEY\u503c: &quot; . $message[&#039;EventKey&#039;];\n                            break;\n                        case &#039;VIEW&#039;:  \/\/\u81ea\u5b9a\u4e49\u83dc\u5355\u4e8b\u4ef6(\u70b9\u51fb\u83dc\u5355\u62c9\u53d6\u6d88\u606f\u65f6\u7684\u4e8b\u4ef6\u63a8\u9001)\n                            return &quot;\u8df3\u8f6cURL: &quot; . $message[&#039;EventKey&#039;];\n                            break;\n                        case &#039;ShakearoundUserShake&#039;:\n                            Log::info(&#039;\u6447\u4e00\u6447\u5468\u8fb9\u4e8b\u4ef6&#039;);\n                            \/\/\u6447\u4e00\u6447\u4e8b\u4ef6\u901a\u77e5: https:\/\/mp.weixin.qq.com\/wiki?t=resource\/res_main&amp;id=mp1443448066\n                            return &#039;ChosenBeacon\\n&#039; . &#039;Uuid: &#039; . $message[&#039;ChosenBeacon&#039;][&#039;Uuid&#039;] . &#039;Major: &#039; . $message[&#039;ChosenBeacon&#039;][&#039;Major&#039;] . &#039;Minor: &#039; . $message[&#039;ChosenBeacon&#039;][&#039;Minor&#039;] . &#039;Distance: &#039; . $message[&#039;ChosenBeacon&#039;][&#039;Distance&#039;];\n                            break;\n                        default:\n                            return $message[&#039;Event&#039;];\n                            break;\n                    }\n                    break;\n                \/\/\u63a5\u6536\u666e\u901a\u6d88\u606f: https:\/\/mp.weixin.qq.com\/wiki?t=resource\/res_main&amp;id=mp1421140453\n                case &#039;text&#039;:\n                    Log::info(&#039;\u6536\u5230\u6587\u5b57\u6d88\u606f&#039;);\n                    return &quot;Content: &quot; . $message[&#039;Content&#039;];\n                    break;\n                case &#039;image&#039;:\n                    Log::info(&#039;\u6536\u5230\u56fe\u7247\u6d88\u606f&#039;);\n                    return &quot;MediaId: &quot; . $message[&#039;MediaId&#039;] . &quot;\\nPicUrl: &quot; . $message[&#039;PicUrl&#039;];\n                    break;\n                case &#039;voice&#039;:\n                    Log::info(&#039;\u6536\u5230\u8bed\u97f3\u6d88\u606f&#039;);\n                    return &quot;MediaId: &quot; . $message[&#039;MediaId&#039;] . &quot;\\nFormat: &quot; . $message[&#039;Format&#039;] . &quot;\\nRecognition: &quot; . $message[&#039;Recognition&#039;];\n                    break;\n                case &#039;video&#039;:\n                    Log::info(&#039;\u6536\u5230\u89c6\u9891\u6d88\u606f&#039;);\n                    return &quot;MediaId: &quot; . $message[&#039;MediaId&#039;] . &quot;\\nThumbMediaId: &quot; . $message[&#039;ThumbMediaId&#039;];\n                    break;\n                case &#039;shortvideo&#039;:\n                    Log::info(&#039;\u6536\u5230\u5c0f\u89c6\u9891\u6d88\u606f&#039;);\n                    return &quot;MediaId: &quot; . $message[&#039;MediaId&#039;] . &quot;\\nThumbMediaId: &quot; . $message[&#039;ThumbMediaId&#039;];\n                    break;\n                case &#039;location&#039;:\n                    return &quot;Location_X: &quot; . $message[&#039;Location_X&#039;] . &quot;\\nLocation_Y: &quot; . $message[&#039;Location_Y&#039;] . &quot;\\nScale: &quot; . $message[&#039;Scale&#039;] . &quot;\\nLabel: &quot; . $message[&#039;Label&#039;];\n                    Log::info(&#039;\u6536\u5230\u5750\u6807\u6d88\u606f&#039;);\n                    break;\n                case &#039;link&#039;:\n                    Log::info(&#039;\u6536\u5230\u94fe\u63a5\u6d88\u606f&#039;);\n                    return &quot;Title: &quot; . $message[&#039;Title&#039;] . &quot;\\nDescription: &quot; . $message[&#039;Description&#039;] . &quot;\\nUrl: &quot; . $message[&#039;Url&#039;];\n                    break;\n                default:\n                    Log::info(&#039;\u6536\u5230\u5176\u5b83\u6d88\u606f&#039;);\n                    return $message[&#039;MsgType&#039;];\n                    break;\n            }\n        });\n\n        return $app-&gt;server-&gt;serve();\n    }\n\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Laravel\u5feb\u901f\u96c6\u6210EasyWeChat\uff1ahttp:\/\/www.appblog.cn\/2018\/02\/11\/ [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18],"tags":[172],"class_list":["post-613","post","type-post","status-publish","format-standard","hentry","category-laravel","tag-easywechat"],"_links":{"self":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/613","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/comments?post=613"}],"version-history":[{"count":0,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/613\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/media?parent=613"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/categories?post=613"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/tags?post=613"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}