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将fileterms函数返回的结果变成可读的形式
Apr 21 PHP
linux下使用ThinkPHP需要注意大小写导致的问题
Aug 02 PHP
php数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
Nov 07 PHP
如何解决CI框架的Disallowed Key Characters错误提示
Jul 05 PHP
php结合js实现点击超链接执行删除确认操作
Oct 31 PHP
php数组操作之键名比较与差集、交集赋值的方法
Nov 10 PHP
PHP实用函数分享之去除多余的0
Feb 06 PHP
用php守护另一个php进程的例子
Feb 13 PHP
php通过rmdir删除目录的简单用法
Mar 18 PHP
php获取微信共享收货地址的方法
Dec 21 PHP
PHP实现文件上传后台处理脚本
Mar 04 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
Mar 26 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 Http_Template_IT类库进行模板替换
2009/03/19 PHP
PHP中全局变量global和$GLOBALS[]的区别分析
2012/08/06 PHP
Codeigniter的一些优秀特性总结
2015/01/21 PHP
Javascript中 关于prototype属性实现继承的原理图
2013/04/16 Javascript
js setTimeout 常见问题小结
2013/08/13 Javascript
js中如何复制一个对象并获取其所有属性和属性对应的值
2013/10/24 Javascript
JavaScript实现数组随机排序的方法
2015/06/26 Javascript
javascript 内置对象及常见API详细介绍
2016/11/01 Javascript
微信小程序开发之toast等弹框提示使用教程
2017/06/08 Javascript
详解react、redux、react-redux之间的关系
2018/04/11 Javascript
如何理解Vue的v-model指令的使用方法
2018/07/19 Javascript
LayUI switch 开关监听 获取属性值、更改状态的方法
2019/09/21 Javascript
Vue中 axios delete请求参数操作
2020/08/25 Javascript
解决vue项目运行npm run serve报错的问题
2020/10/26 Javascript
Vue实现菜单切换功能
2020/11/08 Javascript
详解Vue的七种传值方式
2021/02/08 Vue.js
[01:00:54]TI4正赛第二日开场
2014/07/20 DOTA
[53:10]Secret vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python类的多重继承问题深入分析
2014/11/09 Python
Python变量赋值的秘密分享
2018/04/03 Python
TensorFlow入门使用 tf.train.Saver()保存模型
2018/04/24 Python
便捷提取python导入包的属性方法
2018/10/15 Python
在python中以相同顺序shuffle两个list的方法
2018/12/13 Python
python增加图像对比度的方法
2019/07/12 Python
python同时替换多个字符串方法示例
2019/09/17 Python
分享8点超级有用的Python编程建议(推荐)
2019/10/13 Python
HTML5 Canvas API中drawImage()方法的使用实例
2016/03/25 HTML / CSS
举例详解HTML5中使用JSON格式提交表单
2015/06/16 HTML / CSS
苹果美国官方商城:Apple美国
2016/08/24 全球购物
医院总经理岗位职责
2014/02/04 职场文书
数据保密承诺书
2014/06/03 职场文书
办理信用卡工作证明
2014/09/30 职场文书
2015建军节87周年演讲稿
2015/03/19 职场文书
工地食品安全责任书
2015/05/09 职场文书
先进个人主要事迹范文
2015/11/04 职场文书
六年级语文教学反思
2016/03/03 职场文书