在微信公众号中我们会进行投票,那么投票我们该如何实现此功能呢?实现投票需要访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。

目录

1 第一步:用户同意授权,获取code

2 第二步:通过code换取网页授权access_token

3 第三步:刷新access_token(如果需要)

4 第四步:拉取用户信息(需scope为 snsapi_userinfo)

5 附:检验授权凭证(access_token)是否有效

我们通过此地址进行访问

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%2Fnba.bluewebgame.com%2Foauth_response.php&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect

以下是详细代码

public function index(){$appid="这里是个人APPID";$redirect_uri=urlencode('http://www.qidoudouzts.top/vote/index.php/home/index/getcode');$url="https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect";header("Location:".$url);}function getcode(){$code=$_GET['code'];$json=$this->access_token($code);// echo $json;$arr=json_decode($json,true);$arr=array_change_key_case($arr,CASE_LOWER);if (isset($arr['access_token']) && isset($arr['openid'])) {$this->userinfo($arr['access_token'],$arr['openid']);//保存回话session('openid',$arr['openid']);//跳转$this->redirect('Vote/index');//这里要跳到投票界面,来进行投票}else{echo "获取出错".$json;}}

(投票)voteController控制器

 function index(){$data= M('group')->select();//从表中取出被投票成员$this->assign('data',$data);$this->display();}public function save_vote($groupid){$openid=session('openid');$where['openid']=session('openid');// $openid="oOPIO1Z3kCGUQ-yQJnMFsk08qfqw";// $where['openid']=$openid;$where['groupid']=$groupid;$ret=$this->buildwhere(3,$openid,$groupid);$data=M('tou')->where($where)->find();if (empty($data)) {M('tou')->add(array('openid'=>$openid,'groupid'=>$groupid,'vote_time'=>time()));$this->ajaxReturn(array('errcode'=>0,'msg'=>"投票成功"));}else{$this->ajaxReturn(array('errcode'=>1,'msg'=>$ret['rule']));}}

前台代码

<!DOCTYPE html>
<html><head><title>jQuery WeUI</title><meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"><meta name="description" content="Write an awesome description for your new site here. You can edit this line in _config.yml. It will appear in your document head meta (for Google search results) and in your feed.xml site description.
"><link rel="stylesheet" href="__PUBLIC__/lib/weui.min.css">
<link rel="stylesheet" href="__PUBLIC__/css/jquery-weui.css">
<link rel="stylesheet" href="__PUBLIC__/demos/css/demos.css"></head><body ontouchstart><div class="header">投票界面</div><div class="weui-search-bar" id="searchBar"><form class="weui-search-bar__form" action="#"><div class="weui-search-bar__box"><i class="weui-icon-search"></i><input type="search" class="weui-search-bar__input" id="searchInput" placeholder="搜索" required=""><a href="javascript:" class="weui-icon-clear" id="searchClear"></a></div><label class="weui-search-bar__label" id="searchText" style="transform-origin: 0px 0px 0px; opacity: 1; transform: scale(1, 1);"><i class="weui-icon-search"></i><span>搜索</span></label></form><a href="javascript:" class="weui-search-bar__cancel-btn" id="searchCancel">取消</a></div><volist name="data" id="row"><div class="weui-panel__bd"><a href="javascript:void(0);" class="weui-media-box weui-media-box_appmsg"><div class="weui-media-box__hd"><img class="weui-media-box__thumb" src="__PUBLIC__/demos/images/avatar.jpg  " alt=""></div><div class="weui-media-box__bd"><h4 class="weui-media-box__title">选手编号{$row.groupid}</h4><h4 class="weui-media-box__title">选手组号{$row.groupname}</h4><p class="weui-media-box__desc"><!-- <a href="javascript:;" class="weui-btn weui-btn_primary">投我</a> --><input type="button" οnclick="vote('{$row.groupid}')"  value="投我"> </p></div></a> </volist></div><script src="__PUBLIC__/lib/jquery-2.1.4.js"></script>
<script src="__PUBLIC__/lib/fastclick.js"></script>
<script>
function vote(groupid){$.post("{:U('save_vote')}", {groupid: groupid}, function(data ) {if (data.errcode=='0') {alert("投票成功",'success');}else{alert(data.msg);}},'json');}</script>
<script src="__PUBLIC__/js/jquery-weui.js"></script></body>
</html>

微信公众号第三方平台投票相关推荐

  1. 公众平台模板消息所在行业_如何使用微信公众号第三方平台群发模板消息助手?...

    对于微信公众号群发模板消息助手的实现,公众号后台提供了接口编程实现,微号帮平台提供了模板消息群发功能实现,均可以让微信公众号群发模板消息,模板消息即按固定格式的文本模块消息,没有图文形式,纯固定格式的 ...

  2. 微赞config.修改php,微信公众号第三方平台 微赞WZ_V100.0版20170612整合包 整合人人商城V2新版+一键升级...

    php+mysql php版本5.3或者以上,OPENSSL必需开启,这是本程序与微信公众号通讯的需求. 我们建议您用云主机!Windows或者Linux皆可,windows主机不推荐用IIS环境,可 ...

  3. 微信公众号第三方平台开发PYTHON教程 PART 2

    github地址:cppfun@wechat-open-third-party-dev 微信公众号第三方平台开发python教程 Part 1 这一节肯定是在第一节的基础上,如果你没有看过第一节,可能 ...

  4. mysql 推送微信公众号_10分钟完成微信公众号第三方平台全网发布

    背景:在微信公众平台配置服务器URL时,使用了新浪云SAE自带的二级域名,提交时出现一个安全风险的警告,网上查了下,许多服务平台和团队也遇到同样的问题. 经过一番研究 - 为什么会有安全风险的警告? ...

  5. 微信公众号第三方平台开发PYTHON教程 PART 1

    微信是一个时代的标志,虽然它现在不温不火,但我们大部分人离不开它.最近我帮朋友的公司接入了微信公众号第三方,使其成为第三方开发者. 网上公众号的开发教程,描述很多,但第三方的就几乎没有,可能是商业部分 ...

  6. 微信公众号第三方开发之一创建微信公众号第三方平台

    首先声明,在接下来一系列公众号第三方开发教程中,核心原理是参照下面博主的源码: http://www.cnblogs.com/sujingnan/p/4397203.html 拓展业务需求的. 为什么 ...

  7. 微信公众号官网平台与微信公众号第三方平台的区别

    微信公众号官网平台 普通的微信公众账号只能开启编辑模式,编辑模式缺点: 1)功能有限,无法开发API丶地理位置回复等信息: 2) 文字回复有300字限制,关键字回复上限为200条; 3)关键字回复较多 ...

  8. 微赞config.修改php,微赞WZ_V97.0版20170418整合包 集成人人商城V2 等400余功能模块 微信公众号第三方平台...

    安装环境:php+mysql php版本5.3或以上,OPENSSL必须开启,这是本程序与微信公众号通讯的需求.我们建议您使用云主机!Windows或Linux皆可,windows主机不推荐使用IIS ...

  9. 微信公众号第三方平台开发笔记--02获取component_verify_ticket

    第三方平台审核通过后,微信服务器会每10分钟向创建第三方平台时填写的授权事件接收URL推送一次component_verify_ticket, 用于获取第三方平台接口调用凭据. /** * 接收微信服 ...

最新文章

  1. command not found: shopt 的 ~/.bashrc
  2. MATLAB中的ind2vec和vec2ind函数
  3. 建立低成本的安全运营中心
  4. python 爬虫框架_Python网络爬虫-scrapy框架的使用
  5. 从零开始,带你玩转一站式实时数仓Hologres
  6. [LeetCode] Convert Sorted Array to Binary Search Tree
  7. 运行mvc项目报错 %@ Application Codebehind=Global.asax.cs Inherits=NHAPPAPI.MvcApplication Language=C...
  8. 在运行hadoopdb\hive\hadoop源码时不能正确调用自定义core-site.xml等配置文件
  9. JAVA语法基础作业——动手动脑以及课后实验性问题(一)
  10. 北大AI第八讲 李航 自然语言处理的现实与挑战
  11. 字节跳动杯2018中国大学生程序设计竞赛-女生专场题解
  12. 【渝粤教育】国家开放大学2018年秋季 8660-22T (1)农科化学基础知识 参考试题
  13. memset()函数及其作用
  14. 《数字电子技术基础》5.3/4/5 电平/脉冲/边沿触发的触发器
  15. 塞班3的java键盘_【图片】Symbian3系统简介【塞班3吧】_百度贴吧
  16. C# 判断圆与矩形的冲突
  17. 【Delphi Stringgrid 设置表格文字居中后有重影,去除重影方法】
  18. 浏览器及app消息推送
  19. 在Windows上使用Ubuntu共享的打印机
  20. 讨论OOV(新词,也叫未登录词,词典之外的词语)问题的解决方案

热门文章

  1. SpringBoot练手小案例-社区管理系统
  2. python列表的基本操作-python列表的用法
  3. Arduino uno 折腾笔记-uno 变 键盘
  4. 生命不息,折腾不止 ~ 旧PC改造之家庭影音
  5. LPDDR4硬件详解
  6. 计算机的移动硬盘,学会九招不再犯愁!移动硬盘使用中心得体会
  7. STM32软件仿真卡住
  8. 转 ext文件系统及块组
  9. 深搜和广搜的原理及优缺点
  10. 屌丝还是文艺范儿:小米2 VS MX2