微信邀请卡的开发

  1 <?php
  2 /**
  3   * wechat php test
  4   */
  5
  6 //define your token
  7 define("TOKEN", "weixin");
  8 $wechatObj = new wechatCallbackapiTest();
  9 //验证服务器和公众平台是否连接成功
 10 //在服务器和公众平台验证成功之后,把$wechatObj->valid()注释掉
 11 // $wechatObj->valid();
 12 echo $wechatObj->responseMsg();
 13
 14 class wechatCallbackapiTest
 15 {
 16     public function valid()
 17     {
 18         $echoStr = $_GET["echostr"];
 19
 20         //valid signature , option
 21         if($this->checkSignature()){
 22             echo $echoStr;
 23             exit;
 24         }
 25     }
 26     //输出公众平台返回给用户的信息
 27     public function responseMsg()
 28     {
 29         //get post data, May be due to the different environments
 30         //相当于$_POST
 31         $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
 32
 33           //extract post data
 34         if (!empty($postStr)){
 35                 /* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,
 36                    the best way is to check the validity of xml by yourself */
 37                 //只解析XML数据的主体部分,防止xxe攻击
 38                 libxml_disable_entity_loader(true);
 39                 //解析XML数据
 40                   $postObj = simplexml_load_string($postStr, ‘SimpleXMLElement‘, LIBXML_NOCDATA);
 41                 //获取手机用户的OPenID
 42                 $fromUsername = $postObj->FromUserName;
 43                 //开发者微信号
 44                 $toUsername = $postObj->ToUserName;
 45                 //发送文本信息的关键字
 46                 $keyword = trim($postObj->Content);
 47                 //发送消息的类型
 48                 $type = $postObj->MsgType;
 49
 50                 $time = time();
 51                 //发送文本信息的字符串模板
 52                 $textTpl = "<xml>
 53                             <ToUserName><![CDATA[%s]]></ToUserName>
 54                             <FromUserName><![CDATA[%s]]></FromUserName>
 55                             <CreateTime>%s</CreateTime>
 56                             <MsgType><![CDATA[%s]]></MsgType>
 57                             <Content><![CDATA[%s]]></Content>
 58                             <FuncFlag>0</FuncFlag>
 59                             </xml>";
 60                 //音乐消息的模板
 61                 $musicTpl = "<xml>
 62                             <ToUserName><![CDATA[%s]]></ToUserName>
 63                             <FromUserName><![CDATA[%s]]></FromUserName>
 64                             <CreateTime>%s</CreateTime>
 65                             <MsgType><![CDATA[%s]]></MsgType>
 66                             <Music>
 67                             <Title><![CDATA[%s]]></Title>
 68                             <Description><![CDATA[%s]]></Description>
 69                             <MusicUrl><![CDATA[%s]]></MusicUrl>
 70                             <HQMusicUrl><![CDATA[%s]]></HQMusicUrl>
 71
 72                             </Music>
 73                             </xml>";
 74                 //发送图文消息
 75                 $newsTpl="<xml>
 76                             <ToUserName><![CDATA[%s]]></ToUserName>
 77                             <FromUserName><![CDATA[%s]]></FromUserName>
 78                             <CreateTime>%s</CreateTime>
 79                             <MsgType><![CDATA[%s]]></MsgType>
 80                             <ArticleCount>%s</ArticleCount>
 81                             <Articles>
 82                             %s
 83                             </Articles>
 84                             </xml> ";
 85                 if($type == ‘text‘){
 86                     if(!empty( $keyword ))
 87                     {
 88                         // if($keyword == ‘音乐‘){
 89                         //     $msgType = "music";
 90                         //     $title   = "See You Again";
 91                         //     $description=‘速度与激情7 原声大碟‘;
 92                         //     $music_url=‘http://www.yyzljg.com/wechat/music.mp3‘;
 93                         //     $high_url=‘http://www.yyzljg.com/wechat/music.mp3‘;
 94                         //     //格式化字符串
 95                         //     $resultStr = sprintf($musicTpl, $fromUsername, $toUsername, $time, $msgType,$title,$description,$music_url,$high_url);
 96                         //     echo $resultStr;
 97                         // }
 98                         if($keyword==‘音乐‘){
 99                                 $msgType=‘music‘;
100                                 $title=‘冰雪奇缘主题曲‘;
101                                 $description=‘原声大碟‘;
102                                 $music_url=‘http://www.yyzljg.com/wechat/music.mp3‘;
103                                 $high_url=‘http://www.yyzljg.com/wechat/music.mp3‘;
104                                 //格式化字符串
105                                 $resultStr = sprintf($musicTpl, $fromUsername, $toUsername, $time, $msgType,$title,$description,$music_url,$high_url);
106                                 echo $resultStr;
107                         }
108                         if($keyword == ‘单图文‘){
109                             $msgType=‘news‘;
110                             $counts=1;
111                             $contentStr="<item>
112                             <Title><![CDATA[大家一起学习微信开发]]></Title>
113                             <Description><![CDATA[愿每天的你都是开心的!]]></Description>
114                             <PicUrl><![CDATA[http://ibeliveone.applinzi.com/1.jpg]]></PicUrl>
115                             <Url><![CDATA[http://ibeliveone.applinzi.com/1.jpg]]></Url>
116                             </item>";
117
118                             //格式化字符串
119                             $resultStr = sprintf($newsTpl, $fromUsername, $toUsername, $time, $msgType,$counts,$contentStr);
120                             echo $resultStr;
121                         }
122                         if($keyword == ‘多图文‘){
123                             $msgType=‘news‘;
124                             $counts=4;
125                             $contentStr=‘‘;
126                             for($i=1;$i<=4;$i++){
127                                 $contentStr.="<item>
128                                 <Title><![CDATA[大家一起学习微信开发]]></Title>
129                                 <Description><![CDATA[愿每天的你都是开心的!]]></Description>
130                                 <PicUrl><![CDATA[http://ibeliveone.applinzi.com/{$i}.jpg]]></PicUrl>
131                                 <Url><![CDATA[http://ibeliveone.applinzi.com/{$i}.jpg]]></Url>
132                                 </item>";
133                             }
134                             //格式化字符串
135                             $resultStr = sprintf($newsTpl, $fromUsername, $toUsername, $time, $msgType,$counts,$contentStr);
136                             echo $resultStr;
137                         }
138
139                         //定义发送消息的类型
140                         $msgType = "text";
141                         //公众平台发送给用户的信息
142                         $contentStr = "欢迎关注我的微信公众平台!";
143                         //格式化字符串
144                         $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
145                         echo $resultStr;die;
146
147
148                     }else{
149                         echo "Input something...";
150                     }
151                 }elseif($type == ‘image‘){
152                     //定义发送消息的类型
153                     $msgType = "text";
154                     //公众平台发送给用户的信息
155                     $contentStr = "客官,您发送的美女好漂亮啊!";
156                     //格式化字符串
157                     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
158                     echo $resultStr;
159                     die;
160                 }elseif($type == ‘voice‘){
161                     //定义发送消息的类型
162                     $msgType = "text";
163                     //公众平台发送给用户的信息
164                     $contentStr = "客官,您的声音好动听啊!";
165                     //格式化字符串
166                     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
167                     echo $resultStr;
168                     die;
169                 }elseif($type == ‘video‘){
170                     //定义发送消息的类型
171                     $msgType = "text";
172                     //公众平台发送给用户的信息
173                     $contentStr = "客官,您分享的片片不是高清滴呦!";
174                     //格式化字符串
175                     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
176                     echo $resultStr;
177                     die;
178                 }else{
179                     //定义发送消息的类型
180                     $msgType = "text";
181                     //公众平台发送给用户的信息
182                     $contentStr = "客官,我书读的少,不知道你想要什么服务,回复关键字有惊喜:‘音乐‘,‘单图文‘,‘多图文‘";
183                     //格式化字符串
184                     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
185                     echo $resultStr;
186                     die;
187                 }
188
189
190         }else {
191             echo "客官,我书读的少,不知道你想要什么服务,回复关键字有惊喜:‘音乐‘,‘单图文‘,‘多图文‘";
192             exit;
193         }
194     }
195
196     private function checkSignature()
197     {
198         // you must define TOKEN by yourself
199         if (!defined("TOKEN")) {
200             throw new Exception(‘TOKEN is not defined!‘);
201         }
202
203         $signature = $_GET["signature"];
204         $timestamp = $_GET["timestamp"];
205         $nonce = $_GET["nonce"];
206
207         $token = TOKEN;
208         $tmpArr = array($token, $timestamp, $nonce);
209         // use SORT_STRING rule
210         sort($tmpArr, SORT_STRING);
211         $tmpStr = implode( $tmpArr );
212         $tmpStr = sha1( $tmpStr );
213
214         if( $tmpStr == $signature ){
215             return true;
216         }else{
217             return false;
218         }
219     }
220 }
221
222 ?>
时间: 2024-10-15 06:45:08

微信邀请卡的开发的相关文章

Cocos2d-X游戏开发(一):搭建微信H5棋牌牛牛出租平台房卡代理开发环境

首先到Cocos2d-X下载最新版微信H5棋牌牛牛出租平台房卡代理开发环境具体联系Q1687054422,下载的是cocos2d-2.0-x-2.0.3.zip此版本对于iOS 6做了些兼容正好适合,其他版本,http://code.google.com/p/cocos2d-x/downloads/list进入文件夹命令:"cd cocos2d-1.0.1-x-0.9.2",然后"sudo ./install-templates-xcode.sh"命令开始执行安装命

微信公众号支付开发全过程 --JAVA

按照惯例,开头总得写点感想 ------------------------------------------------------------------ 业务流程 这个微信官网说的还是很详细的,还配了图.我还要再说一遍. 用户点击一个支付按钮-->{后台一大推处理}-->用户看到了一个输入密码的界面,包含金额等一些信息-->用户输入密码后出来一个支付成功的页面(这部分流程都是微信自己完成的,我们什么都不用做)-->返回系统自己的页面(总不能让用户一直看着一个支付完成的页面吧

学习历程(一)第一个微信打卡器

第一个微信打卡系统,我是利用微信的网页授权获微信的个人信息,然后后台我是用ThinkPhp3.2.3将记录插入数据库,由于我刚入门,花了3天时间完成了这个项目, 所以前端界面我还没来得及做优化. 以下我会一步一步的将我这个项目分析,这个项目具体分两个需要思考的地方,如何获取用户信息,还有后台对保存的数据如何处理. 一,数据库结构 6个字段 id自增为主键,username是存储微信昵称的,timeup是存储上班时间,timedown是存储下面时间,timesum是存储在岗位的市场 trueNam

Java游戏服务器微信房卡炸金花平台出租成长之路

Java游戏服务器成长的微信房卡炸金花平台出租QQ1279829431(h5.mostsheng.com)17061863554源码出售平台出租系列,已经很长时间没写了,不是不想写,而是这一年,基本都是在忙别的了,今天特地挤出时间,对我的2016年,做一个不留遗憾的总结. 2016的事件 不知不觉,又到了春节抢票的时候了,这两天除了盼着年终能发点奖金以外,就是盼着能买一张合适的火车票,今年是离家最久的一年,幸运的是,我成都的小房子要结房了,必须要我本人到场,这就能给我一个理由多请一周的假提前回去

微信房卡炸金花搭建之【Webpack3.x】学习笔记

微信房卡炸金花搭建之[Webpack3.x]学习笔记资源下载:http://www.aqiulian.com,更多Webpack3.x相关问题询问QQ:212303635 本文环境:Visual Studio Code.Windows10 什么是Webpack? WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Sass,TypeScript等),并将其转换和打包为合适的格式供浏览器使用.在3.0出现后,W

微信小程序的开发有什么用?有什么优势?

现如今,科技发展迅速个我们带来的便利性还是很大的.而微信小程序正是依赖科技进行发展的软件.那么微信小程序的开发究竟有什么用呢?又有哪些优势呢?小程序的定义是为商家做服务的,小程序的每个功能都在为商家获客做服务,从2017年至今,不过两年时间,小程序完成了上百次的更新升级,如今,小程序的需求越来越贴近用户.可以毫不夸张的说,小程序是当下互联网最大的流量聚集地.那么小程序究竟有哪些优势呢?1.无需安装,即开即用现如今,智能手机普及,不仅可以随时随地上网,还可以使用各种便利的软件.而微信作为当下流行的

微控工具xp模块-开发版[微信(wechat)二次开发模块]

http://repo.xposed.info/module/com.easy.wtool 微控工具xp模块-开发版[微信(wechat)二次开发模块] 基于xposed框架的微信二次开发模块,方便开发者用微信做一些扩展功能(如微信群发.多群直播等...) 目前支持功能: 发文本消息 发图片消息 发语音消息 发视频消息 获取微信好友列表 群列表 支持群发消息 支持消息转发(目前支持文本.图片.语音.视频.图文消息转发) 群管理功能(建群.加人.踢人.设置公告.改群名.退群.解散群) [注:本模块

微信公众号退款开发

博主是小菜鸟,这篇文章仅是自己开发的随笔记录,不足博友可以指出来,一起进步 1.[微信支付]公众号支付开发者文档链接地址 https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_4 调用微信退款接口,需要发送特定的xml格式字符串到到微信退款接口: 2.微信申请退款需要双向证书, JAVA只需要使用apiclient_cert.p12即可,证书从 https://pay.weixin.qq.com/index.php/core/hom

微信共享链系统开发

共享链小程序开发[微电咨询:156-2214-7456,纪经理],共享链小程序定制,共享链全返小程序,共享链全返小程序开发,共享链全返模式小程序,共享链全返系统小程序,共享链全返平台小程序,共享链是一款营销工具,解决实体店现有的营销方案难以刺激消费者.被电商的打压导致实体店的生意越来越难做.外卖成本越来越高等痛点."共享链"基于区块链技术理念而开发,以消费奖励的方式,让消费者重复消费,主动分享,持续关注.达到提升商家销量的目的. 微信共享链系统开发简单的说是我们给商家提供企业版的二维码