SDK de login do WeChat OAuth
Adicione a seguinte configuração ao seu arquivo composer.json
"henter/wechat-oauth" : " dev-master "
Em seguida, use o Composer para instalar o SDK
composer install
Se o Packagist falhar ou estiver indisponível e o SDK não puder ser instalado, você poderá usar Satis ou Artifact para instalá-lo localmente. Para obter detalhes, consulte Repositórios na documentação do Composer.
Copie lib/Henter/WeChat
para o diretório do projeto e, em seguida, require "/path/to/sdk/OAuth.php"
Se você usar o Composer para instalar, poderá usar o código a seguir para carregar automaticamente
require ' vendor/autoload.php ' ;
O SDK está localizado no namespace global.
use Henter WeChat OAuth
Instancie OAuth
para concluir a inicialização
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret );
$appid
e $secret
são a identificação exclusiva e a chave secreta AppSecret do aplicativo de plataforma aberta WeChat
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret );
$ callback_url = ' http://your_site.com/your_callback_url ' ;
$ url = $ oauth -> getAuthorizeURL ( $ callback_url );
Redirecionar para $url
. Após o usuário permitir a autorização, ele redirecionará para $callback_url
com parâmetros code
e state
(o código de exemplo não passa no parâmetro state
)
O endereço de autorização padrão é ir para a página de leitura do código QR do WeChat (aplicável ao PC). Este método não é adequado se o usuário acessar a página da web no WeChat e clicar em login do WeChat. Você precisa usar o seguinte método para obter o endereço autorizado para uso no WeChat:
$ url = $ oauth -> getWeChatAuthorizeURL ( $ callback_url );
Observação: isso não é mencionado na documentação da plataforma aberta WeChat (é mencionado apenas na documentação oficial da plataforma de conta), mas o teste descobriu que também é aplicável a aplicativos de plataforma aberta.
access_token
através do parâmetro code
//获取code参数
$ code = $ _GET [ ' code ' ];
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret );
if ( $ access_token = $ oauth -> getAccessToken ( ' code ' , $ code )){
$ refresh_token = $ oauth -> getRefreshToken ();
$ expires_in = $ oauth -> getExpiresIn ();
$ openid = $ oauth -> getOpenid ();
} else {
echo $ oauth -> error ();
}
Se a aquisição for bem-sucedida, esses 4 valores precisam ser salvos para chamadas de interface subsequentes, caso contrário, as informações de erro serão obtidas através de $oauth->error()
access_token
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret , $ access_token );
ou
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret );
$ oauth -> setAccessToken ( $ access_token );
Para chamar informações do usuário, openid
precisa ser passado
$ userinfo = $ oauth -> api ( ' sns/userinfo ' , array ( ' openid ' => $ openid ));
Entre eles, sns/userinfo
é o tipo de API. Para obter detalhes, consulte o documento da API do WeChat.
access_token
via refresh_token
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret );
//以下两种方式一样
$ access_token = $ oauth -> getAccessToken ( ' token ' , $ refresh_token );
或
$ access_token = $ oauth -> refreshAccessToken ( $ refresh_token );
Neste momento, você pode obter o novo refresh_token
através de $oauth->getRefreshToken()
Este SDK não possui nenhuma parte de lançamento de exceção. Se false
for retornado ao chamar métodos como $oauth->getAccessToken()
ou $oauth->api()
, significa falha. As informações de erro são obtidas por meio de $oauth->error()
, então não há necessidade de usar try {} catch {}
para lidar com erros
A Licença MIT (MIT) Copyright (c) 2014 Henter <[email protected]>
É concedida permissão, gratuitamente, a qualquer pessoa que obtenha uma cópia deste software e dos arquivos de documentação associados (o 'Software'), para negociar o Software sem restrições, incluindo, sem limitação, os direitos de usar, copiar, modificar, mesclar , publicar, distribuir, sublicenciar e/ou vender cópias do Software e permitir que as pessoas a quem o Software seja fornecido o façam, sujeito às seguintes condições:
O aviso de direitos autorais acima e este aviso de permissão serão incluídos em todas as cópias ou partes substanciais do Software.
O SOFTWARE É FORNECIDO 'COMO ESTÁ', SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO ÀS GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM DETERMINADO FIM E NÃO VIOLAÇÃO EM NENHUM CASO OS AUTORES OU DETENTORES DE DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUALQUER HIPÓTESE. RECLAMAÇÃO, DANOS OU OUTROS RESPONSABILIDADE, SEJA EM UMA AÇÃO DE CONTRATO, ATO ILÍCITO OU DE OUTRA FORMA, DECORRENTE DE, OU EM CONEXÃO COM O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO SOFTWARE.