<?php
/* 快捷订餐系统之多店版
* 版本号:3.5
* 官网:http://www.kjcms.com
* 2016-06-29
*/
class cls_weixin {
static $perms;
static $config = array();
static function get_perms($key , $site_id = null) {
if( empty(self::$perms) || ($site_id !== null && $site_id != self::$perms['site_id']) ) {
self::$perms = fun_kj::get_site( $site_id );
}
$arr_return = array();
if(isset(self::$perms[$key])) $arr_return = self::$perms[$key];
return $arr_return;
}
static function get_access_token() {
if(!defined('cls_klkkdj::KJ_VERISION')) {
fun_base::url_jump("http://www.kjcms.com/api.php?app=copy&app_act=verify.none");
exit;
}
$site_id = self::get_perms('site_id');
$token = cls_cache::get('access_token' , 'weixin/' . $site_id , 3);
if(empty($token)) {
$appid = self::get_perms('appid');
$appsecret = self::get_perms('appsecret');
if(empty($appid) || empty($appsecret)) return '';
$cont = file_get_contents('https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . $appid . '&secret=' . $appsecret);
if(empty($cont)) return '';
$arr = fun_format::toarray($cont);
if(isset($arr['access_token'])) {
$token = $arr['access_token'];
cls_cache::set($token ,'access_token' , 'weixin/' . $site_id);
}
}
return $token;
}
//上传媒体文件
static function on_media_upload($path , $type , $site_id = 0) {
$arr_type = self::get_perms('mediatype');
if(!isset($arr_type[$type])) return array('code' => 500 , 'msg' => '上传类型不存在');
$real_path = fun_get::real_path($path);
$ext = strtolower(end(explode("." , $real_path)));
$exts = implode(',' , $arr_type[$type]);
if(!in_array($ext , $arr_type[$type])) return array('code' => 500 , 'msg' => '只允许上传扩展名为' . $exts . '的文件');
if(!is_file($real_path)) return array("code" => 500 , "msg" => "上传失败");
$access_token = self::get_access_token();
if(empty($access_token)) return array('code' => 500 , 'msg' => '微信权限不够');
$url = 'http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token=' . $access_token . '&type=' . $type;
$arr_return = fun_base::post($url , array() , array(basename($real_path) => $real_path) );
if($arr_return['code'] == 0) {
$arr_media = fun_format::toarray($arr_return['cont']);
if(isset($arr_media['media_id'])) {
$size = filesize($real_path);
//保存进数据库媒体表
$arr_fields = array(
'media_id' => $arr_media['media_id'],
'media_type' => $arr_media['type'] ,
'media_time' => $arr_media['created_at'],
'media_uid' => cls_obj::get('cls_user')->uid,
'media_file' => $path,
'media_size' => $size,
'media_site_id' => $site_id,
);
$arr_save = cls_obj::db_w()->on_insert(cls_config::DB_PRE."weixin_media",$arr_fields);
$arr_media['code'] = 0;
} else {
$arr_media['msg'] = (isset($arr_media['errmsg'])) ? $arr_media['errmsg'] : '';
$arr_media['code'] = 500;
}
} else {
$arr_media = $arr_return;
}
return $arr_media;
}
//下载媒体文件
static function get_media($mid) {
$access_token = self::get_access_token();
if(empty($access_token)) return '';
$cont = file_get_contents('http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=' . $access_token . '&media_id=' . $mid);
return $cont;
}
//接收消息
static function get_msg() {
$arr_return = array();
$cont = file_get_contents("php://input");
//$cont = file_get_contents(KJ_DIR_ROOT . "/test.txt");
if(empty($cont)) return $arr_return;
$request = simplexml_load_string($cont , 'SimpleXmlElement' , LIBXML_NOCDATA);
$arr_return = fun_format::toarray($request);
return $arr_return;
}
//验证
static function check_signature() {
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token = self::get_access_token();
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
return fun_get::get("echostr");
} else {
return '';
}
}
//处理消息
static function on_exe() {
$arr_msg = self::get_msg();
//$arr_msg = array('ToUserName'=>'dkd','FromUserName'=>'bbb','MsgType'=>'text','Content'=>'d');
if(empty($arr_msg['ToUserName'])) return;
self::$config['wx_id'] = $arr_msg['FromUserName'];
$arr_message = $arr_cont = array();
if($arr_msg['MsgType'] == 'text') {
$arr = explode(",",str_replace("," , "," , $arr_msg['Content']));
if(is_numeric($arr[0])) {
//是店铺用户
$obj_shop = cls_obj::db()->get_one("select shop_id from " . cls_config::DB_PRE . "meal_shop where shop_weixin_id='" . $arr_msg['FromUserName'] . "'");
if(!empty($obj_shop)) {
$oid = $arr[0];
if(count($arr)>1) {
unset($arr[0]);
$beta = implode("," , $arr);
} else {
$beta = '';
}
$state = (empty($beta)) ? 1 : -1;
$where = " order_shop_id='" . $obj_shop['shop_id'] . "' and right(order_id," . strlen($oid) . ")='" . $oid . "'";
//查看订单是否存在
$obj_order = cls_obj::db()->get_one("select order_id,order_state from " . cls_config::DB_PRE . "meal_order where" . $where);
if(empty($obj_order)) {
$arr_cont['cont'] = '订单不存在';
} else {
if($obj_order['order_state']!=0) {
$arr_cont['cont'] = '无效订单或已处理过';
} else {
$where .= " and order_state=0";
$arr_re = tab_meal_order::on_state('' , $state , $beta , $where);
$arr_cont = array();
if($arr_re['code'] == 0) {
$arr_cont['cont'] = ($state==-1) ? '取消订单成功' : '成功接收订单,请尽快配送';
} else {
$arr_cont['cont'] = '处理失败,原因:' . $arr_msg['msg'];
}
}
}
}
}
if(empty($arr_cont)) {
$msgmode = self::get_perms('msgmode');
$site_id = self::get_perms('site_id');
$shop_id = self::get_perms('shop_id');
//取自动回复消息或关键词消息
$arr_1 = tab_weixin_message::get_rekeywords($arr_msg['Content'] , $site_id);
$count = count($arr_1)-1;
if($count>0) {
$ii = rand(0,$count);
$arr_message = $arr_1[$ii];
} else if(!empty($arr_1)) {
$arr_message = $arr_1[0];
} else if(!empty($msgmode)){
//主站才搜索店铺
$arr_message = array('message_type' => 'news' , 'news' => array());
if(empty($site_id)) {
$obj_result = cls_obj::db()->select("select shop_id,shop_name,shop_desc,shop_area,shop_pic,shop_pic_small from " . cls_config::DB_PRE . "meal_shop where shop_name like '%" . $arr_msg['Content'] . "%' or shop_jian like '" . strtolower($arr_msg['Content']) . "%' limit 0,10");
while($obj_rs = cls_obj::db()->fetch_array($obj_result)) {
if(empty($obj_rs['shop_pic_small'])) $obj_rs['shop_pic_small'] = $obj_rs['shop_pic'];
if(empty($arr_message['news'])) {
if(empty($obj_rs['shop_pic'])) $obj_rs['shop_pic'] = $obj_rs['shop_pic_small'];
$pic = fun_get::html_url($obj_rs['shop_pic'] , 1);
} else {
$pic = fun_get::html_url($obj_rs['shop_pic_small'] , 1);
}
$url = cls_config::get('url') . '/index.php?app_weixin=1&app_act=shop&id=' . $obj_rs['shop_id'];
$shop_id = $obj_rs['shop_id'];
$arr_message['news'][] = array(
'title' => $obj_rs['shop_name'],
"desc" => strip_tags(fun_get::filter($item['shop_desc'],true)),
"pic" => $pic,
"url" => $url,
);
}
if(count($arr_message['news']) == 1) {
//搜索该店菜品
$obj_result = cls_obj::db()->select("select menu_title,menu_price,menu_pic,menu_pic_small,menu_intro from " . cls_config::DB_PRE . "meal_menu where menu_shop_id='" . $shop_id . "' and menu_tj=1 and menu_state>0 and menu_isdel=0 order by menu_price limit 0,4");
while($obj_rs = cls_obj::db()->fetch_array($obj_result)) {
if(empty($obj_rs['menu_pic_small'])) $obj_rs['menu_pic_s
没有合适的资源?快使用搜索试试~ 我知道了~
基于PHP的免费微信投票管理系统php版源码.zip
共1155个文件
gif:319个
php:215个
png:161个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 29 浏览量
2023-10-15
23:53:02
上传
评论
收藏 9.98MB ZIP 举报
温馨提示
基于PHP的免费微信投票管理系统php版源码.zip
资源推荐
资源详情
资源评论
收起资源包目录
基于PHP的免费微信投票管理系统php版源码.zip (1155个子文件)
ueditor.css 44KB
emoji.css 36KB
ueditor.min.css 34KB
video-js.css 21KB
image.css 19KB
video.css 15KB
attachment.css 15KB
video-js.min.css 11KB
css.css 11KB
style.css 10KB
css - 副本.css 10KB
css.css 10KB
swiper-demos.css 8KB
css.css 8KB
shCoreDefault.css 7KB
scrawl.css 4KB
idangerous.swiper.css 3KB
codemirror.css 3KB
charts.css 3KB
background.css 2KB
css.css 2KB
emotion.css 2KB
dialogbase.css 2KB
common.css 2KB
music.css 2KB
css.css 1KB
edittable.css 1KB
template.css 1KB
google.css 707B
webuploader.css 515B
help.css 395B
alert.css 386B
expand.css 386B
iframe.css 42B
vjs.eot 3KB
UEditorSnapscreen.exe 508KB
wface.gif 49KB
jxface2.gif 40KB
yface.gif 28KB
bface.gif 27KB
icons.gif 20KB
file-icons.gif 20KB
file-icons.gif 20KB
tface.gif 19KB
fface.gif 18KB
cface.gif 8KB
left-background.gif 8KB
menu.gif 7KB
bg4.gif 7KB
bg2.gif 5KB
bg3.gif 5KB
pay_alipay.gif 5KB
chinabank_logo.gif 4KB
icons-all.gif 4KB
pay_alipay2.gif 3KB
27.gif 3KB
line4.gif 3KB
tenpay_logo.gif 2KB
htm.gif 2KB
nav.gif 2KB
media.gif 2KB
line3.gif 2KB
init.gif 2KB
line1.gif 2KB
line2.gif 2KB
15.gif 2KB
bg1.gif 2KB
9.gif 2KB
1.gif 2KB
3.gif 2KB
rar.gif 2KB
dir.gif 2KB
25.gif 2KB
videologo.gif 2KB
5.gif 2KB
23.gif 1KB
26.gif 1KB
22.gif 1KB
28.gif 1KB
16.gif 1KB
24.gif 1KB
11.gif 1KB
20.gif 1KB
21.gif 1KB
4.gif 1KB
cancelbutton.gif 1KB
13.gif 1KB
10.gif 1KB
faq.gif 1KB
button-bg.gif 1KB
2.gif 1KB
bg_11.gif 1KB
tipsicon.gif 1KB
8.gif 1KB
lock.gif 1KB
12.gif 1KB
alignicon.gif 1KB
word.gif 1019B
icon_doc.gif 1012B
icon_psd.gif 1009B
共 1155 条
- 1
- 2
- 3
- 4
- 5
- 6
- 12
资源评论
易小侠
- 粉丝: 6508
- 资源: 9万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功