近期又开始弄前端了,又回到了thinkphp5的项目,获取公众号的openid用的公司的统一接口,很方便,但是他们返回的接口又回调了,以为可以直接获取到返回数据结果并不可以,这里就只能把想要的数据存在Cookie里面或者session里面然后再提供个接口前端获取cookie里面的信息,真的是麻烦,回调的接口再直接回调到想要的界面即可。
简单弄个流程
/**
* 获取公众号openid
*/
public function officialAccountOpenid()
{
$urls = "*****"; // 公众号openid回调域名并存入openid到cookie 回调接口
$urls = urlencode($urls);
$url = "***; // 公司公共获取openid接口
header('location:' . $url); // 重定向到公司的公共接口
}
/**
* 公众号openid回调域名并存入openid到cookie
*/
public function officialAccountOpenidData()
{
$getopenid = input('openid');
$openid = sm4De($getopenid );
if(empty($openid)) {
$openid = sm4De(urldecode($getopenid ));
}
if(empty($openid)) {
$this->result('', 0, '获取身份信息错误');
}
//openid 存cookie
setcookie("data_p_openid", sm4En($openid), time() + 60 * 30, "/");
// 重定向到H5首页
$this->redirect('../index/index'); // 这里是重点,重定向到指定路劲即可
}
/**
* 获取Cookie里面公众号openid
*/
public function officialAccountCookieOpenid()
{
if (isset($_COOKIE['data_p_openid'])) {
$p_openid = $_COOKIE['data_p_openid'];
$this->result(['p_openid' => $p_openid], 200, '获取成功');
}else{
$this->result([], 0, '获取失败');
}
}
officialAccountCookieOpenid 接口就是前端获取一下是否获取到接口,没有的话前端直接 windows.location.href='/officialAccountOpenid' 接口就可以了,他重定向的另一个接口会重定向指定的路径。
推荐