65 lines
1.5 KiB
PHP
65 lines
1.5 KiB
PHP
<?php
|
|
/**
|
|
* Created by PhpStorm.
|
|
* User: whwyy
|
|
* Date: 2018/4/19 0019
|
|
* Time: 16:12
|
|
*/
|
|
|
|
namespace wchat\qq;
|
|
|
|
use wchat\common\Decode;
|
|
use wchat\common\HttpClient;
|
|
use wchat\common\Result;
|
|
|
|
class Account extends SmallProgram
|
|
{
|
|
/**
|
|
* @param $code
|
|
* @return Result
|
|
*/
|
|
public function login($code)
|
|
{
|
|
$param['appid'] = $this->config->getAppid();
|
|
$param['secret'] = $this->config->getAppsecret();
|
|
$param['js_code'] = $code;
|
|
$param['grant_type'] = 'authorization_code';
|
|
|
|
if (empty($code)) {
|
|
return new Result(['code' => 404, 'message' => '临时登录凭证不能为空.']);
|
|
}
|
|
|
|
$this->request->setHost('api.q.qq.com');
|
|
$this->request->setMethod(HttpClient::GET);
|
|
$this->request->setIsSSL(true);
|
|
$this->request->setUseSwoole($this->config->isUsrSwoole());
|
|
|
|
return $this->request->get('sns/jscode2session', $param);
|
|
}
|
|
|
|
/**
|
|
* @param $encryptedData
|
|
* @param $iv
|
|
* @param $sessionKey
|
|
* @param $asArray
|
|
* @return object|array
|
|
* @throws
|
|
*
|
|
* * <li>-41001: encodingAesKey 非法</li>
|
|
* <li>-41003: aes 解密失败</li>
|
|
* <li>-41004: 解密后得到的buffer非法</li>
|
|
* <li>-41005: base64加密失败</li>
|
|
* <li>-41016: base64解密失败</li>
|
|
*/
|
|
public function decode($encryptedData, $iv, $sessionKey, $asArray = false)
|
|
{
|
|
$decode = new Decode();
|
|
$decode->setAppId($this->config->getAppid());
|
|
$decode->setIv($iv);
|
|
$decode->setEncryptedData($encryptedData);
|
|
$decode->setSessionKey($sessionKey);
|
|
return $decode->decode($asArray);
|
|
}
|
|
|
|
}
|