قابلیت ثبتنام و ورود به سیستم وفاداری به کاربران این امکان را میدهد که برنامه وفاداری شما را جستجو کنند و مستقیماً از طریق گوگل والت به حساب کاربری خود بپیوندند یا وارد شوند. کاربران برای تکمیل فرآیند به وبسایت سازگار با موبایل شما هدایت میشوند و پس از آن میتوانند کارت رسمی خود را به گوگل والت اضافه کنند.
پیادهسازی این ویژگی، پیشنیاز تبدیل کارتهای عضویت «استاتیک» اضافهشده توسط کاربر به کارتهای عضویت «پویا» متصل به API است. این راهنما مروری بر مزایا و مراحل پیادهسازی مورد نیاز برای فعال کردن برنامه وفاداری شما برای ثبتنام، ورود و ارتقاء کارت عضویت ارائه میدهد.
نمای کلی
برای شروع، مطمئن شوید که قبلاً پروژه خود را راهاندازی کردهاید و به API کیف پول گوگل دسترسی دارید.
برای پیادهسازی این ویژگی باید چهار مرحله زیر را دنبال کنید:
- یک کلاس آزمایشی راهاندازی کنید: کیف پول گوگل را برای آزمایش جریانهای خود پیکربندی کنید.
- توسعه صفحات: صفحات ثبت نام/ورود را با استفاده از Google Wallet
SharedDataTypeبسازید. - اجرای طرح «بازپسگیری»: کارت وفاداری را پس از اقدام به گوگل والت ارسال کنید.
- درخواست تأیید: برای بررسی و درخواست فعالسازی ارتقا، ارسال کنید.
چرا ثبت نام وفاداری را اجرا کنیم؟
برای درک ارزش این ادغام، مهم است که بین دو نوع مجوز موجود در Google Wallet تمایز قائل شویم: L1 (افزوده شده توسط کاربر) و L2 (صادر شده توسط شریک) .
تفاوت بین L1 و L2
| ویژگی | پاس L1 (اضافه شده توسط کاربر) | مجوز L2 (صادر شده توسط شریک) |
|---|---|---|
| مبدا | زمانی ایجاد میشود که کاربر به صورت دستی یک کارت فیزیکی را اسکن میکند یا یک عدد را تایپ میکند. | پس از ثبت نام یا ورود کاربر با استفاده از جریان شما، با استفاده از API کیف پول ایجاد و ارسال میشود. |
| کنترل | ایستا. شریک هیچ دید یا کنترلی بر این پاس ندارد. | پویا. شریک با استفاده از API کنترل کامل دارد. |
| عملکرد | یک تصویر ثابت از بارکد. قابل بهروزرسانی نیست. | میتواند موجودی امتیاز، وضعیت سطح را بهروزرسانی کند، پیشنهادهای شخصیسازیشده را نمایش دهد و اعلان دریافت کند. |
مسیرهای ارتقا: «پل» به برنامه شما
با ایجاد جریان ثبتنام وفاداری ("مقصد")، شما به گوگل این امکان را میدهید که یک "پل" ایجاد کند که کاربران را از مجوزهای استاتیک L1 به مجوزهای رسمی L2 شما ارتقا دهد. دو محرک اصلی برای ارتقا وجود دارد:
- ارتقاء مجوز L1 به L2: اگر کاربری قبلاً کارت شما (L1) را به صورت دستی اضافه کرده باشد، گوگل والت میتواند از او بخواهد که برای ارتقاء به مجوز رسمی و پویا (L2) از جریان ورود جدید شما بازدید کند.
- ارتقاء حساب کاربری وارد شده با جیمیل: اگر گوگل والت یک کارت وفاداری را با استفاده از جیمیل کاربر تشخیص دهد، میتواند کاربر را ترغیب کند تا از جریان شما بازدید کرده و برای دریافت حساب کاربری رسمی L2، احراز هویت کند.
مرحله ۱: یک کلاس آزمایشی در گوگل والت راهاندازی کنید
آدرسهای اینترنتی ثبتنام و ورود، لوگوی برنامه و فیلدهای کاربری انتخابشده را تعیین کنید. سپس، از فیلدهای تودرتوی discoverableProgram در کلاس loyaltyclass برای تنظیم مقادیر مناسب استفاده کنید.
مقادیر موجود در discoverableProgram را تنظیم کنید تا یک نسخه پیشنویس از برنامه وفاداری با قابلیت ثبتنام/ورود به سیستم خود ایجاد کنید. برای اطمینان از اینکه این برای آزمایشکنندگان قابل مشاهده است، تأیید کنید که آزمایشکنندگان به کنسول Google Pay و Wallet شما دسترسی دارند. برای جزئیات بیشتر در مورد نحوه اشتراکگذاری دسترسی به کنسول Google Pay و Wallet خود با سایر افراد، به صفحه «درباره کاربران بیشتر بدانید» مراجعه کنید.
برای تکمیل تأیید عملکرد پیادهسازی خود در طول فرآیند توسعه، با استفاده از ویجت پشتیبانی تماس در کنسول Google Pay و Wallet با ما تماس بگیرید. در کنسول، در موضوع، Google Wallet API را انتخاب کنید و در زیرموضوع ، ورود/ثبتنام وفاداری را انتخاب کنید.
مرحله ۲: صفحات ثبت نام و ورود را توسعه دهید
وقتی کاربری تصمیم به ورود یا ثبتنام در برنامه وفاداری شما میگیرد، به صفحهای اختصاصی در وبسایت شما هدایت میشود تا مراحل ثبتنام یا ورود را تکمیل کند. اگر کاربری تصمیم به ثبتنام بگیرد، گوگل والت از او میخواهد که اشتراکگذاری دادههای کاربریاش با شما را تأیید کند.
شما ملزم به ارائه یکی از دو صفحه یا هر دو هستید که به کاربران امکان انجام این اقدامات را میدهد:
- یک URL ورود به سیستم که در آن کاربر میتواند وارد یک حساب کاربری موجود شود.
- یک URL ثبت نام که در آن کاربر میتواند یک حساب کاربری جدید ایجاد کند.
صفحات ورود و ثبتنام شما باید شرایط زیر را داشته باشند:
- یک تجربه کاربری سازگار با موبایل ارائه دهید.
- تعداد فیلدهای مورد نیاز در طول فرآیند ثبت نام را به حداقل برسانید.
- به کاربر اجازه دهید ورود یا ثبت نام را در یک صفحه انجام دهد.
- برای اطمینان از انتقال ایمن دادههای کاربر، از رمزگذاری
HTTPSبه همراه یک گواهی معتبر استفاده کنید. - از فعال بودن حداقل ۹۹.۹٪ صفحات ورود و ثبت نام خود اطمینان حاصل کنید.
علاوه بر این الزامات، توصیه میکنیم به کاربران اجازه دهید بدون پر کردن هیچ فرمی یا محدود کردن صفحه به پذیرش شرایط خدمات شما، در برنامه وفاداری شما ثبتنام کنند.
- با استفاده از دادههای کاربر ارائه شده در
SharedDataType، میتوانید یک حساب کاربری ایجاد کنید و بلافاصله کارت وفاداری آنها را پس بگیرید. - متعاقباً میتوانید یک رمز عبور یکبار مصرف یا لینکی برای پیکربندی رمز عبور و جزئیات اختیاری حساب کاربری برای کاربر ایمیل کنید.
- این امر احتمال انصراف کاربران از فرآیند ثبت نام را کاهش میدهد، زیرا هر مرحله اضافی میتواند منجر به انصراف بیشتر شود.
هنگام نمایش صفحه ورود یا ثبتنام، گوگل والت یک وبویو اندروید ایجاد میکند و یک درخواست POST به آدرس اینترنتی (URL) ارائه شده توسط شما ارسال میشود. دادههای کاربر در پارامتر SharedDataType ارائه میشوند که در درخواست POST با Content-Type از application/x-www-form-urlencoded و کدگذاری UTF-8 گنجانده شده است. مقدار پارامتر SharedDataType یک شیء JSON کدگذاری شده با Base64 است.
بسته به اقدام انتخاب شده توسط کاربر و فیلدهایی که برای درخواست از کاربر مشخص کردهاید، شیء JSON ممکن است شامل فیلدهای زیر باشد.
| میدان | ثبت نام |
|---|---|
| ایمیل | ✓ |
| نام کوچک | ✓ |
| نام خانوادگی | ✓ |
| خط آدرس [1-3] | ✓ |
| شهر | ✓ |
| ایالت | ✓ |
| کد پستی | ✓ |
| کشور | ✓ |
| تلفن | ✓ |
برای مشاهدهی یک نمونهی رمزگشاییشده از شیء JSON موجود در SharedDataType به موارد زیر مراجعه کنید.
منبع
{
"firstName": "Jane",
"lastName": "Doe",
"addressLine1": "1600 Amphitheatre Pkwy",
"addressLine2": "Apt 123",
"addressLine3": "Attn:Jane",
"city": "Mountain View",
"state": "CA",
"zipcode": "94043",
"country": "US",
"email": "jane.doe@example.com",
"phone": "555-555-5555"
}
مرحله ۳: بازگرداندن فوری به کیف پول گوگل
پس از احراز هویت (ورود به سیستم) یا پس از ایجاد حساب کاربری (ثبت نام)، صفحه شما باید بلافاصله کارت وفاداری کاربر را به کیف پول گوگل (Google Wallet) بازگرداند.
شما میتوانید با هدایت به لینکی که ساختار زیر را دنبال میکند، کارت وفاداری را به کیف پول گوگل برگردانید.
https://pay.google.com/gp/v/save/{jwt_generated}
طول ایمن برای یک URL، ۲۰۰۰ کاراکتر است. لینکهای شما نباید از این حد تجاوز کنند. اشیاء کدگذاری شده در JWTها باید کوچک باشند و فقط شامل دادههایی باشند که مختص کاربر هستند. سعی کنید بیشتر دادهها را در کلاس شیء نگه دارید و قبل از ساخت JWT، آن را ایجاد کنید. برای اشیاء بزرگتر که این محدودیت را ندارند، ابتدا شیء را در API کیف پول گوگل ایجاد کنید و فقط شناسه شیء را در JWT ارسال کنید.
جریان ارتباطی معمول
جریان ارتباطی برای تکمیل ثبت نام یا ورود به سیستم توسط یک کاربر در تصویر زیر نشان داده شده است. مسئولیت اجرای تمام اقدامات بین "سرور شما" بر عهده شماست.

