WeChat OAuth تسجيل الدخول SDK
أضف التكوين التالي إلى ملف composer.json
الخاص بك
"henter/wechat-oauth" : " dev-master "
ثم استخدم Composer لتثبيت SDK
composer install
إذا فشل Packagist أو كان غير متاح ولا يمكن تثبيت SDK، فيمكنك استخدام Satis أو Artifact لتثبيته محليًا للحصول على التفاصيل، راجع المستودعات في وثائق Composer.
انسخ lib/Henter/WeChat
إلى دليل المشروع، ثم require "/path/to/sdk/OAuth.php"
إذا كنت تستخدم Composer للتثبيت، فيمكنك استخدام الكود التالي للتحميل تلقائيًا
require ' vendor/autoload.php ' ;
يقع SDK ضمن مساحة الاسم العالمية.
use Henter WeChat OAuth
قم بإنشاء مثيل OAuth
لإكمال التهيئة
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret );
$appid
و $secret
هما التعريف الفريد والمفتاح السري AppSecret لتطبيق منصة WeChat المفتوحة
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret );
$ callback_url = ' http://your_site.com/your_callback_url ' ;
$ url = $ oauth -> getAuthorizeURL ( $ callback_url );
إعادة التوجيه إلى $url
. بعد أن يسمح المستخدم بالتفويض، سيعيد التوجيه إلى $callback_url
باستخدام معلمات code
state
(لا يمر نموذج الكود في معلمة state
)
عنوان التفويض الافتراضي هو الانتقال إلى صفحة رموز QR لمسح WeChat (ينطبق على جهاز الكمبيوتر). هذه الطريقة غير مناسبة إذا قام المستخدم بالوصول إلى صفحة الويب داخل WeChat والنقر فوق تسجيل الدخول إلى WeChat. تحتاج إلى استخدام الطريقة التالية للحصول على العنوان المعتمد للاستخدام في WeChat:
$ url = $ oauth -> getWeChatAuthorizeURL ( $ callback_url );
ملاحظة: لم يتم ذكر هذا في وثائق منصة WeChat المفتوحة (تم ذكره فقط في وثائق منصة الحساب الرسمي)، ولكن الاختبار وجد أنه ينطبق أيضًا على تطبيقات المنصة المفتوحة.
access_token
من خلال معلمة 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 ();
}
إذا تم الاستحواذ بنجاح، فيجب حفظ هذه القيم الأربع لاستدعاءات الواجهة اللاحقة، وإلا فسيتم الحصول على معلومات الخطأ من خلال $oauth->error()
access_token
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret , $ access_token );
أو
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret );
$ oauth -> setAccessToken ( $ access_token );
للاتصال بمعلومات المستخدم، يجب تمرير openid
$ userinfo = $ oauth -> api ( ' sns/userinfo ' , array ( ' openid ' => $ openid ));
من بينها، sns/userinfo
هو نوع واجهة برمجة التطبيقات (api) للحصول على التفاصيل، يرجى الرجوع إلى مستند WeChat API.
access_token
عبر refresh_token
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret );
//以下两种方式一样
$ access_token = $ oauth -> getAccessToken ( ' token ' , $ refresh_token );
或
$ access_token = $ oauth -> refreshAccessToken ( $ refresh_token );
في الوقت الحالي، يمكنك الحصول على refresh_token
الجديد من خلال $oauth->getRefreshToken()
لا يحتوي SDK هذا على أي جزء لطرح الاستثناءات. إذا تم إرجاع false
عند استدعاء أساليب مثل $oauth->getAccessToken()
أو $oauth->api()
، فهذا يعني أنه تم الحصول على معلومات الخطأ من خلال $oauth->error()
، لذا لا داعي لاستخدام try {} catch {}
لمعالجة الأخطاء
حقوق الطبع والنشر لترخيص معهد ماساتشوستس للتكنولوجيا (MIT) (c) لعام 2014 محفوظة لشركة Heenter <[email protected]>
يُمنح الإذن مجانًا لأي شخص يحصل على نسخة من هذا البرنامج وملفات الوثائق المرتبطة به ("البرنامج") للتعامل في البرنامج دون قيود، بما في ذلك، على سبيل المثال لا الحصر، حقوق الاستخدام والنسخ والتعديل والدمج. ونشر و/أو توزيع وترخيص من الباطن و/أو بيع نسخ من البرنامج، والسماح للأشخاص الذين تم توفير البرنامج لهم بالقيام بذلك، وفقًا للشروط التالية:
يجب تضمين إشعار حقوق الطبع والنشر أعلاه وإشعار الإذن هذا في جميع النسخ أو الأجزاء الكبيرة من البرنامج.
يتم توفير البرنامج "كما هو"، دون أي ضمان من أي نوع، صريحًا أو ضمنيًا، بما في ذلك على سبيل المثال لا الحصر ضمانات القابلية للتسويق والملاءمة لغرض معين وعدم الانتهاك، ولا يتحمل المؤلفون أو أصحاب حقوق الطبع والنشر بأي حال من الأحوال المسؤولية عن أي شيء. المطالبة أو الأضرار أو غيرها المسؤولية، سواء في دعوى العقد أو الضرر أو غير ذلك، الناشئة عن أو خارج أو فيما يتعلق بالبرنامج أو الاستخدام أو المعاملات الأخرى في البرنامج.