מוצרים מרובים בחיוב חד-פעמי

במאמר הזה מוסבר איך לשלב את האפליקציה עם התכונה 'מספר מוצרים' של ספריית החיובים ב-Play‏ (PBL).

התכונה 'מוצרים מרובים בחיוב חד-פעמי' מאפשרת לכם לשלב כמה מוצרים בחיוב חד-פעמי ליחידה אחת. אחרי זה אפשר לקנות את חבילות המוצרים האלה, לחייב אותן ולנהל אותן ביחד. אתם יכולים גם ליצור מבצעים עם הנחות על חבילות ה-OTP האלה כדי לעודד רכישת מוצרים.

שיקולים

כשיוצרים חבילות מוצרים בחיוב חד-פעמי, חשוב לקחת בחשבון את הנקודות הבאות:

  • אי אפשר לכלול מינויים בחבילת מוצרים בחיוב חד-פעמי.
  • אי אפשר לכלול גם תוכן דיגיטלי וגם שירות באותו חבילת מוצרים בחיוב חד-פעמי.
  • המוצרים בחבילה בחיוב חד-פעמי צריכים להיות זמינים להורדה מיידית. לדוגמה, אי אפשר להזמין מראש חבילת מוצרים בחיוב חד-פעמי כי היא לא זמינה להורדה מיידית.
  • האפשרות 'מוצרים מרובים בחיוב חד-פעמי' לא תומכת באפשרות הרכישה של השכרה.

שילוב עם ספריית החיובים ב-Play

בקטע הזה מניחים שאתם מכירים את השלבים הראשוניים בשילוב של PBL, כמו הוספת התלות של PBL לאפליקציה, הפעלה של BillingClient והתחברות ל-Google Play. בקטע הזה נתמקד בהיבטים של שילוב PBL שספציפיים לרכישות של כמה מוצרים באמצעות OTP.

הפעלת תהליך רכישה

כדי להשיק תהליך רכישה של מוצרים מרובים בחיוב חד-פעמי, מבצעים את השלבים הבאים:

  1. יוצרים רשימת מוצרים שכוללת את כל המוצרים בחיוב חד-פעמי באמצעות השיטה QueryProductDetailsParams.Builder.setProductList.

  2. אפשר לאחזר את כל המוצרים בחיוב חד-פעמי באמצעות השיטה BillingClient.queryProductDetailsAsync.

    בדוגמה הבאה אפשר לראות איך מאחזרים את כל המוצרים החד-פעמיים:

    Java

    billingClient.queryProductDetailsAsync(
    queryProductDetailsParams,
    new ProductDetailsResponseListener() {
      public void onProductDetailsResponse(
          BillingResult billingResult, QueryProductDetailsResult productDetailsResult) {
        // check billingResult
        // …
        // process productDetailsList returned by QueryProductDetailsResult
        ImmutableList productDetailsList = productDetailsResult.getProductDetailsList();
        for (ProductDetails productDetails : productDetailsList) {
          for (OneTimePurchaseOfferDetails oneTimePurchaseOfferDetails :
              productDetails.getOneTimePurchaseOfferDetailsList()) {
                 // …
          }
        }
      }
    });
  3. מגדירים את אובייקט ProductDetails לכל מוצר בחיוב חד-פעמי.

  4. מציינים את פרטי המוצר בחיוב חד-פעמי בשיטה BillingFlowParams.Builder.setProductDetailsParamsList. המחלקות BillingFlowParams מציינות את הפרטים של תהליך הרכישה.

    הדוגמה הבאה מראה איך מפעילים את רצף פעולות החיוב לרכישת OTP של כמה מוצרים:

    Java

    BillingClient billingClient =
       BillingClient.newBuilder()
        // set other options
        .build();
    // ProductDetails obtained from queryProductDetailsAsync().
    ProductDetails productDetails1 = ...;
    ProductDetails productDetails2 = ...;
    ArrayList productDetailsList = new ArrayList<>();
    productDetailsList.add(productDetails1);
    productDetailsList.add(productDetails2);
    BillingFlowParams billingFlowParams =
    BillingFlowParams.newBuilder()
        .setProductDetailsParamsList(productDetailsList)
        .build();
    billingClient.launchBillingFlow(billingFlowParams);

עיבוד רכישות

התהליך של עיבוד רכישות של כמה מוצרים בחיוב חד-פעמי זהה לתהליך של עיבוד רכישות קיימות של פריט יחיד, כפי שמתואר במאמר שילוב ספריית החיובים ב-Google Play באפליקציה. ההבדל היחיד הוא שצריך להעניק הרשאה לכל המוצרים במקום רק לאחד ברכישות של כמה מוצרים בחיוב חד-פעמי, כדי שהמשתמש יוכל לקבל כמה הרשאות ברכישה אחת. רכישה של כמה מוצרים באמצעות OTP מחזירה כמה פריטים שאפשר לאחזר באמצעות Purchase.getProducts() בספריית החיוב של Google Play, ואז את הרשימה lineItems ב-purchases.products.get של Google Play Developer API.

התראות בזמן אמת למפתחים

השדה sku לא מסופק ב-RTDN לרכישות של כמה מוצרים באמצעות קוד אימות חד-פעמי. רכישות של כמה מוצרים באמצעות סיסמה חד-פעמית מייצגות יותר ממוצר אחד. לכן, אתם יכולים להשתמש בממשקי Play Developer API כדי לקבל את נתוני הרכישה ולראות את כל הפריטים שכלולים בה.

החזרים כספיים

ברכישת כרטיס חד-פעמי של כמה מוצרים, המשתמשים לא יכולים לבקש החזרים כספיים על פריטים ספציפיים, וגם אתם לא יכולים להנפיק החזרים כספיים על פריטים ספציפיים. עם זאת, אפשר לבקש ולבצע החזרים כספיים על רכישת כרטיס חד-פעמי שכולל כמה מוצרים. אם מבטלים רכישת מינוי OTP למספר מוצרים עבור משתמש, כל הזכויות שמשויכות לרכישה מבוטלות.

דוחות פיננסיים והתאמות

אפשר להשתמש בדוח הרווחים כדי להשוות בין הרכישות הפעילות של חבילות מוצרים שמשולמות בתשלום חד-פעמי לבין התשלומים והעסקאות ב-Play. לכל פריט בשורת עסקה יש מזהה הזמנה. ברכישת OTP של כמה מוצרים, הדוחות 'רווחים' ו'מכירות משוערות' יכללו שורות נפרדות (עם אותו מזהה הזמנה) לכל עסקה, כמו חיוב, עמלה, מס והחזר כספי, לכל פריט שכלול בה.

ללוחות בקרה ב-Play Console:

  • הנתונים הסטטיסטיים של ההכנסות שמוצגים בקטע דוחות פיננסיים ב-Console מפורטים לפי מוצרים בודדים.

  • בניהול ההזמנות משתקפות רכישות של כמה מוצרים בהזמנה אחת, ומוצגות רשימות מפורטות של מה שנרכש. בניהול ההזמנות, אפשר לבטל רכישה של משתמש, לבטל את המינוי שלו או להעניק לו החזר כספי מלא.