微信开发模式(php)_PHP教程
微信开发模式(php)
才开始学习微信开发模式和PHP,在此记录以供后阅。
<?php /** * wechat php test */ //define your token define( "TOKEN", "weixin" ); $wechatObj = new wechatCallbackapiTest(); if ( !isset( $_GET['echostr'] ) ) { $wechatObj->responseMsg(); }else { $wechatObj->valid(); } class wechatCallbackapiTest { public function valid() { $echoStr = $_GET["echostr"]; //valid signature , option if ( $this->checkSignature() ) { echo $echoStr; exit; } } public function responseMsg() { //get post data, May be due to the different environments $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //extract post data if ( !empty( $postStr ) ) { /* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection, the best way is to check the validity of xml by yourself */ libxml_disable_entity_loader( true ); $postObj = simplexml_load_string( $postStr, 'SimpleXMLElement', LIBXML_NOCDATA ); $RX_TYPE = trim( $postObj->MsgType ); switch ( $RX_TYPE ) { case "text": $resultStr = $this->receiveText( $postObj ); break; case "event": $resultStr = $this->receiveEvent( $postObj ); break; default: $resultStr = ""; break; } echo $resultStr; } else { echo ""; exit; } } private function receiveText( $object ) { $getkeyword = $object->Content; switch ( $getkeyword ) { case '产品': $funcFlag = 0; $contentStr = "产品链接:http://www.xxx.com/products/"; $resultStr = $this->transmitText( $object, $contentStr, $funcFlag ); break; case '新闻': $funcFlag = 0; $contentStr ="新闻链接:http://www.xxx.com/news/"; $resultStr = $this->transmitText( $object, $contentStr, $funcFlag ); break; case '方案': $funcFlag = 0; $contentStr ="方案链接:http://www.xxx.com/articles/"; $resultStr = $this->transmitText( $object, $contentStr, $funcFlag ); break; case '我们': $funcFlag = 0; $contentStr ="我们链接:http://www.xxx.com/culture/?type=detail&id=1"; $resultStr = $this->transmitText( $object, $contentStr, $funcFlag ); break; default: break; } return $resultStr; } private function receiveEvent( $object ) { $contentStr = ""; switch ( $object->Event ) { case "subscribe": $contentStr = "欢迎您关注xxx"; case "unsubscribe": break; case "CLICK": switch ( $object->EventKey ) { case "V1001_GETCODE": $contentStr = "xxx"; break; case "V1002_HISTORY": $contentStr[] = array( "Title" =>"最后一条历史记录", "Description" =>"xxx", "PicUrl" =>"xxx", "Url" =>"xxx" ); break; case "V2001_INTERDUCE": $contentStr[] = array( "Title" =>"xxx", "Description" =>"xxx", "Url" =>"http://mp.weixin.qq.com/xxx" ); break; case "V3001_JOIN": $getuid = $this->getUid( $object ); if ( $getuid==1 ) { $contentStr = 'Could not connect: '.mysql_error(); }else { $contentStr = "唯一码:".$getuid; } break; default: $contentStr[] = array( "Title" =>"默认菜单回复", "Description" =>"xxx", "PicUrl" =>"xxx", "Url" =>"xxx" ); break; } break; default: break; } if ( is_array( $contentStr ) ) { $resultStr = $this->transmitNews( $object, $contentStr ); }else { $resultStr = $this->transmitText( $object, $contentStr ); } return $resultStr; } private function transmitText( $object, $content, $funcFlag = 0 ) { $textTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[%s]]></Content> <FuncFlag>%d</FuncFlag> </xml>"; $resultStr = sprintf( $textTpl, $object->FromUserName, $object->ToUserName, time(), $content, $funcFlag ); return $resultStr; } private function transmitNews( $object, $arr_item, $funcFlag = 0 ) { if ( !is_array( $arr_item ) ) return; $itemTpl = "<item> <Title><![CDATA[%s]]></Title> <Description><![CDATA[%s]]></Description> <PicUrl><![CDATA[%s]]></PicUrl> <Url><![CDATA[%s]]></Url> </item>"; $item_str = ""; foreach ( $arr_item as $item ) $item_str .= sprintf( $itemTpl, $item['Title'], $item['Description'], $item['PicUrl'], $item['Url'] ); $newsTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[news]]></MsgType> <Content><![CDATA[]]></Content> %s</ArticleCount> $item_str</Articles> <FuncFlag>%s</FuncFlag> </xml>"; $resultStr = sprintf( $newsTpl, $object->FromUserName, $object->ToUserName, time(), count( $arr_item ), $funcFlag ); return $resultStr; } /* 生成唯一码*/ public function getUid( $object ) { $getOpenid = $object->FromUserName; $con = mysql_connect( "localhost", "root", "xxx" ); mysql_select_db( "xxx", $con ); if ( !$con ) { return 1; } $flag = true; $getUserresult = mysql_query( "SELECT * FROM loginuser WHERE openid = '".$getOpenid."'" ); $getuserrow = mysql_num_rows( $getUserresult ); if ( $getuserrow>0 ) { $userrow = mysql_fetch_array( $getUserresult ); if ( $userrow['state']==0 ) { return $userrow['userPassword']."[未完成考试]"; $flag = false; }else { return $userrow['userPassword']."[已完成考试]"; $flag = false; } } /* 循环确定唯一性 */ while ( $flag ) { $uid = uniqid( true ); $uid = substr( $uid, -8 ); $result = mysql_query( "SELECT * FROM loginuser where userPassword = '".$uid."'" ); $row = mysql_num_rows( $result ); if ( $row == 0 ) { mysql_query( "INSERT INTO loginuser (userPassword,state,openid) VALUES ('".$uid."','0','".$getOpenid."')" ); mysql_close( $con ); return $uid; $flag =false; } } } private function getUidtest( $object ) { return $object->FromUserName; } private function checkSignature() { // you must define TOKEN by yourself if ( !defined( "TOKEN" ) ) { throw new Exception( 'TOKEN is not defined!' ); } $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $token = TOKEN; $tmpArr = array( $token, $timestamp, $nonce ); // use SORT_STRING rule sort( $tmpArr, SORT_STRING ); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); if ( $tmpStr == $signature ) { return true; }else { return false; } } } ?>

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Apakah maksud mod Jangan Ganggu WeChat Pada masa kini, dengan populariti telefon pintar dan perkembangan pesat Internet mudah alih, platform media sosial telah menjadi bahagian yang amat diperlukan dalam kehidupan seharian orang ramai. WeChat ialah salah satu platform media sosial paling popular di China, dan hampir semua orang mempunyai akaun WeChat. Kita boleh berkomunikasi dengan rakan, keluarga dan rakan sekerja dalam masa nyata melalui WeChat, berkongsi detik dalam hidup kita dan memahami situasi semasa satu sama lain. Namun begitu, dalam era ini, sudah pasti kita juga berdepan dengan masalah sarat maklumat dan kebocoran privasi terutamanya bagi mereka yang perlu fokus atau

