为了识别用户,每个用户针对每个公众号会产生一个安全的OpenID,如果需要在多公众号、移动应用之间做用户共通,则需前往微信开放平台,将这些公众号和应用绑定到一个开放平台账号下,绑定后,一个用户虽然对多个公众号和应用有多个不同的OpenID,但他对所有这些同一开放平台账号下的公众号和应用,只有一个UnionID,可以在用户管理-获取用户基本信息(UnionID机制)文档了解详情。
下边我来介绍下如何获取openid ;首先需要下载 微信公众平台SDK,下边以php获取openid 为例;先放上sdk下载链接:http://download.csdn.net/detail/jmkweb/9857783
下载完了后先建立一个php文件,例如:function.php
<?php
function getWeiXinConfig()
{
$options = array(
'token' => '', // 填写你设定的key
'encodingaeskey' => '', // 填写加密用的EncodingAESKey
'appid' => '', // 填写高级调用功能的app id
'appsecret' => '', // 填写高级调用功能的密钥 )// 商户签名密钥Key
'mchid' => '',
'key' => '');
return $options;
}
// php获取当前访问的完整url地址
function GetCurUrl()
{
$url = 'http://';
if (isset ($_SERVER ['HTTPS']) && $_SERVER ['HTTPS'] == 'on') {
$url = 'https://';
}
if ($_SERVER ['SERVER_PORT'] != '80') {
$url .= $_SERVER ['HTTP_HOST'] . ':' . $_SERVER ['SERVER_PORT'] . $_SERVER ['REQUEST_URI'];
} else {
$url .= $_SERVER ['HTTP_HOST'] . $_SERVER ['REQUEST_URI'];
}
// 兼容后面的参数组装
if (stripos($url, '?') === false) {
$url .= '?t=' . time();
}
return $url;
}
function getOpenId()
{
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger')) {
// $openid = session('openid');
if (empty ($openid)) {
include("Wechat/Wechat.class.php");
$config = getWeiXinConfig();
$weObj = new Wechat ($config);
$callback = GetCurUrl();
$callback = urldecode($callback);
$info = $weObj->getOauthAccessToken();
// $info = $weObj->getOpenid();
if (!$info) {
$url = $weObj->getOauthRedirect($callback, '', 'snsapi_base');
header("Location: $url");
exit ();
} else {
// session('openid', $info ['openid']);
return $info ['openid'];
}
} else {
return $openid;
}
} else {
return '';
}
}
然后新建index.php
<span style="font-size:14px;"><?php
include("function.php");
$id=getopenid();
print_r($id);</span>