با قیمت‌گذاری منطقه‌ای محصولات، بازارهای جدید را آزاد کنید

۱. مقدمه

در این آزمایشگاه کد، شما بر ایجاد یک محصول یکبار مصرف تمرکز خواهید کرد، گزینه خرید آن را تعریف خواهید کرد، قیمت‌های خاص منطقه را تعیین می‌کنید و جریان خرید محصولات یکبار مصرف را آزمایش خواهید کرد.

مخاطب

این codelab برای توسعه‌دهندگان برنامه‌های اندروید که می‌خواهند از Play Console برای مدیریت کاتالوگ محصولات یکبار مصرف خود استفاده کنند، در نظر گرفته شده است.

آنچه یاد خواهید گرفت...

  • مدل شیء محصول یکبار مصرف .
  • نحوه پیمایش و استفاده از کنسول گوگل پلی برای مدیریت کاتالوگ محصولات یکبار مصرف.
  • چگونه جزئیات محصول یکبار مصرف را بدون هیچ هزینه‌ای به زبان‌های مختلف ترجمه کنیم.
  • نحوه پیکربندی موجودی منطقه‌ای و قیمت‌گذاری برای محصولات یکبار مصرف.
  • نحوه استفاده از APIهای کتابخانه پرداخت Play برای جستجوی جزئیات محصول یک‌بار مصرف.
  • نحوه آزمایش محصولات یکبار مصرف با استفاده از Play Billing Lab.

آنچه نیاز خواهید داشت...

۲. محصول برتر یک‌باره

مدل شیء محصول یکبار مصرف، انعطاف‌پذیری بیشتری در نحوه فروش محصولات ارائه می‌دهد و پیچیدگی مدیریت آنها را کاهش می‌دهد. مدل شیء، آنچه را که فروخته می‌شود از نحوه فروش آن جدا می‌کند و به یک حق امتیاز اجازه می‌دهد تا چندین قیمت داشته باشد و روش‌های مختلفی برای بازاریابی به کاربران داشته باشد. مدل شیء دارای سه سطح سلسله مراتب است:

  • محصول یکبار مصرف - یک شیء محصول، آنچه را که کاربر خریداری می‌کند، تعریف می‌کند.
  • گزینه خرید - گزینه خرید نحوه اعطای حق به کاربر، قیمت آن و محل (منطقه) عرضه محصول را تعریف می‌کند. یک محصول واحد می‌تواند چندین گزینه خرید داشته باشد که می‌توانند قیمت‌های متفاوتی را در مناطق مختلف نشان دهند.
  • پیشنهاد - پیشنهادها می‌توانند بر قیمت گزینه خریدی که به آن مرتبط هستند تأثیر بگذارند و می‌توانند برای مدل‌سازی تخفیف‌ها یا پیش‌سفارش استفاده شوند. یک گزینه خرید می‌تواند چندین پیشنهاد داشته باشد.

نمودار زیر مدل شیء محصول یک‌بار مصرف را نشان می‌دهد.

codelab-otp-model.png شکل ۱ : مدل شیء یک‌بار مصرف.

برای اطلاعات بیشتر، به نمای کلی محصولات یکبار مصرف مراجعه کنید.

۳. ساخت اپلیکیشن نمونه

این آزمایشگاه کد از یک برنامه اندروید نمونه برای نشان دادن نحوه مدیریت محصولات یکبار مصرف استفاده می‌کند. این برنامه نمونه به گونه‌ای طراحی شده است که یک برنامه اندروید کاملاً کاربردی باشد و کد منبع کاملی دارد که جنبه‌های زیر را نشان می‌دهد:

  • ادغام برنامه با PBL
  • دریافت محصولات یکبار مصرف و گزینه‌های خرید مرتبط
  • جریان‌های خرید را با قیمت‌گذاری منطقه‌ای اجرا کنید

ویدیوی آزمایشی زیر نشان می‌دهد که برنامه‌ی نمونه پس از استقرار و اجرا، چگونه به نظر می‌رسد و چگونه رفتار خواهد کرد.

اگر از قبل با محصولات یک‌بار مصرف و کتابخانه پرداخت Play (PBL) آشنا هستید، می‌توانید برنامه نمونه را دانلود کرده و با آن کار کنید.

پیش‌نیازها

