增加微信获取UnionId 功能

wechatmini
中增加获取unionid的功能,(微信要支持第三方登录才能获得unionid)
/**
* 获取openid
* @desc 根据code获取openid,unionid
* @return array
* @return int ret 状态码:200表示数据获取成功,其他错误码可参考小程序错误码说明
* @return array data 返回数据,openid获取失败时为空
* @return string code code
* @return string iv 会话密钥
* @return string encryptedData 解码内容
* @return string msg 错误提示信息:如:code been used, hints: [ req_id: OpwajA01912023 ]
*/
public function getUnionid($code, $iv, $encryptedData)
{
$ids = $this->getOpenid($code);

if (!$ids['session_key']) {
throw new BadRequestException('获取sessionKey失败', 600);
}

$sessionkey = str_replace(' ', '+', urldecode(trim($ids['session_key'])));
\PhalApi\DI()->logger->info('sessinokey:', $sessionkey);

$iv = str_replace(' ', '+', urldecode($iv));
$encryptedData= str_replace(' ', '+', urldecode($encryptedData));
$aesKey=base64_decode($sessionkey);
$aesIV=base64_decode($iv);
\PhalApi\DI()->logger->info('iv:', $iv);

$aesCipher=base64_decode($encryptedData);
\PhalApi\DI()->logger->info('encryptedData:', $encryptedData);
$jm= openssl_decrypt($aesCipher, "AES-128-CBC", $aesKey, 1, $aesIV);
$jsondecode=json_decode($jm, true);

\PhalApi\DI()->logger->info('rs', $jsondecode);

if ($jsondecode['openId']) {
return $jsondecode;
} else {
//openid获取失败
throw new BadRequestException($jsondecode['errmsg'], $jsondecode['errcode'] - 400);
}
}
已邀请:

dogstar - PhalApi创始人

赞同来自:

感谢提供,此微信扩展由其他作者提供,可以反馈到:https://github.com/JamesLiuquan/wechatmini

dogstar - PhalApi创始人

赞同来自:

已反馈到:https://github.com/JamesLiuqua ... ues/1
 
你也可以提交PR

要回复问题请先登录注册