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