قبل از ساخت و استقرار برنامه نمونه، موارد زیر را انجام دهید:

ساختن

هدف از این مرحله ساخت، تولید یک فایل بسته نرم‌افزاری اندروید امضا شده از برنامه نمونه است.

برای تولید بسته نرم‌افزاری اندروید، مراحل زیر را انجام دهید:

  1. برنامه نمونه را از گیت‌هاب دانلود کنید.
  2. برنامه نمونه را بسازید . قبل از ساخت، نام بسته برنامه نمونه را تغییر دهید و سپس آن را بسازید. اگر بسته‌هایی از برنامه‌های دیگر در کنسول Play خود دارید، مطمئن شوید که نام بسته‌ای که برای برنامه نمونه ارائه می‌دهید منحصر به فرد است.

    نکته : ساخت برنامه نمونه فقط یک فایل APK ایجاد می‌کند که می‌توانید برای آزمایش محلی از آن استفاده کنید. با این حال، اجرای برنامه محصولات و قیمت‌ها را دریافت نمی‌کند زیرا محصولات در کنسول Play پیکربندی نشده‌اند.
  3. یک بسته نرم‌افزاری اندروید امضا شده ایجاد کنید.
    1. ایجاد کلید آپلود و کلید اصلی
    2. برنامه خود را با کلید آپلود خود امضا کنید
    3. پیکربندی امضای برنامه Play

مرحله بعدی آپلود بسته برنامه اندروید در کنسول گوگل پلی است.

۴. ایجاد محصول یکبار مصرف در کنسول پلی

برای ایجاد محصولات یکبار مصرف در کنسول گوگل پلی، باید یک برنامه در کنسول پلی داشته باشید. یک برنامه در کنسول پلی ایجاد کنید و سپس بسته برنامه امضا شده قبلی را آپلود کنید.

یک برنامه ایجاد کنید

برای ایجاد یک برنامه:

  1. با استفاده از حساب توسعه‌دهنده خود، وارد کنسول گوگل پلی شوید.
  2. روی ایجاد برنامه کلیک کنید. این صفحه ایجاد برنامه را باز می‌کند.
  3. نام برنامه را وارد کنید، زبان پیش‌فرض و سایر جزئیات مربوط به برنامه را انتخاب کنید.
  4. روی ایجاد برنامه کلیک کنید. این یک برنامه در کنسول گوگل پلی ایجاد می‌کند.

اکنون می‌توانید بسته‌ی برنامه‌ی امضا شده‌ی برنامه‌ی نمونه را آپلود کنید.

بسته برنامه امضا شده را آپلود کنید

  1. بسته‌ی برنامه‌ی امضا شده را در مسیر تست داخلی کنسول گوگل پلی آپلود کنید . تنها پس از آپلود، می‌توانید ویژگی‌های مرتبط با کسب درآمد را در کنسول گوگل پلی پیکربندی کنید.
  2. روی تست و انتشار > در حال آزمایش > انتشار داخلی > ایجاد نسخه جدید کلیک کنید.
  3. نام نسخه را وارد کنید و فایل APK امضا شده را آپلود کنید.
  4. روی «بعدی» کلیک کنید و سپس روی «ذخیره و انتشار» کلیک کنید.

حالا می‌توانید محصولات یکبار مصرف خود را ایجاد کنید.

یک محصول یکبار مصرف ایجاد کنید

