SDK masuk OAuth WeChat
Tambahkan konfigurasi berikut ke file composer.json
Anda
"henter/wechat-oauth" : " dev-master "
Kemudian gunakan Komposer untuk menginstal SDK
composer install
Jika Packagist gagal atau tidak tersedia dan SDK tidak dapat diinstal, Anda dapat menggunakan Satis atau Artifact untuk menginstalnya secara lokal. Untuk detailnya, lihat Repositori dalam dokumentasi Composer.
Salin lib/Henter/WeChat
ke direktori proyek, lalu require "/path/to/sdk/OAuth.php"
Jika Anda menggunakan Komposer untuk menginstal, Anda dapat menggunakan kode berikut untuk memuat secara otomatis
require ' vendor/autoload.php ' ;
SDK terletak di bawah namespace global.
use Henter WeChat OAuth
Buat instance OAuth
untuk menyelesaikan inisialisasi
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret );
$appid
dan $secret
adalah identifikasi unik dan kunci rahasia AppSecret dari aplikasi platform terbuka WeChat
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret );
$ callback_url = ' http://your_site.com/your_callback_url ' ;
$ url = $ oauth -> getAuthorizeURL ( $ callback_url );
Redirect ke $url
. Setelah pengguna mengizinkan otorisasi, pengguna akan dialihkan ke $callback_url
dengan parameter code
dan state
(kode contoh tidak meneruskan parameter state
)
Alamat otorisasi default adalah melompat ke halaman pindaian kode QR WeChat (berlaku untuk PC). Metode ini tidak cocok jika pengguna mengakses halaman web dalam WeChat dan mengklik login WeChat. Anda perlu menggunakan metode berikut untuk mendapatkan alamat resmi untuk digunakan di WeChat:
$ url = $ oauth -> getWeChatAuthorizeURL ( $ callback_url );
Catatan: Hal ini tidak disebutkan dalam dokumentasi platform terbuka WeChat (hanya disebutkan dalam dokumentasi platform akun resmi), namun pengujian menemukan bahwa hal ini juga berlaku untuk aplikasi platform terbuka.
access_token
melalui parameter 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 ();
}
Jika akuisisi berhasil, keempat nilai ini perlu disimpan untuk panggilan antarmuka berikutnya, jika tidak, informasi kesalahan diperoleh melalui $oauth->error()
access_token
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret , $ access_token );
atau
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret );
$ oauth -> setAccessToken ( $ access_token );
Untuk memanggil informasi pengguna, openid
perlu diteruskan
$ userinfo = $ oauth -> api ( ' sns/userinfo ' , array ( ' openid ' => $ openid ));
Diantaranya, sns/userinfo
adalah tipe API. Untuk detailnya, silakan merujuk ke dokumen API WeChat.
access_token
melalui refresh_token
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret );
//以下两种方式一样
$ access_token = $ oauth -> getAccessToken ( ' token ' , $ refresh_token );
或
$ access_token = $ oauth -> refreshAccessToken ( $ refresh_token );
Saat ini, Anda dapat memperoleh refresh_token
baru melalui $oauth->getRefreshToken()
SDK ini tidak memiliki bagian pelempar pengecualian apa pun. Jika false
dikembalikan saat memanggil metode seperti $oauth->getAccessToken()
atau $ $oauth->error()
$oauth->api()
, itu berarti kegagalan $oauth->error()
, jadi tidak perlu Gunakan try {} catch {}
untuk menangani kesalahan
Lisensi MIT (MIT) Hak Cipta (c) 2014 Henter <[email protected]>
Izin dengan ini diberikan, secara gratis, kepada siapa pun yang memperoleh salinan perangkat lunak ini dan file dokumentasi terkait (“Perangkat Lunak”), untuk menggunakan Perangkat Lunak tanpa batasan, termasuk namun tidak terbatas pada hak untuk menggunakan, menyalin, memodifikasi, menggabungkan , mempublikasikan, mendistribusikan, mensublisensikan, dan/atau menjual salinan Perangkat Lunak, dan mengizinkan orang yang menerima Perangkat Lunak untuk melakukan hal tersebut, dengan tunduk pada ketentuan berikut:
Pemberitahuan hak cipta di atas dan pemberitahuan izin ini akan disertakan dalam semua salinan atau sebagian besar Perangkat Lunak.
PERANGKAT LUNAK INI DISEDIAKAN 'APA ADANYA', TANPA JAMINAN APA PUN, TERSURAT MAUPUN TERSIRAT, TERMASUK NAMUN TIDAK TERBATAS PADA JAMINAN KELAYAKAN UNTUK DIPERDAGANGKAN, KESESUAIAN UNTUK TUJUAN TERTENTU, DAN TIDAK ADA PELANGGARAN DALAM HAL APA PUN PENULIS ATAU PEMEGANG HAK CIPTA TIDAK BERTANGGUNG JAWAB ATAS APAPUN KLAIM, KERUSAKAN ATAU LAINNYA TANGGUNG JAWAB, BAIK DALAM TINDAKAN KONTRAK, HUKUM ATAU LAINNYA, YANG TIMBUL DARI, DARI ATAU SEHUBUNGAN DENGAN PERANGKAT LUNAK ATAU PENGGUNAAN ATAU HAL-HAL LAIN DALAM PERANGKAT LUNAK.