function getWxinfo()
{
$arr['appid'] = config('socket.appid');
$arr['secret'] =config('socket.secret');
$arr['grant_type'] ='authorization_code';
$arr['js_code'] = input('param.code');
$encryptedData = input('param.encryptedData');
$iv = input('param.iv');
$url = "https://api.weixin.qq.com/sns/jscode2session?";
$url = $url . http_build_query($arr);
$http = new HttpClient();//添加账户记录
$res = $http->get($url);
$res=json_decode($res,TRUE);
// var_dump($res);
$sessionKey=$res['session_key'];
/* var_dump($pc); */
$errCode = $this->decryptData($arr['appid'], $sessionKey,$encryptedData, $iv);
if ($errCode != -41001 &&$errCode != -41002&&$errCode != -41003&&$errCode != -41004) {
return $errCode;
} else {
throw new \Exception($errCode);
}
}
/**
* 微信信息解密
* @param string $appid 小程序id
* @param string $sessionKey 小程序密钥
* @param string $encryptedData 在小程序中获取的encryptedData
* @param string $iv 在小程序中获取的iv
* @return array 解密后的数组
*/
function decryptData($appid , $sessionKey, $encryptedData, $iv){
$OK = 0;
$IllegalAesKey = -41001;
$IllegalIv = -41002;
$IllegalBuffer = -41003;
$DecodeBase64Error = -41004;
if (strlen($sessionKey) != 24) {
return $IllegalAesKey;
}
$aesKey=base64_decode($sessionKey);
if (strlen($iv) != 24) {
return $IllegalIv;
}
$aesIV=base64_decode($iv);
$aesCipher=base64_decode($encryptedData);
$result=openssl_decrypt( $aesCipher, "AES-128-CBC", $aesKey, 1, $aesIV);
$dataObj=json_decode( $result );
if( $dataObj == NULL )
{
return $IllegalBuffer;
}
if( $dataObj->watermark->appid != $appid )
{
return $DecodeBase64Error;
}
$data = json_decode($result,true);
return $data;
}