برای ایجاد یک محصول یکبار مصرف:

  1. در کنسول گوگل پلی ، از منوی ناوبری سمت چپ، به مسیر کسب درآمد از طریق بازی > محصولات > محصولات یکبار مصرف بروید.
  2. روی ایجاد محصول یکبار مصرف کلیک کنید.
  3. جزئیات محصول زیر را وارد کنید:
    • شناسه محصول: یک شناسه منحصر به فرد وارد کنید. برای مثال، trending_movie_1 .
    • (اختیاری) برچسب‌ها: برچسب‌های مرتبط اضافه کنید.
    • نام: نام محصول را وارد کنید. برای مثال، Product Movie .
    • توضیحات: توضیحات محصول را وارد کنید. برای مثال، Product Description .
    ترجمه دستی نام و توضیحات محصول
    به طور پیش‌فرض، نام و توضیحات محصول به زبان انگلیسی (ایالات متحده) - انگلیسی-آمریکایی است. همچنین می‌توانید نام و توضیحات را به صورت دستی به زبان‌های دیگر وارد کنید. برای وارد کردن جزئیات، روی مدیریت ترجمه‌ها کلیک کنید، زبان‌هایی را که می‌خواهید متن ترجمه شده را برای آنها وارد کنید انتخاب کنید و سپس روی اعمال کلیک کنید. تصویر زیر گزینه مدیریت ترجمه‌ها را نشان می‌دهد: مدیریت-ترجمه‌ها.png شکل ۲ : مدیریت ترجمه.

    زبان‌هایی که انتخاب کرده‌اید در منوی کشویی زبان ظاهر می‌شوند. هر زبان را انتخاب کنید و نام و توضیحات مربوطه را به زبان انتخاب شده وارد کنید. همچنین می‌توانید نام و توضیحات محصول را به صورت خودکار و رایگان ترجمه کنید. برای اطلاعات بیشتر، به بخش ترجمه محصولات یکبار مصرف در این codelab مراجعه کنید.

    توجه : برای اهداف این آزمایشگاه کد، می‌توانید از پیکربندی فیلد آیکون و بخش مالیات، انطباق و برنامه‌ها صرف نظر کنید.
  4. روی بعدی کلیک کنید.
  5. یک گزینه خرید اضافه کنید و موجودی منطقه‌ای آن را پیکربندی کنید. یک محصول یکبار مصرف حداقل به یک گزینه خرید نیاز دارد که نحوه اعطای حق، قیمت آن و موجودی منطقه‌ای را تعریف می‌کند. برای این codelab، گزینه استاندارد خرید را برای محصول اضافه خواهیم کرد.

    در قسمت گزینه خرید ، اطلاعات زیر را وارد کنید:
    • شناسه گزینه خرید: یک شناسه منحصر به فرد وارد کنید. برای مثال، buy-movie .
    • نوع خرید: گزینه خرید را انتخاب کنید.
    • (اختیاری) برچسب‌ها: برچسب‌های مخصوص این گزینه خرید را اضافه کنید.
    • (اختیاری) برای پیکربندی گزینه‌های پیشرفته ، روی گزینه‌های پیشرفته کلیک کنید. برای اهداف این آزمایشگاه کد، می‌توانید از پیکربندی گزینه‌های پیشرفته صرف نظر کنید.
  6. در مرحله بعد، باید دسترسی منطقه‌ای و قیمت را برای گزینه خرید پیکربندی کنید. در بخش دسترسی منطقه‌ای، مناطقی را که محصول شما در آنها در دسترس است، از جمله مناطقی که برنامه شما هنوز در آنها منتشر نشده است، مشخص خواهید کرد. به طور پیش‌فرض، گزینه خرید در همه مناطق در دسترس خواهد بود.

    در بخش «دسترسی و قیمت‌گذاری» ، روی «ویرایش دسترسی و دسترسی» > «تنظیم روی غیرقابل دسترس» کلیک کنید. توجه داشته باشید که همه مناطق به طور پیش‌فرض روی «موجود» تنظیم شده‌اند.
    1. همه کشورها به جز France ، Spain و United States را انتخاب کنید، سپس روی «تنظیم به حالت غیرقابل دسترس» کلیک کنید.
    2. از منوی کشویی « همه مناطق» ، «کشورها و مناطق موجود» را انتخاب کنید. این فقط کشورهایی را نشان می‌دهد که در مرحله قبل انتخاب کرده‌اید.
    3. برای هر یک از کشورهای موجود، روی نماد ویرایش در ستون قیمت کلیک کنید. این کار یک کادر محاوره‌ای برای ویرایش قیمت نمایش می‌دهد. قیمت‌های زیر را وارد و ذخیره کنید:
      • برای France ، 10 یورو وارد کنید
      • برای Spain ، ۸ یورو وارد کنید
      • برای United States ، ۱۳ دلار آمریکا وارد کنید
  7. روی فعال‌سازی کلیک کنید. این کار باعث می‌شود محصول یکبار مصرف شما با گزینه خرید در دسترس قرار گیرد.

