PHP获取微信粉丝的OpenID

需求:在一个活动中,每个人扫码关注后,可以选择一个水浒人物,绑定到自己身上,然后大屏幕滚动的时候名字要把水浒的花名带上。需求来的很急,只用能一些奇葩的方式实现。

现有的公众号是由微擎管理的,就用PHP解决了。

DB

添加了一张水浒表:

DROP TABLE IF EXISTS `ims_shuihu108`;
CREATE TABLE `ims_vnel_shuihu108` (
  `id` int(3) NOT NULL,
  `seq` varchar(16) COLLATE utf8_bin NOT NULL COMMENT '108中的排名,例:第一',
  `starname` varchar(16) COLLATE utf8_bin NOT NULL COMMENT '三十二天罡,七十二地煞,例;天魁星',
  `nickname` varchar(16) COLLATE utf8_bin NOT NULL COMMENT '花名,例:及时雨',
  `truename` varchar(16) COLLATE utf8_bin NOT NULL COMMENT '真实姓名,例:宋江',
  `description` varchar(1024) COLLATE utf8_bin NOT NULL COMMENT '性格描述',
  `img` text COLLATE utf8_bin COMMENT '头像',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

粉丝表添加2个字段

-- 存储花名
alter table ims_mc_mapping_fans add nickname2 int(3);
-- 存储真实姓名
alter table ims_mc_mapping_fans add nickname3 varchar(64);

设置

网页授权获取用户基本信息
https://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html

公众号添加一个菜单

菜单名称:花名选择
菜单动作:链接
链接地址:https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx674a526300000000&redirect_uri=http%3a%2f%2fwq.xxx.com%2fshuihu%2ftest.php&response_type=code&scope=snsapi_base&state=123#wechat_redirect

在微信中点击这个菜单后(不弹出授权页面,直接跳转,只能获取用户openid),跳转到 redirect_uri 指定的地址中。这个地址需要 urlencode,并且会在地址后面加code参数,例:http://wq.xxx.com/shuihu/test.php?code=0064f7afef7af7b395147bfeffffffff&state=123

代码

test.php

$code = $_GET['code'];
$weixin = file_get_contents("https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx674a52637be305d0&secret=db4d914c0bbee96c3cbe241b8f97c138&code=".$code."&grant_type=authorization_code");
$jsondecode = json_decode($weixin);
$array = get_object_vars($jsondecode);
$openid = $array['openid'];

echo $openid;

剩下的就没什么可记录的了,输出水浒花名列表,选择后提交表单,数据插入DB。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值