برای فعال کردن جلسات کاربری یکپارچه (مثلاً دسترسی به مزایای وفاداری، پیشنهادات شخصیسازیشده) و پرداختهای احراز هویتشده، باید قابلیت پیوند هویت را با استفاده از OAuth 2.0 پیادهسازی کنید. اگر پیوند هویت را پیادهسازی نمیکنید، باید از پرداخت مهمان پشتیبانی کنید.
در مورد هرگونه سؤالی در مورد مقررات حفظ حریم خصوصی و شیوههای رضایت، با تیم حقوقی خود مشورت کنید.
الزامات اصلی
- پروتکل: پیادهسازی جریان کد مجوز OAuth 2.0 ( RFC 6749 2.3.1 ).
- احراز هویت کلاینت: باید از احراز هویت پایه HTTP (
client_secret_basic) در نقطه پایانی توکن پشتیبانی کند. - محدودهها: شما باید از محدودههای استاندارد UCP که در این بخش تعریف شدهاند، پشتیبانی کنید.
- کشف: شما باید یک فایل ابرداده را در
/.well-known/oauth-authorization-server( RFC 8414 ) میزبانی کنید تا پلتفرم بتواند نقاط پایانی شما را کشف کند.
محدودهها
شما باید محدوده زیر را پیادهسازی کنید، که مجوز لازم برای تمام عملیات چرخه حیات پرداخت (دریافت، ایجاد، بهروزرسانی، حذف، لغو، تکمیل) را اعطا میکند.
- نام محدوده:
ucp:scopes:checkout_session
تجربه کاربری: شما باید محدودههای درخواستی را به عنوان یک صفحه رضایت واحد و همراه (مثلاً «به گوگل اجازه دهید جلسات پرداخت شما را مدیریت کند») ارائه دهید، نه به صورت دکمههای فنی جزئی و دقیق.
لینک سازی ساده گوگل
Google Streamlined Linking یک افزونه اختیاری برای استاندارد OAuth 2.0 است. این افزونه از JWT assertionها برای ترکیب بررسیهای intent و تبادل توکن در نقطه پایانی توکن OAuth 2.0 ( check ، create ، get intents) استفاده میکند.
لینکسازی ساده گوگل (Google Streamlined Linking) برای یک تجربه کاربری روان توصیه میشود. این روش به کاربران اجازه میدهد تا حسابهای کاربری خود را بدون ترک رابط کاربری گوگل، به یکدیگر لینک دهند یا حسابهای کاربری جدیدی ایجاد کنند. از آنجا که این جریان کاملاً در رابط کاربری گوگل رخ میدهد، نیازی به رابط کاربری لینکسازی نیست. این امر سربار توسعه را کاهش میدهد، ریدایرکتهای مرورگر را حذف میکند و میتواند نرخ تبدیل را افزایش دهد.
- مشخصات: پیادهسازی باید از الزامات پیوند ساده پیروی کند.
- استانداردها: اگرچه مفاهیم را از RFC 7523 وام میگیرد، اما برای افزایش امنیت متفاوت است.
فراداده سرور احراز هویت (مثال JSON)
شما باید این شیء JSON را در https://[your-domain]/.well-known/oauth-authorization-server منتشر کنید.
مثال:
{
"issuer": "https://merchant.example.com",
"authorization_endpoint": "https://merchant.example.com/oauth2/authorize",
"token_endpoint": "https://merchant.example.com/oauth2/token",
"revocation_endpoint": "https://merchant.example.com/oauth2/revoke",
"scopes_supported": [
"ucp:scopes:checkout_session"
],
"response_types_supported": [
"code"
],
"grant_types_supported": [
"authorization_code",
"refresh_token"
],
"token_endpoint_auth_methods_supported": [
"client_secret_basic"
],
"service_documentation": "https://merchant.example.com/docs/oauth2"
}