توجه : واحد پول قیمت منطقه‌ای بر اساس تنظیمات کشور پخش کاربر قابل مشاهده است. برای مثال، اگر کشور پخش کاربر روی فرانسه تنظیم شده باشد، قیمت یکباره محصول به یورو نمایش داده می‌شود.

ویدیوی ساخت محصول یکبار مصرف

ویدیوی زیر مراحل ایجاد محصول یکبار مصرف را که قبلاً توضیح داده شده است، نشان می‌دهد.

گزینه خرید اجاره را اضافه کنید

اکنون، گزینه خرید اجاره‌ای را به محصول یکبار مصرف قبلی اضافه کنید.

  1. در کنسول گوگل پلی ، از منوی ناوبری سمت چپ، به مسیر کسب درآمد از طریق بازی > محصولات > محصولات یکبار مصرف بروید.
  2. روی فلش سمت راست برای محصولی که شناسه محصول trending_movie_1 آن را در مرحله قبل ایجاد کرده‌اید، کلیک کنید.
  3. روی گزینه افزودن خرید کلیک کنید.
  4. در قسمت گزینه خرید ، اطلاعات زیر را وارد کنید:
    • شناسه گزینه خرید: rent-movie را وارد کنید.
    • نوع خرید: اجاره را انتخاب کنید.
    • مدت اجاره: ۴۸ ساعت را انتخاب کنید.
    • دوره شروع اجاره: ۲۴ ساعت را انتخاب کنید.
    • (اختیاری) برچسب‌ها: برچسب‌های مخصوص این گزینه خرید را اضافه کنید.
    • (اختیاری) برای پیکربندی گزینه‌های پیشرفته ، روی گزینه‌های پیشرفته کلیک کنید. برای اهداف این آزمایشگاه کد، می‌توانید از پیکربندی گزینه‌های پیشرفته صرف نظر کنید.
  5. در مرحله بعد، مشابه گزینه خرید، موجودی منطقه‌ای را برای گزینه خرید اجاره پیکربندی کنید. مراحل ۶ و ۷ را در بخش قبل ببینید. هنگام تنظیم قیمت‌های منطقه‌ای، قیمت متفاوتی برای اجاره تعیین کنید. به عنوان مثال:
    • France - ۵ یورو
    • Spain - ۴ یورو
    • United States - 7 دلار آمریکا

۵. جزئیات محصول را که فقط یک بار لازم است ترجمه کنید

شما می‌توانید با استفاده از قابلیت ترجمه ماشینی موجود در کنسول گوگل پلی، نام و توضیحات محصول خود را بدون هیچ هزینه اضافی ترجمه کنید.

برای ترجمه عنوان و توضیحات، موارد زیر را انجام دهید:

  1. در کنسول گوگل پلی ، از منوی ناوبری سمت چپ، به بخش «افزایش کاربران > ترجمه‌ها > فروشگاه و محصولات درون‌برنامه» بروید.
  2. روی ایجاد سفارش کلیک کنید.
  3. گزینه «ترجمه ماشینی بدون هزینه» را انتخاب کنید و سپس روی «بعدی» کلیک کنید.
  4. از قسمت ترجمه به زبان‌ها، فرانسوی - fr-FR و اسپانیایی -es-ES را انتخاب کنید و سپس روی بعدی کلیک کنید.
  5. محصولات و اشتراک‌های یکبار مصرف را انتخاب کنید و سپس روی ترجمه و مشاهده ترجمه‌ها کلیک کنید. این یک بنر سلب مسئولیت را نمایش می‌دهد. سلب مسئولیت را تأیید کنید.
  6. اکنون لیست زبان‌های ترجمه شده را مشاهده خواهید کرد. روی «بررسی» کلیک کنید و برای یک زبان درخواست دهید . متن را مرور کنید و سپس روی «اعمال همه ترجمه‌ها» کلیک کنید. این مرحله را برای همه زبان‌هایی که برای ترجمه انتخاب کرده‌اید تکرار کنید.

پس از ترجمه، می‌توانید متن ترجمه شده را در کنسول Play ویرایش کنید. برای ویرایش متن ترجمه شده:

  1. محصولات یکبار مصرف > [محصول یکبار مصرف شما] > ویرایش محصول یکبار مصرف > صفحه ویرایش جزئیات محصول یکبار مصرف را باز کنید.
  2. زبان مورد نظر را از منوی کشویی زبان انتخاب کنید. این متن را به زبان انتخاب شده نشان می‌دهد. تصویر زیر انتخاب زبان برای ویرایش متن ترجمه شده را نشان می‌دهد:

    ویرایش-ترجمه‌ها.png شکل ۳ : ویرایش متن ترجمه شده.
  3. متن را در صورت نیاز ویرایش کنید و سپس روی ذخیره تغییرات کلیک کنید.

