微信开发模式(php)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

才開始学习微信开发模式和PHP,在此记录以供后阅。

 

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> <ArticleCount>%s</ArticleCount> <Articles>$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; } } } ?>





本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5359758.html,如需转载请自行联系原作者
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
移动开发 监控 小程序
mPaaS常见问题之音视频通话微信小程序通话界面录制为画中画模式如何解决
mPaaS(移动平台即服务,Mobile Platform as a Service)是阿里巴巴集团提供的一套移动开发解决方案,它包含了一系列移动开发、测试、监控和运营的工具和服务。以下是mPaaS常见问题的汇总,旨在帮助开发者和企业用户解决在使用mPaaS产品过程中遇到的各种挑战
27 0
|
9月前
|
JSON 小程序 前端开发
微信小程序学习实录2(下拉刷新、下拉加载更多、小程序事件、PHP后端代码、刷新无数据解决方案)
微信小程序学习实录2(下拉刷新、下拉加载更多、小程序事件、PHP后端代码、刷新无数据解决方案)
306 0
|
9月前
|
数据采集 前端开发 数据可视化
漏刻有时数据可视化大屏数据采集工具(1):调用微信jsAPI扫描条形码或二维码ajax返回传参PHP源代码
漏刻有时数据可视化大屏数据采集工具(1):调用微信jsAPI扫描条形码或二维码ajax返回传参PHP源代码
73 0
|
11月前
|
存储
微信小游戏开发实战14-闯关模式的实现
本文主要内容是介绍精致1010闯关模式的设计和实现思路。 如果你没有任何的游戏开发经验,欢迎阅读我的“人人都能做游戏”系列教程,它会手把手的教你做出自己的第一个小游戏。
124 0
|
小程序 容器
【微信小程序】image组件的4种缩放模式与9种裁剪模式
假设有一个容器(这个容器的宽高就是设置的样式),要将图片放进去。而aspectFit的特点就是保持图片不变形,且容器要“刚好”将这个图片装进去。如果原始图片比容器大,就要被等比例缩小;如果原始图片比容器小,就会被等比例放大。一直放大或缩小到图片的某一条边刚好和容器的一条边重合。
1074 0
|
小程序 JavaScript 前端开发
微信小程序:阿里云OSS直传实践-PHP实现服务端签名
微信小程序:阿里云OSS直传实践-PHP实现服务端签名
613 0
微信小程序:阿里云OSS直传实践-PHP实现服务端签名
|
缓存 小程序 JavaScript
黯然微信小程序杂记(一):从服务器获取数据 后端语言php
黯然微信小程序杂记(一):从服务器获取数据 后端语言ph
250 0
|
缓存 小程序 API
微信小程序体验版数据加载不了,打开调试模式下才行(在微信开发者工具上也能加载数据)
微信小程序体验版数据加载不了,打开调试模式下才行(在微信开发者工具上也能加载数据)
1789 0
微信小程序体验版数据加载不了,打开调试模式下才行(在微信开发者工具上也能加载数据)
|
前端开发 PHP
微信支付基于PHP
微信支付基于PHP
121 0
微信支付基于PHP
|
PHP
微信开发之消息模板推送 + php
微信开发之消息模板推送 + php
147 0