SDK de inicio de sesión de WeChat OAuth
Agregue la siguiente configuración a su archivo composer.json
"henter/wechat-oauth" : " dev-master "
Luego use Composer para instalar el SDK
composer install
Si Packagist falla o no está disponible y el SDK no se puede instalar, puede usar Satis o Artifact para instalarlo localmente. Para obtener más información, consulte Repositorios en la documentación de Composer.
Copie lib/Henter/WeChat
al directorio del proyecto y luego require "/path/to/sdk/OAuth.php"
Si usa Composer para instalar, puede usar el siguiente código para cargar automáticamente
require ' vendor/autoload.php ' ;
El SDK se encuentra en el espacio de nombres global.
use Henter WeChat OAuth
Crear una instancia OAuth
para completar la inicialización
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret );
$appid
y $secret
son la identificación única y la clave secreta AppSecret de la aplicación de plataforma abierta WeChat
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret );
$ callback_url = ' http://your_site.com/your_callback_url ' ;
$ url = $ oauth -> getAuthorizeURL ( $ callback_url );
Redirigir a $url
Después de que el usuario permita la autorización, redirigirá a $callback_url
con code
y parámetros state
(el código de muestra no pasa state
).
La dirección de autorización predeterminada es saltar a la página del código QR de escaneo de WeChat (aplicable a PC). Este método no es adecuado si el usuario accede a la página web dentro de WeChat y hace clic en iniciar sesión en WeChat. Debe utilizar el siguiente método para obtener la dirección autorizada para su uso en WeChat:
$ url = $ oauth -> getWeChatAuthorizeURL ( $ callback_url );
Nota: Esto no se menciona en la documentación de la plataforma abierta WeChat (solo se menciona en la documentación de la plataforma de la cuenta oficial), pero la prueba encontró que también es aplicable a aplicaciones de plataforma abierta.
access_token
a través del 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 ();
}
Si la adquisición es exitosa, estos cuatro valores deben guardarse para llamadas de interfaz posteriores; de lo contrario, la información de error se obtiene a través de $oauth->error()
access_token
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret , $ access_token );
o
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret );
$ oauth -> setAccessToken ( $ access_token );
Para llamar a la información del usuario, se debe pasar openid
$ userinfo = $ oauth -> api ( ' sns/userinfo ' , array ( ' openid ' => $ openid ));
Entre ellos, sns/userinfo
es el tipo de API. Para obtener más información, consulte el documento de la API de WeChat.
access_token
mediante refresh_token
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret );
//以下两种方式一样
$ access_token = $ oauth -> getAccessToken ( ' token ' , $ refresh_token );
或
$ access_token = $ oauth -> refreshAccessToken ( $ refresh_token );
En este momento, puede obtener el nuevo refresh_token
a través de $oauth->getRefreshToken()
Este SDK no tiene ninguna parte que genere excepciones. Si se devuelve false
al llamar a métodos como $oauth->getAccessToken()
o $oauth->api()
, significa falla. La información de error se obtiene a través de $oauth->error()
, por lo que no es necesario utilizar try {} catch {}
para manejar los errores
La licencia MIT (MIT) Copyright (c) 2014 Henter <[email protected]>
Por el presente se otorga permiso, sin cargo, a cualquier persona que obtenga una copia de este software y los archivos de documentación asociados (el 'Software'), para operar con el Software sin restricciones, incluidos, entre otros, los derechos de uso, copia, modificación, fusión. , publicar, distribuir, sublicenciar y/o vender copias del Software, y permitir que las personas a quienes se les proporciona el Software lo hagan, sujeto a las siguientes condiciones:
El aviso de derechos de autor anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.
EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO, ENTRE OTRAS, LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN, EN NINGÚN CASO LOS AUTORES O TITULARES DE LOS DERECHOS DE AUTOR SERÁN RESPONSABLES DE NINGÚN TIPO. RECLAMACIÓN, DAÑOS U OTROS RESPONSABILIDAD, YA SEA EN UNA ACCIÓN CONTRACTUAL, AGRAVIO O DE OTRA MANERA, QUE SURJA DE, FUERA DE O EN RELACIÓN CON EL SOFTWARE O EL USO U OTRAS NEGOCIOS EN EL SOFTWARE.