متن ترجمه شده بر اساس تنظیمات زبان گوشی کاربر برای او قابل مشاهده است. برای مثال، اگر زبان گوشی کاربر روی فرانسه تنظیم شده باشد، عنوان و توضیحات محصول یکبار مصرف به زبان فرانسوی نمایش داده می‌شود. تصویر نمونه زیر نشان می‌دهد که متن ترجمه شده چگونه و کجا در زبان‌های مختلف نمایش داده می‌شود.

ترجمه-پست.png شکل ۴ : متن ترجمه شده در برنامه شما.

ویدیوی پیکربندی ترجمه

ویدیوی زیر مراحل پیکربندی ترجمه را که قبلاً توضیح داده شده است، نشان می‌دهد.

۶. با PBL ادغام کنید

برای ادغام برنامه خود با کتابخانه پرداخت Play (PBL) ، مراحل زیر را انجام دهید:

  1. وابستگی Play Billing Library را به برنامه نمونه اضافه کنید.
    dependencies {
    val billing_version = "8.0.0"
    
    implementation("com.android.billingclient:billing-ktx:$billing_version")
    }
    
  2. BillingClient را مقداردهی اولیه کنید. BillingClient، SDK کلاینت است که در برنامه شما قرار دارد و با کتابخانه Play Billing ارتباط برقرار می‌کند. قطعه کد زیر نحوه مقداردهی اولیه کلاینت صورتحساب را نشان می‌دهد.
    private BillingClient createBillingClient() {
    return BillingClient.newBuilder(activity)
        .enablePendingPurchases(PendingPurchasesParams.newBuilder().enableOneTimeProducts().build())
        // For one-time products, add a listener to process and acknowledge the purchases. This will notify
        // Google the purchase was processed.
        // For client-only apps, use billingClient.acknowledgePurchase().
        // If you have a secure backend, you must acknowledge purchases on your server using the
        // server-side API.
        // See https://developer.android.com/google/play/billing/security#acknowledge
        // In this sample snippet purchases aren't processed. You must
        // implement your business logic to process and acknowledge the purchases.
        .setListener((billingResult, purchases) -> {})
        .enableAutoServiceReconnection()
        .build();
     }
    
  3. اتصال به گوگل پلی. قطعه کد زیر نحوه اتصال به گوگل پلی را نشان می‌دهد.
    /**
    * Starts the billing connection with Google Play. This method should be called exactly once
    * before any other methods in this class.
    *
    * @param productList The list of products to query for after the connection is established.
    */
    public void startBillingConnection(List<Product> productList) {
        billingClient.startConnection(
            new BillingClientStateListener() {
            @Override
            public void onBillingSetupFinished(BillingResult billingResult) {
                if (billingResult.getResponseCode() == BillingResponseCode.OK) {
                Log.d(TAG, "Billing Client Connection Successful");
                queryProductDetails(productList);
                } else {
                Log.e(TAG, "Billing Client Connection Failed: " + billingResult.getDebugMessage());
                listener.onBillingSetupFailed(billingResult); // Propagate the error to the listener to show a message to the user.
                }
            }
    
            @Override
            public void onBillingServiceDisconnected() {
                Log.e(TAG, "Billing Client Connection Lost");
                listener.onBillingError("Billing Connection Lost");
            }
            });
    }
    
  4. جزئیات محصول یکبار مصرف را دریافت کنید. پس از ادغام برنامه خود با PBL، باید جزئیات محصول یکبار مصرف را در برنامه خود دریافت کنید. قطعه کد زیر نحوه دریافت جزئیات محصول یکبار مصرف را در برنامه شما نشان می‌دهد.
    private void queryProductDetails(List<Product> productList) {
        QueryProductDetailsParams queryProductDetailsParams =
            QueryProductDetailsParams.newBuilder().setProductList(productList).build();
    
        billingClient.queryProductDetailsAsync(
            queryProductDetailsParams,
            new ProductDetailsResponseListener() {
            @Override
            public void onProductDetailsResponse(
                BillingResult billingResult, QueryProductDetailsResult productDetailsResponse) {
                if (billingResult.getResponseCode() == BillingResponseCode.OK) {
                List<ProductDetails> productDetailsList =
                    productDetailsResponse.getProductDetailsList();
                    listener.onProductDetailsResponse(productDetailsList);
                } else {
                Log.e(TAG, "QueryProductDetailsAsync Failed: " + billingResult.getDebugMessage());
                listener.onBillingError("Query Products Failed: " + billingResult.getResponseCode());
                }
            }
            });
    }
    
    دریافت محصول یک‌بار مصرف (در این مثال trending_movie_1 ) در ProductDetails ، پاسخی مشابه موارد زیر به شما می‌دهد:
    {
        "productId": "trending_movie_1",
        "type": "inapp",
        "title": "Purrfect Mayhem: The Rewind Protocol (Movies All Day | Play Samples)",
        "name": "Purrfect Mayhem: The Rewind Protocol",
        "description": "Dr. Arid Thorne and a smart tiger named Yolo find a mysterious tape. It's a \"Rewind Protocol\" to fix time. A shadowy group, the Clockinator, hunts them to seize the tape's power.",
        "skuDetailsToken": "<---skuDetailsToken--->",
        "oneTimePurchaseOfferDetails": {},
        "oneTimePurchaseOfferDetailsList": [
            {
                "priceAmountMicros": 13000000,
                "priceCurrencyCode": "USD",
                "formattedPrice": "$13.00",
                "offerIdToken": "<---buy offerIdToken --->",
                "purchaseOptionId": "buy-option",
                "offerTags": [
                    "adventure",
                    "mystery"
                ]
            },
            {
                "priceAmountMicros": 7000000,
                "priceCurrencyCode": "USD",
                "formattedPrice": "$7.00",
                "offerIdToken": "<---rent offerIdToken--->",
                "purchaseOptionId": "rent-option",
                "offerTags": [
                    "adventure",
                    "mystery"
                ],
                "rentalDetails": {
                    "rentalPeriod": "P30D",
                    "rentalExpirationPeriod": "PT24H"
                }
            }
        ]
    }
    
    توجه داشته باشید که گزینه‌های خرید و اجاره در oneTimePurchaseOfferDetailsList موجود هستند. این لیست دارای ۲ گزینه خرید ( buy-option و rent-option ) است که در Play Console پیکربندی شده‌اند. می‌توانید هر گزینه خرید را به طور منحصر به فرد با offerIdToken آن شناسایی کنید.
  5. توکن‌های پیشنهاد را برای پیشنهادهای اجاره و خرید دریافت کنید. برای شروع جریان صورتحساب در مرحله ۶ به توکن‌های پیشنهاد نیاز دارید.
    @Override
    public void onProductDetailsResponse(List<ProductDetails> productDetailsList) {
    
        if (productDetailsList != null && !productDetailsList.isEmpty()) {
    
            // Iterate over all details of the queried product in step 4.
            for (ProductDetails productDetails : productDetailsList) {
    
                // Get the list of all the offers associated with the product.
                List<ProductDetails.OneTimePurchaseOfferDetails> offerDetailsList =
                        productDetails.getOneTimePurchaseOfferDetailsList();
    
                // Iterate over the offer details
                for (ProductDetails.OneTimePurchaseOfferDetails offerDetails : offerDetailsList) {
    
                    // For a Rent purchase option, the
                    // offerDetails.getRentalDetails() method returns
                    // the rent information. If this information is present,
                    // the offer corresponds to a Rent purchsae option.
                    if (offerDetails.getRentalDetails() != null) {
                        rentFormattedPrice = offerDetails.getFormattedPrice();
    
                        // Get the offerIdToken for the Rent purchase option
                        rentOfferToken = offerDetails.getOfferToken();
                        rentMovieTags = offerDetails.getOfferTags();
                    }
                    // If the offerDetails.getRentalDetails() returns
                    // null, the offer corresponds to a Buy purchsae option.
                    else {
                        buyFormattedPrice = offerDetails.getFormattedPrice();
    
                        // Get the offerIdToken for the Buy purchase option
                        buyOfferToken = offerDetails.getOfferToken();
                        buyMovieTags = offerDetails.getOfferTags();
                    }
                }
                updateUIButtons();
                return;
    
            }
        } else {
            Log.e(TAG, "No product details found for " + productId);
        }
    }
    
  6. جریان صورتحساب را راه اندازی کنید.
    /**
     * Launches the billing flow for the product with the given offer token.
    *
    * @param activity The activity instance from which the billing flow will be launched.
    * @param productDetails The product details of the product to purchase.
    * @param offerToken The offer token of the product to purchase.
    * @return The result of the billing flow.
    */
    public void launchPurchase(Activity activity, ProductDetails productDetails, String offerToken) {
        ImmutableList<BillingFlowParams.ProductDetailsParams> productDetailsParamsList =
            ImmutableList.of(
                BillingFlowParams.ProductDetailsParams.newBuilder()
                    .setProductDetails(productDetails)
                    .setOfferToken(offerToken)
                    .build());
        BillingFlowParams billingFlowParams = BillingFlowParams.newBuilder()
            .setProductDetailsParamsList(productDetailsParamsList)
            .build();
        billingClient.launchBillingFlow(activity, billingFlowParams);
    }
    

