微擎获取openid_微擎中使用微信之门接口,让订阅号也能直接以网页的方式获取OpenID...

开发微擎模块的时候 常会遇到一个问题:

只有服务号才能直接在网页上获取OpenID,

如果是订阅号就只能从对话消息中获取OpenID然后传到网页,

虽然微擎有个功能叫做“借用oAuth权限”,

但是有时候连借都没地方借,怎么办呢?

还好这是个互联网时代,有需求,就会有服务。

“微信之门”就是为此而生的,转发一下他们的简介:

微信打开的网页,是无法持久存贮 cookies 的,你知道吗? 那么如何辨识唯一用户呢?

是的,使用微信服务号!服务号拥有高级接口,可以给让网站通过微信的OAuth2授权, 获得用户的 OpenID, 从而辨别一个唯一用户。

那么,没有微信服务号呢? 这就是微信之门诞生的原因。

其它使用说明可以到微信之门官网查看。

我要写的是怎么在微擎模块中使用微信之门的接口,

在你的xxxModuleSite类(也就是addons/xxx/site.php文件)添加一个构造函数 代码如下:

function __construct()

{

global $_W, $_GPC;

if (empty($_W['openid'])) {

if (empty($_SESSION['openid'])) {

if ($_GPC['wgateid']) {

$_W['openid'] = $_SESSION['openid'] = $_GPC['wgateid'];

} else {

$thisUrl = urlencode('http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);

$gateUrl = "http://www.weixingate.com/gate.php?back=$thisUrl&force=1&info=none";

header('Location: ' . $gateUrl);

exit;

}

} else {

$_W['openid'] = $_SESSION['openid'];

}

}

}

好吧,代码一出 说什么都显得多余,

这逻辑简单到小朋友都看得懂,就不多做解释了,

事实上还可以调用一下验证接口,检查一下传回来的的wgateid,如何有需要的话……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值