PHP微信刮刮卡 附微信接口

6年以前  |  阅读数:334 次  |  编程语言: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分页显示制作详细讲解
SSH 登录失败:Host key verification failed
发送邮件
将二进制数据转为16进制以便显示
获取IMSI
双位运算符
文件下载
年的日历图
贪吃蛇
提取后缀名
获取IMEI
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
让你成为最历害的git提交人
在Zeus Web Server中安装PHP语言支持
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
php封装的page分页类完整实例
Python 2与Python 3版本和编码的对比