Peranti iOS telah lama dapat menjejaki corak tidur anda dan banyak lagi menggunakan apl Kesihatan. Tetapi bukankah ia menjengkelkan apabila anda diganggu oleh pemberitahuan semasa anda sedang tidur? Pemberitahuan ini mungkin tidak relevan dan oleh itu mengganggu corak tidur anda dalam proses. Walaupun mod Jangan Ganggu ialah cara terbaik untuk mengelakkan gangguan semasa tidur, ia boleh menyebabkan anda terlepas panggilan dan mesej penting yang anda terima pada waktu malam. Syukurlah, di sinilah mod tidur masuk. Mari ketahui lebih lanjut mengenainya dan cara menggunakannya pada iPhone. Apakah peranan yang dimainkan oleh mod tidur pada iPhone Mod tidur ialah mod fokus khusus dalam iOS yang diaktifkan secara automatik berdasarkan jadual tidur anda dalam apl "Kesihatan". Ia membantu anda menetapkan penggera dan kemudian

Malah menjawab panggilan dalam mod Jangan Ganggu boleh menjadi pengalaman yang sangat menjengkelkan. Seperti namanya, mod Jangan Ganggu mematikan semua pemberitahuan panggilan masuk dan makluman daripada e-mel, mesej, dsb. Anda boleh mengikuti set penyelesaian ini untuk membetulkannya. Betulkan 1 – Dayakan Mod Fokus Dayakan mod fokus pada telefon anda. Langkah 1 – Leret ke bawah dari atas untuk mengakses Pusat Kawalan. Langkah 2 – Seterusnya, dayakan “Mod Fokus” pada telefon anda. Mod Fokus mendayakan mod Jangan Ganggu pada telefon anda. Ia tidak akan menyebabkan sebarang makluman panggilan masuk muncul pada telefon anda. Betulkan 2 – Tukar Tetapan Mod Fokus Jika terdapat beberapa isu dalam tetapan mod fokus, anda harus membetulkannya. Langkah 1 – Buka tetingkap tetapan iPhone anda. Langkah 2 – Seterusnya, hidupkan tetapan mod Fokus