مرحله ۴: درخواست تأیید و فعالسازی
پس از اتمام کار توسعه و آزمایش جریانهای ثبتنام/ورود، باید درخواستی برای بررسی و فعالسازی کامل پیادهسازی خود ارسال کنید.
- به کنسول Google Pay و Wallet بروید.
- از ابزارک تماس با پشتیبانی استفاده کنید.
- به تیم پشتیبانی اطلاع دهید که یکپارچهسازی ثبتنام وفاداری خود را تکمیل کردهاید.
پس از بررسی کامل پیادهسازی شما که عملکرد صحیح آن را در ترکیب با برنامه Google Wallet تأیید میکند، ویژگی ثبتنام/ورود به سیستم وفاداری برای برنامه وفاداری شما به صورت عمومی راهاندازی خواهد شد.
به منظور تضمین یک تجربه کاربری بهینه، بررسیهای مکرری از پیادهسازی ثبتنام/ورود شما انجام خواهد شد تا از انطباق مداوم با الزامات ویژگی اطمینان حاصل شود. در صورت بروز مغایرت، به شما اطلاع داده خواهد شد و ممکن است قابلیت ورود/ثبتنام تا زمان حل مشکل غیرفعال شود.
سوالات متداول
آیا برای تصاویر استفاده شده در برنامه وفاداری من الزاماتی وجود دارد؟ بله، تصاویر شما باید در یک مکان
HTTPSمیزبانی شوند زیرا در غیر این صورت در Google Wallet قابل مشاهده نخواهند بود.آیا ابزاری وجود دارد که پیادهسازی و اشکالزدایی JWTها را ساده کند؟ بله، پلتفرمهایی مانند www.jwt.io به شما امکان میدهند توکنهای خود را در طول فرآیند توسعه رمزگشایی و اشکالزدایی کنید و به شما امکان میدهند محتوایی را که ارسال میکنید تأیید کنید. توجه داشته باشید که گوگل هیچ وابستگی ندارد و به طور خاص هیچ یک از این اشخاص ثالث را توصیه نمیکند.
چگونه میتوانیم دادههای
SharedDataTypeکدگذاری شده با Base64 را به درستی مدیریت کنیم؟ مطمئن شوید که در طول فرآیند خود از کدگذاری UTF-8 استفاده میکنید. رشته JSON ابتدا با UTF-8 کدگذاری شده و متعاقباً با استفاده از android.util.Base64 با گزینههای NO_WRAP و URL_SAFE کدگذاری میشود. این با بخش ۴ RFC 3548 مطابقت دارد.