PHP微信刮刮卡 附微信接口


Posted in PHP onJuly 22, 2016

无论大转盘也好,或者是刮刮卡都是抽奖都可以利用同样的方法来计算中奖的概率和控制奖池的数量,本文为大家分享了PHP微信刮刮卡实例代码,PHP微信刮刮卡+接口,可直接调用,自带微信接口,供大家学习。

效果图:

PHP微信刮刮卡 附微信接口

prize.php

<?php
$rand = rand(1,100);
if($rand<10){
 $prize = '苹果1个';
}else if($rand<30){
 $prize = '苹果2个';
}else if($rand<60){
 $prize = '苹果3个';
}else{
 $prize = '谢谢参与';
}

?>

<!DOCTYPE html>
<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <meta name="viewport" content="width=device-width,height=device-height,inital-scale=1.0,maximum-scale=1.0,user-scalable=no;">
 <meta name="apple-mobile-web-app-capable" content="yes">
 <meta name="apple-mobile-web-app-status-bar-style" content="black">
 <meta name="format-detection" content="telephone=no">
 <title>刮刮卡</title>
 <link href="index/activity-style.css" rel="stylesheet" type="text/css">
 </head>
 
 </head>
 <body data-role="page" class="activity-scratch-card-winning">
 <script src="index/jquery.js" type="text/javascript"></script>
 <script src="index/wScratchPad.js" type="text/javascript"></script>
 <div class="main">
 <div class="cover">
 <img src="index/activity-scratch-card-bannerbg.png"> 
 <div id="prize"><?php echo $prize;?></div>
  <div id="scratchpad"></div>  
 </div>
 
 <div class="boxcontent boxwhite">
 <div class="box">
 <div class="title-brown">
 <span>
 奖项设置:
 </span>
 </div>
 <div class="Detail">
 <p>
 一等奖: iphone 5S 奖品数量:60
 </p>
 <p>
 二等奖: ipad mini2 奖品数量:100
 </p>
 <p>
 三等奖: 金士顿16G手机卡 奖品数量:2000
 </p>
 </div>
 </div>
 </div>
 
 <div class="boxcontent boxwhite">
 <div class="box">
 <div class="title-brown">
 活动说明:
 </div>
 <div class="Detail">
 <p class="red">
 中奖用户请准确将收货地址发送给我,我们将以货到付款的方式邮寄给你!
 </p>
 <p>
 亲,祝您好运哦!<a href="http://2311156115.44c.pw/prize.php">再来一次</a>
 </p>
 </div>
 </div>
 </div>
 </div>
 <div style="clear:both;">
 </div>
 </div>
 
 <script type="text/javascript">
 window.sncode = "null";
 $(function() {
 $("#scratchpad").wScratchPad({
 width: 150,
 height: 40,
 color: "#a9a9a7",
 
 });
 });
 </script>
 
 </body>

</html>

sxxybbs_wx.php

<?php
/**
 * wechat php test
 */

//define your token
define("TOKEN", "wwwsxxybbscom");
$wechatObj = new wechatCallbackapiTest();
//$wechatObj->valid();
$wechatObj->responseMsg();
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)){
  
  $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
 $fromUsername = $postObj->FromUserName;
  $toUsername = $postObj->ToUserName;
 $time = time();
 
 if($postObj->Content == '1'){
 $textTpl = "<xml>
 <ToUserName><![CDATA[%s]]></ToUserName>
 <FromUserName><![CDATA[%s]]></FromUserName>
 <CreateTime>%s</CreateTime>
 <MsgType><![CDATA[%s]]></MsgType>
 <Content><![CDATA[%s]]></Content>
 <FuncFlag>0</FuncFlag>
 </xml>"; 
 $msgType = 'text';
 $contentStr = "你输入了:1";
 $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
   echo $resultStr;
 
 }else if($postObj->Content == '抽奖'){
 $newsTpl ="<xml>
  <ToUserName><![CDATA[%s]]></ToUserName>
  <FromUserName><![CDATA[%s]]></FromUserName>
  <CreateTime>%s</CreateTime>
  <MsgType><![CDATA[news]]></MsgType>
  <ArticleCount>1</ArticleCount>
  <Articles>
  <item>
  <Title><![CDATA[刮刮乐翻天]]></Title> 
  <Description><![CDATA[我就要去刮刮乐,抽奖去!]]></Description>
  <PicUrl><![CDATA[http://special.sxcq.cn/cj/weixin/ggk/ggk.jpg]]></PicUrl>
  <Url><![CDATA[%s]]></Url>
  </item>
  </Articles>
  <FuncFlag>0</FuncFlag>
  </xml>";
  
 $url="http://2311156115.44c.pw/prize.php";
   $resultStr = sprintf($newsTpl, $fromUsername, $toUsername, $time,$url);
   echo $resultStr;
 
 }else{
  $keyword = trim($postObj->Content);
  $textTpl = "<xml>
 <ToUserName><![CDATA[%s]]></ToUserName>
 <FromUserName><![CDATA[%s]]></FromUserName>
 <CreateTime>%s</CreateTime>
 <MsgType><![CDATA[%s]]></MsgType>
 <Content><![CDATA[%s]]></Content>
 <FuncFlag>0</FuncFlag>
 </xml>";  
 if(!empty( $keyword ))
  {
  $msgType = "text";
   $contentStr = "请输入:'1‘或者‘抽奖'";
   $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
   echo $resultStr;
  }else{
   $msgType = "text";
   $contentStr = "谢谢你关注sxxybbs博客,后续有精彩的内容会第一时间发送给您!回复:'1‘或者‘抽奖'得到对应的服务";
   $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
   echo $resultStr;
  }
 }

 }else {
  echo "";
  exit;
 }
 }
 
 private function checkSignature()
 {
 $signature = $_GET["signature"];
 $timestamp = $_GET["timestamp"];
 $nonce = $_GET["nonce"]; 
  
 $token = TOKEN;
 $tmpArr = array($token, $timestamp, $nonce);
 sort($tmpArr);
 $tmpStr = implode( $tmpArr );
 $tmpStr = sha1( $tmpStr );
 
 if( $tmpStr == $signature ){
 return true;
 }else{
 return false;
 }
 }
}

