SDK de connexion WeChat OAuth
Ajoutez la configuration suivante à votre fichier composer.json
"henter/wechat-oauth" : " dev-master "
Utilisez ensuite Composer pour installer le SDK
composer install
Si Packagist échoue ou n'est pas disponible et que le SDK ne peut pas être installé, vous pouvez utiliser Satis ou Artifact pour l'installer localement. Pour plus de détails, consultez Dépôts dans la documentation de Composer.
Copiez lib/Henter/WeChat
dans le répertoire du projet, puis require "/path/to/sdk/OAuth.php"
Si vous utilisez Composer pour installer, vous pouvez utiliser le code suivant pour charger automatiquement
require ' vendor/autoload.php ' ;
Le SDK se trouve sous l'espace de noms global.
use Henter WeChat OAuth
Instanciez OAuth
pour terminer l'initialisation
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret );
$appid
et $secret
sont l'identification unique et la clé secrète AppSecret de l'application de plateforme ouverte WeChat
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret );
$ callback_url = ' http://your_site.com/your_callback_url ' ;
$ url = $ oauth -> getAuthorizeURL ( $ callback_url );
Redirection vers $url
. Une fois que l'utilisateur a autorisé l'autorisation, il sera redirigé vers $callback_url
avec les paramètres code
et state
(l'exemple de code ne passe pas dans state
).
L'adresse d'autorisation par défaut consiste à accéder à la page du code QR de numérisation WeChat (applicable au PC). Cette méthode ne convient pas si l'utilisateur accède à la page Web dans WeChat et clique sur la connexion WeChat. Vous devez utiliser la méthode suivante pour obtenir l'adresse autorisée à utiliser dans WeChat :
$ url = $ oauth -> getWeChatAuthorizeURL ( $ callback_url );
Remarque : ceci n'est pas mentionné dans la documentation de la plateforme ouverte WeChat (cela n'est mentionné que dans la documentation de la plateforme du compte officiel), mais le test a révélé qu'il est également applicable aux applications de la plateforme ouverte.
access_token
via le paramètre 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 l'acquisition réussit, ces 4 valeurs doivent être enregistrées pour les appels d'interface ultérieurs, sinon les informations d'erreur sont obtenues via $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 );
Pour appeler les informations utilisateur, openid
doit être transmis
$ userinfo = $ oauth -> api ( ' sns/userinfo ' , array ( ' openid ' => $ openid ));
Parmi eux, sns/userinfo
est le type api. Pour plus de détails, veuillez vous référer au document API 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 );
À ce stade, vous pouvez obtenir le nouveau refresh_token
via $oauth->getRefreshToken()
Ce SDK n'a aucune partie de lancement d'exception. Si false
est renvoyé lors de l'appel de méthodes telles que $oauth->getAccessToken()
ou $oauth->api()
, cela signifie un échec. Les informations d'erreur sont obtenues via $oauth->error()
, donc pas besoin d'utiliser try {} catch {}
pour gérer les erreurs
La licence MIT (MIT) Copyright (c) 2014 Henter <[email protected]>
L'autorisation est accordée par la présente, gratuitement, à toute personne obtenant une copie de ce logiciel et des fichiers de documentation associés (le « Logiciel »), d'utiliser le Logiciel sans restriction, y compris, sans limitation, les droits d'utilisation, de copie, de modification, de fusion. , publier, distribuer, accorder des sous-licences et/ou vendre des copies du Logiciel, et permettre aux personnes à qui le Logiciel est fourni de le faire, sous réserve des conditions suivantes :
L'avis de droit d'auteur ci-dessus et cet avis d'autorisation doivent être inclus dans toutes les copies ou parties substantielles du logiciel.
LE LOGICIEL EST FOURNI « TEL QUEL », SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU IMPLICITE, Y COMPRIS MAIS SANS LIMITATION LES GARANTIES DE QUALITÉ MARCHANDE, D'ADAPTATION À UN USAGE PARTICULIER ET DE NON-VIOLATION EN AUCUN CAS LES AUTEURS OU LES TITULAIRES DES DROITS D'AUTEUR NE SERONT RESPONSABLES DE QUELQUE QUELCONQUE. RÉCLAMATION, DOMMAGES OU AUTRES RESPONSABILITÉ, QUE CE SOIT DANS UNE ACTION CONTRACTUELLE, DÉLIT OU AUTRE, DÉCOULANT DE, OU EN RELATION AVEC LE LOGICIEL OU L'UTILISATION OU D'AUTRES AFFAIRES DANS LE LOGICIEL.