Model epc o merujuk kepada rangka kerja kontrak am yang mengintegrasikan reka bentuk, perolehan, dsb. Ia adalah beberapa pautan operasi yang diperolehi daripada epc iaitu, semasa tempoh pembinaan, kontraktor am bukan sahaja perlu menjalankan tugas reka bentuk dalam pengertian tradisional, tetapi juga untuk mengambil alih semua tugas penyelenggaraan sepanjang tempoh operasi. Model ini boleh meningkatkan kecekapan operasi banyak projek dan mengurangkan kos operasi dengan cepat.

Pada model iPhone 15 Pro dan iPhone 15 Pro Max, Apple memperkenalkan butang tindakan boleh atur cara secara fizikal yang menggantikan suis deringan/senyap tradisional di atas butang kelantangan. Butang tindakan boleh diprogramkan untuk melaksanakan beberapa fungsi yang berbeza, tetapi keupayaan untuk bertukar antara mod senyap dan deringan tidak hilang. Secara lalai, tekan lama pada butang tindakan akan menyenyapkan peranti dan maklum balas sentuhan butang akan berdenyut tiga kali. Kedua-dua model iPhone 15 Pro akan memaparkan simbol loceng berpalang di sebelah masa dalam bar status untuk menunjukkan bahawa mod senyap/senyap diaktifkan, dan ia akan kekal sedemikian sehingga anda menekan lama butang Tindakan sekali lagi untuk menyahredam peranti. Jika anda lebih suka meletakkan iPhone anda dalam mod senyap

Notepad++ dark mode v8.0 tidak mempunyai parameter, Notepad++ ialah editor teks yang paling berguna. Setiap apl yang dijalankan pada Windows 10 menyokong mod gelap. Anda boleh menamakan penyemak imbas web seperti Chrome, Firefox dan Microsoft Edge. Jika anda menggunakan Notepad++, latar belakang putih lalai mungkin menyakitkan mata anda. Pembangun telah menambahkan mod gelap pada versi 8 Notepad++, berikut ialah cara untuk menghidupkannya. Dayakan Notepad untuk Windows 11/10 ++ Dark Mode Launch Notepad ++ Klik "Settings" > "Preferences" > "Dark Mode" Pilih "Enable Dark Mode" untuk memulakan semula Notepad

Mod siap sedia akan datang ke iPhone dengan iOS17, dan panduan ini bertujuan untuk menunjukkan kepada anda cara menggunakan ciri ini pada iPhone anda. Mod Siap Sedia ialah ciri terobosan yang mengubah iPhone menjadi paparan pintar yang dinamik dan sentiasa hidup. Apabila iPhone anda diletakkan secara mendatar di sisinya semasa mengecas, ia mengaktifkan mod siap sedia. Mod ini dengan cantik mempamerkan pelbagai widget berguna, termasuk tetapi tidak terhad kepada masa semasa, kemas kini cuaca tempatan, tayangan slaid foto kegemaran anda dan juga kawalan main balik muzik. Kelebihan ketara mod ini ialah keupayaannya untuk memaparkan pemberitahuan, membolehkan pengguna melihat dan berinteraksi dengan mereka tanpa perlu membangunkan iPhone mereka sepenuhnya. Cara Menggunakan Mod Siap Sedia Untuk Mod Siap Sedia berfungsi dengan baik, iPhone anda mesti berjalan i

Windows dalam mod S direka untuk menyediakan keselamatan dan prestasi yang dipertingkatkan dengan hanya membenarkan pemasangan apl daripada Gedung Microsoft. Walaupun ciri ini membantu menghalang perisian hasad dan memastikan persekitaran pengkomputeran yang selamat, ciri ini mungkin mengehadkan pengguna yang ingin memasang aplikasi daripada sumber selain daripada Gedung Microsoft. Jika anda mendapati diri anda dalam situasi ini dan terus bertanya kepada diri sendiri bagaimana untuk keluar daripada Mod S dalam Windows 10/11, maka anda telah datang ke tempat yang betul kerana kami akan membimbing anda melalui cara untuk keluar dari Mod S dalam Windows 10/11 menggunakan dua kaedah berbeza Langkah ke Mod S memastikan anda boleh menikmati kebebasan memasang apl dari mana-mana sahaja yang anda pilih. Ketahui cara untuk keluar daripada mod S dalam Windows