?>

源码下载:刮刮卡

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP如何编写易读的代码
Jul 10 PHP
第六章 php目录与文件操作
Dec 30 PHP
PHP合并两个数组的两种方式的异同
Sep 14 PHP
php中explode与split的区别介绍
Oct 03 PHP
Yii入门教程之目录结构、入口文件及路由设置
Nov 25 PHP
php中debug_backtrace、debug_print_backtrace和匿名函数用法实例
Dec 01 PHP
百度地图经纬度转换到腾讯地图/Google 对应的经纬度
Aug 28 PHP
php+ajax 实现输入读取数据库显示匹配信息
Oct 08 PHP
PHP 闭包详解及实例代码
Sep 28 PHP
PHP检查网站是否宕机的方法示例
Jul 24 PHP
浅谈PHP中如何实现Hook机制
Nov 14 PHP
Yii 框架使用数据库(databases)的方法示例
May 19 PHP
php判断用户是否关注微信公众号
Jul 22 #PHP
微信支付扫码支付php版
Jul 22 #PHP
php如何执行非缓冲查询API
Jul 22 #PHP
PHP面试常用算法(推荐)
Jul 22 #PHP
微信红包随机生成算法php版
Jul 21 #PHP
php集成动态口令认证
Jul 21 #PHP
Thinkphp3.2.3整合phpqrcode生成带logo的二维码
Jul 21 #PHP
You might like
PHP安全配置
2006/10/09 PHP
laravel admin实现分类树/模型树的示例代码
2020/06/10 PHP
匹配任意字符的正则表达式写法
2010/04/29 Javascript
html中使用javascript调用本地程序(exe、doc等)实现代码
2013/04/26 Javascript
简单的两种Extjs formpanel加载数据的方式
2013/11/09 Javascript
JS将光标聚焦在文本最后的实现代码
2014/03/28 Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
2016/05/05 Javascript
js获取Html元素的实际宽度高度的方法
2016/05/19 Javascript
jQuery 3.0十大新特性
2016/07/06 Javascript
使用JavaScript为一张图片设置备选路径的方法
2017/01/04 Javascript
JS日程管理插件FullCalendar简单实例
2017/02/07 Javascript
简单实现bootstrap导航效果
2017/02/07 Javascript
mui开发中获取单选按钮、复选框的值(实例讲解)
2017/07/24 Javascript
JavaScript字符串转数字的5种方法及遇到的坑
2018/07/16 Javascript
详解基于原生JS验证表单组件xy-form
2019/08/20 Javascript
解决layui 表单元素radio不显示渲染的问题
2019/09/04 Javascript
Layui选项卡制作历史浏览记录的方法
2019/09/28 Javascript
Vue路由对象属性 .meta $route.matched详解
2019/11/04 Javascript
如何修改Vue打包后文件的接口地址配置的方法
2020/04/22 Javascript
VUE中V-IF条件判断改变元素的样式操作
2020/08/09 Javascript
vue3.0+vue-router+element-plus初实践
2020/12/02 Vue.js
[02:14]完美“圣”典2016风云人物:xiao8专访
2016/12/01 DOTA
python dict remove数组删除(del,pop)
2013/03/24 Python
在Python中测试访问同一数据的竞争条件的方法
2015/04/23 Python
python抓取百度首页的方法
2015/05/19 Python
浅谈Python对内存的使用(深浅拷贝)
2018/01/17 Python
pandas数据清洗,排序,索引设置,数据选取方法
2018/05/18 Python
Python3爬虫关于识别检验滑动验证码的实例
2020/07/30 Python
python判断一个变量是否已经设置的方法
2020/08/13 Python
芬兰汽车配件商店:Autonvaraosat24
2017/01/30 全球购物
医学检验专业个人求职信范文
2013/12/04 职场文书
《在家里》教后反思
2014/03/01 职场文书
优秀管理者事迹材料
2014/05/22 职场文书
篮球比赛口号
2014/06/10 职场文书
司法工作人员群众路线对照检查材料思想汇报
2014/09/30 职场文书
主持人开幕词
2015/01/29 职场文书