نکته : همچنین می‌توانید اعلان‌های توسعه‌دهنده‌ی بلادرنگ (RTDN) را برای پیاده‌سازی کمپین‌های بازگشت به خرید و سایر استراتژی‌های مدیریت چرخه‌ی عمر خرید تنظیم کنید. برای درک نحوه‌ی تنظیم RTDN و مدیریت اعلان‌ها با ردیابی و حق دقیق، توصیه می‌شود که codelab مربوط به Maximize Your Play Billing Integration را مطالعه کنید.

۷. گزینه‌های خرید را امتحان کنید

قبل از اینکه محصولات یکبار مصرف خود را در برنامه زنده خود در دسترس قرار دهید، می‌توانید ادغام PBL خود را با استفاده از آزمایش‌کنندگان مجوز و آزمایشگاه صورتحساب Play آزمایش کنید.

شما یاد خواهید گرفت که چگونه بومی‌سازی قیمت و در دسترس بودن را آزمایش کنید، به طوری که برنامه فقط در برخی مناطق با قیمت متفاوت برای هر منطقه در دسترس باشد.

پیش‌نیازها

قیمت‌گذاری منطقه‌ای را برای گزینه‌های خرید آزمایش کنید

برای آزمایش قیمت‌گذاری منطقه‌ای برای گزینه‌های خرید، موارد زیر را انجام دهید:

  1. برنامه Play Billing Lab را باز کنید و سپس به عنوان یک آزمایش‌کننده مجوز وارد شوید.
  2. در تنظیمات پیکربندی ، روی ویرایش کلیک کنید، کشور France را انتخاب کنید و سپس روی اعمال کلیک کنید. در اینجا ما کشور پخش را انتخاب می‌کنیم که واحد پولی را که در برنامه نمایش داده می‌شود تعیین می‌کند.
  3. برنامه نمونه را ببندید و دوباره باز کنید. اکنون باید ارز خرید و اجاره برای France به یورو نشان داده شود.

برای آزمایش برای یک کشور دیگر، در مرحله ۲ Spain انتخاب کنید و سپس مرحله ۳ را انجام دهید.

ویدیوی تست آزمایشگاه صورتحساب را پخش کنید

ویدیوی زیر مراحل آزمایش قیمت منطقه‌ای را با استفاده از برنامه نمونه نشان می‌دهد.

۸. مراحل بعدی

اسناد مرجع

۹. تبریک می‌گویم!

تبریک! شما با موفقیت در کنسول گوگل پلی برای ایجاد یک محصول یکبار مصرف جدید، پیکربندی گزینه خرید و آزمایش جریان خرید با استفاده از آزمایشگاه صورتحساب پلی، پیمایش کردید. اکنون درک عمیق‌تری از کاتالوگ انعطاف‌پذیر محصولات گوگل پلی برای خریدهای یکبار مصرف دارید.

نظرسنجی

بازخورد شما در مورد این آزمایشگاه کد بسیار ارزشمند است. چند دقیقه وقت بگذارید و نظرسنجی ما را تکمیل کنید.