احراز هویت می تواند در سه محیط مختلف انجام شود:
- برنامه اندروید یکپارچه کننده پرداخت
- وب سایت موبایل یکپارچه ساز پرداخت
- وب سایت دسکتاپ یکپارچه کننده پرداخت
صرفنظر از جریان، Google تعامل کاربر را به نرمافزار ادغامکننده پرداخت واگذار میکند. یکپارچهساز پرداخت میتواند انتخاب کند که یک رابط کاربری را به کاربر نشان دهد یا اگر قبلاً دادههای مناسب را داشته باشد، بلافاصله به کاربر بازگرداند. همه جریانها منجر به تولید یک AuthenticationResponse توسط یکپارچهساز میشوند. این پاسخ امضا شده و به Google ارسال می شود.
وب سایت های تلفن همراه و دسکتاپ باید از مشخصات API احراز هویت WebRedirect پیروی کنند، در حالی که جریان برنامه Android باید از مشخصات API احراز هویت Android پیروی کند.
یکپارچهسازها باید یک راهحل Android APK را برای احراز هویت کاربران پیادهسازی کنند. این احراز هویت یک روش متفاوت است، اما همان هدفی است که احراز هویت ارائه شده توسط تأیید اعتبار وب است.
کاربر با یکپارچهساز پرداخت از طریق یک Android Activity احراز هویت میکند. هدف احراز هویت در طول ارتباط حساب و برای چالش های کاربر فراخوانی می شود. برای جلوگیری از خاتمه Android Play در پسزمینه در حین احراز هویت، ادغامکننده باید موارد زیر را در موضوع فعالیت لحاظ کند.
<item name="android:windowIsTranslucent">true</item>
تعریف روش
هدف باید این ویژگی ها را داشته باشد:
خواص روش | |
---|---|
عمل | com.google.android.payments.standard.AUTHENTICATE_V1 |
دسته بندی | android.intent.category.DEFAULT |
درخواست
زمینه های | |
---|---|
gspAuthenticationRequest | AuthenticationRequest درخواست احراز هویت |
gspAssociationId | string در صورت وجود، این شامل یک شناسه است که ادغام کننده برای جستجوی اعتبار کاربری که به چالش کشیده شده است استفاده می کند. اگر این وجود نداشته باشد، کاربر این گزینه را دارد که شناسه حساب را تغییر دهد. |
واکنش
پس از اینکه کاربر احراز هویت را کامل کرد، برنامه شما باید یک هدف نتیجه را به Google ارسال کند. اگر احراز هویت موفقیت آمیز بود، یک intent ایجاد کنید و gspAuthenticationResponse رمزگذاری شده را به عنوان یک اضافی اضافه کنید. در مرحله بعد، نتیجه فعالیت را روی کد نتیجه مناسب تنظیم کنید.
...
result.setExtra("gspAuthenticationResponse", gspAuthenticationResponse);
setResult(Activity.RESULT_OK, result);
...
finish();
نتیجه
زمینه های | |||||||
---|---|---|---|---|---|---|---|
نتیجه | int
|
موارد اضافی
زمینه های | |
---|---|
gspAuthenticationResponse | AuthenticationResponse پاسخ احراز هویت این مقدار کدگذاری شده نباید از 1 کیلوبایت تجاوز کند. |
سایر الزامات فعالیت
فعالیتی که از عملکرد AUTHENTICATE_V1
ذکر شده در بالا پشتیبانی میکند، باید بررسی کند که تماسگیرندگان API فقط از برنامههای دارای امضای Google باشند. این به جلوگیری از تلاش سایر برنامهها برای فراخوانی فعالیت شما و بازیابی نشانههای هویت کمک میکند. این را می توان با استفاده از StandardPaymentUtils.verifyCallingActivityIsGoogleSigned
ارائه شده درست بعد از super.onCreate
در اجرای Activity خود انجام داد.
در اینجا یک نمونه است:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
StandardPaymentsUtils.verifyCallingActivityIsGoogleSigned(this);
....
}
همه فعالیتهایی که در جریان authenticate
فراخوانی میشوند باید یک موضوع فعالیت ارائه دهند که دارای windowIsTranslucent=true
باشد. این کار باید با ویژگی AndroidManifest android:theme و بدون استفاده از Context.setTheme()
انجام شود. از نظر برنامهریزی، تنظیم موضوع برای شفافیت پنجره به درستی کار نمیکند. Google اعمال می کند که اولین فعالیت راه اندازی شده از این الگو پیروی کند، اما هر فعالیت فرعی که راه اندازی می شود نیز باید از این الگو پیروی کند. اگر نه، ممکن است خرید از توسعهدهندگان شخص ثالث کارساز نباشد.