הגדרת סוגי תשלום שונים

פלטפורמת 'מרכז הפעולות' תומכת במגוון מערכי הגדרות אישיות על קבלת תשלומים. המדריך להפעלת תשלומים עוסק בהיבטים של השילוב נפוצים לכל שילוב התשלומים, כולל:

  1. הגדרת פידים כך שיכללו מידע על tokenization_parameter
  2. אנחנו מעדכנים את שרת ההזמנות כדי לאשר את payment_method_token אובייקטים
  3. סקירה כללית של המידע שנשלח בין המשתמש, מרכז הפעולות השותף או המוכר והספק לעיבוד התשלומים.

במדריך הזה נסביר בפירוט איך להגדיר את הפידים כדי לציין אילו מהסוגים השונים של הגדרות התשלומים רלוונטיות למוֹכרים ולשירותים שלך.

  1. ללא תשלומים / תשלום בהגעה
  2. תשלום מלא מראש
  3. ללא עמלת הצגה / עמלת ביטול
  4. הפקדה

כל התרחישים לדוגמה של תשלומים הם הרחבות של 'ללא תשלומים' / תרחיש לדוגמה של תשלום על ההגעה (שלא מצריך הגדרת תשלום), לכן נתחיל בתיאור של התצורה הזו ונטפל כתוספים.

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

ללא תשלומים / תשלום בהגעה

לגבי שירותים שלא מחייבים תשלום בזמן ההזמנה, לא נדרשת הגדרת תשלומים אצל המוכר או בשירות ברמה. עם זאת, עדיין יש צורך במחירים.

זוהי ההגדרה הבסיסית לשירות, שמכילה שם, תיאור ומחיר. זו תהיה הודעת שירות אחת בתוך ServiceFeed:

JSON

{
    "merchant_id": "merchant-1",
    "service_id": "service-1-a",
    "name": "Men's haircut",
    "description": "One of our stylists will cut your hair",
    "price": {
        "price_micros": 15000000,
        "currency_code": "USD"
    }
}

לא נדרשת הגדרה נוספת מעבר להטמעה הרגילה בשרת ההזמנות כדי לתמוך בתשלום בהגעה.

תשלום מראש

התצורה הזו משמשת כדי לציין שסכום השירות צריך לשלם את הסכום במלואו בזמן ביצוע ההזמנה.

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

JSON

{
    "merchant_id": "merchant-1",
    "service_id": "service-2-b",
    "name": "Spa Treatment",
    "description": "A full spa treatment",
    "price": {
        "price_micros": "200000000",
        "currency_code": "USD"
    }
    "prepayment_type": "REQUIRED"
}

שרת הזמנות

כשמקבלים תשלומים מראש, אסימון תשלום מועבר להזמנה השרת בקריאה אל CreateBooking על השדה payment_processing_parameters.unparsed_payment_method_token עליך לחייב בדיוק את הסכום שצוין באמצעות בשדה המחיר בפידים, וצריך להשתמש במטבע שצוינו בפידים. החיובים צריכים להתבצע לפי התהליך שמתואר ב הפעלת מדריך התשלומים.

כאשר מחזירים CreateBookingResponse צריך להגדיר את השדה booking.payment_information כמו שצריך משקפים שהתשלום מראש סופק ועובד.

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

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

JSON

{
    "prepayment_status": "PREPAYMENT_PROVIDED",
    "payment_processed_by": "PROCESSED_BY_PARTNER",
    "payment_transaction_id": "[this-transaction-id]",
    "price": {
        "price_micros": "200000000",
        "currency_code": "USD"
    }
}

דמי אי-הגעה

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

כדי לציין עמלת אי-הצגה בפיד השירות, צריך לכלול את המאפיין הבא: השדה no_show_fee כמו בדוגמה הבאה:

JSON

{
    "merchant_id": "merchant-1",
    "service_id": "service-2-b",
    "name": "Spa Treatment",
    "description": "A full spa treatment",
    "price": {
        "price_micros": 200000000,
        "currency_code": "USD"
    }
    "scheduling_rules": {
        "min_advance_online_canceling": 14400,
    }
    "no_show_fee": {
        "fee": {
            "price_micros": 25000000,
            "currency_code": "USD"
        }
        "fee_type": "FIXED_RATE_DEFAULT"
    }
}

בדוגמה שלמעלה, השותף או המוכר מורשים נחייב אותך בתעריף קבוע בסך 100 ש"ח, כמפורט השדה no_show_fee.fee.price_micros, אם עומד בפגישה לא משתתף בפגישה. ייתכן שתחויבו גם אם המשתמש יבוטל במהלך 4 השעות (14,400 שניות) לפני הפגישה, כפי מצוין בscheduling_rules.min_advance_online_canceling השדה הזה.

כדי לראות איך אי אפשר להגדיר עמלות הצגה ברמת הזמינות, אפשר לעיין בקטע הקטע הזה.

שרת הזמנות

במהלך עיבוד בקשה שכוללת עמלת אי-הגעה, אסימון תשלום מועבר לשרת ההזמנות שלכם בשיחה CreateBooking על השדה payment_processing_parameters.unparsed_payment_method_token האסימון הזה מועבר באותו אופן כמו בתשלום מראש מותאמת אישית. עם זאת, מאחר שהאסימון מורשה רק למשך פרק זמן קצר, עליכם להפעיל את ה-API הרלוונטי של מעבד התשלומים אל לשדרג את האסימון הזה לגרסה שאפשר להשתמש בה בכל מאוחר יותר. המצב הזה מתואר בקטע 'הפעלת המדריך בנושא תשלומים' על תהליך של אסימון עמלה על אי-הצגה.

כאשר מחזירים CreateBookingResponse צריך להגדיר את השדה booking.payment_information בצורה תקינה לחזור לסטטוס של עמלת אי-ההצגה כמו בדוגמה הבאה.

JSON

{
    "prepayment_status": "PREPAYMENT_PROVIDED",
    "payment_processed_by": "PROCESSED_BY_PARTNER",
    "payment_transaction_id": "[this-transaction-id]",
    "price": {
        "price_micros": "200000000",
        "currency_code": "USD"
    }
    "no_show_fee": {
        "fee": {
            "price_micros": 25000000,
            "currency_code": "USD"
        }
        "fee_type": "FIXED_RATE_DEFAULT"
    }
}

לתשומת ליבכם: no_show_fee מוגדר לשקף את המחיר של העמלה. חשוב גם לשים לב שבדומה דוגמה לתשלום מראש, נדרש transaction_id בהודעה הזו.

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

עדכונים בזמן אמת

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

הזמנות שנוצרו על ידי CreateBooking, צריך לשלוח עדכון אל notification.partners.bookings.patch בגוף הבקשה הזו צריך להיות ההזמנה המעודכנת, בסטטוס מוגדר כ: NO_SHOW_PENALIZED הסטטוס הזה מודיע ל-Google שחיוב נוצרה.

לדוגמה: ניתן לשלוח בקשה אל:

PATCH https://mapsbooking.googleapis.com/v1alpha/notification/partners/12345678/bookings/123123123?updateMask=status

עם גוף בקשה:

JSON

{
    "name": "partners/12345678/bookings/123123123"
    "merchantId": "merchant-1"
    "serviceId": "service-2-b"
    "status": "NO_SHOW_PENALIZED"
}

הפקדה

הפקדות משמשות לגביית חיוב ראשוני כדרישה עבור הזמנה. אפשר לחייב את הפיקדון בזמן ההזמנה או במועד מאוחר יותר בזמן האימון. ייתכן שיהיה עליך להגדיר באילו תנאים ניתן לקבל החזר כספי על הפקדה וגם מקרים שבהם אפשר לבטל הזמנה אונליין.

כדי לציין הפקדה, בפיד השירות יש לכלול את השדה deposit כמו בדוגמה הבאה:

JSON

{
    "merchant_id": "merchant-1",
    "service_id": "service-2-b",
    "name": "Spa Treatment",
    "description": "A full spa treatment",
    "price": {
        "price_micros": 200000000,
        "currency_code": "USD"
    }
    "scheduling_rules": {
        "min_advance_online_canceling": 86400,
    }
    "deposit": {
        "deposit": {
            "price_micros": 25000000,
            "currency_code": USD,
            "min_advance_cancellation_sec": 14400,
        }
        "deposit_type": "FIXED_RATE_DEFAULT"
    }
}

במשפט הזה, min_advance_online_canceling מגדיר את חלון הביטול ואת deposit.min_advance_cancellation_sec מגדיר מתי ניתן לקבל החזר על ההפקדה. שימו לב שבדוגמה שלמעלה הפקדה יכולה לציין זמן הביטול בנפרד מתנאי ההחזר הכספי. במקרה כזה, משתמש יוכל לבטל את השירות באינטרנט עד 24 שעות מראש (86,400 שניות). כך אפשר לוודא שהמוכר להודיע ישירות על ביטולים מאוחרים. עם זאת, המשתמש עדיין עשוי זכאי להחזר כספי על ההפקדה עד 4 שעות מראש (14,400 שניות) לפני ההזמנה (על ידי יצירת קשר איתך או עם המוכר לצורך ביטול), שיוצג בתנאים בקופה ובהודעת האישור באימייל.

כדי לראות איך אפשר להגדיר הפקדות ברמת הזמינות: הקטע הזה.

שרת הזמנות

בעת עיבוד בקשה שכוללת הפקדה, אסימון תשלום מועבר לשרת ההזמנות שלכם בשיחה אל CreateBooking על השדה payment_processing_parameters.unparsed_payment_method_token האסימון הזה מועבר באותו אופן כמו במקרה של תשלום מראש. אם לחייב את הפיקדון או להסיר את עצירת התשלום בזמן ההזמנה, אפשר לעשות זאת במהלך הבקשה הזו.

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

כאשר מחזירים CreateBookingResponse השדה booking.payment_information חייב להחזיר כראוי את סטטוס ההפקדה, כמו בדוגמה הבאה.

JSON

{
    "prepayment_status": "PREPAYMENT_PROVIDED",
    "payment_processed_by": "PROCESSED_BY_PARTNER",
    "payment_transaction_id": "[this-transaction-id]",
    "price": {
        "price_micros": "200000000",
        "currency_code": "USD"
    }
    "deposit": {
        "deposit": {
            "price_micros": 25000000,
            "currency_code": USD,
            "min_advance_cancellation_sec": 28800,
        }
        "deposit_type": "FIXED_RATE_DEFAULT"
    }
}

שים לב שההפקדה מוגדרת לשקף את המחיר והמבנה של שההפקדה שבה תחויב או תשהה. חשוב גם לשים לב שבדומה דוגמה לתשלום מראש, נדרש transaction_id בהודעה הזו.

עדכונים בזמן אמת

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

הזמנות שנוצרו על ידי CreateBooking, צריך לשלוח עדכון אל notification.partners.bookings.patch בגוף ההודעה הבקשה צריכה להיות ההזמנה המעודכנת, עם סטטוס מוגדר ל: CANCELED וגם השדה paymentInformation.prepaymentStatus הוגדר לערך PREPAYMENT_REFUNDED. הפעולה הזו מיידעת את Google שההפקדה בוצע החזר כספי.

לדוגמה: ניתן לשלוח בקשה אל:

PATCH https://mapsbooking.googleapis.com/v1alpha/notification/partners/12345678/bookings/123123123?updateMask=status

עם גוף בקשה:

JSON

{
    "name": "partners/12345678/bookings/123123123"
    "merchantId": "merchant-1"
    "serviceId": "service-2-b"
    "status": "CANCELED"
    "paymentInformation": {
      "prepaymentStatus": "PREPAYMENT_REFUNDED"
    }
    
}

נדרש כרטיס אשראי

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

כדי לדרוש שיסופק כרטיס אשראי במהלך התשלום בקופה, צריך להגדיר השדה require_credit_card כדי REQUIRE_CREDIT_CARD_ALWAYS.

JSON

{
    "merchant_id": "merchant-1",
    "service_id": "service-1-a",
    "name": "Men's haircut",
    "description": "One of our stylists will cut your hair",
    "price": {
        "price_micros": 15000000,
        "currency_code": "USD"
    },
    "require_credit_card": "REQUIRE_CREDIT_CARD_ALWAYS"
}

שרת הזמנות

בעת עיבוד בקשה שכוללת דרישה לכרטיס אשראי, האסימון מועבר לשרת ההזמנות CreateBooking על השדה payment_processing_parameters.unparsed_payment_method_token האסימון הזה מועבר באותו אופן כמו בתשלום מראש מותאמת אישית. עם זאת, מאחר שהאסימון מורשה רק למשך פרק זמן קצר, עליכם להפעיל את ה-API הרלוונטי של מעבד התשלומים אל לשדרג את האסימון הזה לגרסה שאפשר להשתמש בה בכל מאוחר יותר.

לא נדרש מידע נוסף בתגובה של שרת ההזמנות מעבר לתרחיש לדוגמה של תשלום על הגעה.

ביטול תמחור ברמת הזמינות

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

  • המחירים מוזלים בימי שלישי ועולים בימי שבת.
  • שעות ההצגה לא חלות על הזמינות בין 17:00 ל-19:00.

בטבלה הבאה מפורטים השדות של כל אמצעי תשלום או עמלה להשתמש בו בפיד הזמינות כדי לשנות את הגדרת רמת השירות.

סוג תשלום עמלה / הגדרת מחיר אפשר לבטל?
תשלום בהגעה Service.price ניתן לשנות את המחיר באמצעות הפניות ל-Availability.payment_option_id Merchant.payment_option
תשלום מראש Service.price ניתן לשנות את המחיר באמצעות הפניות ל-Availability.payment_option_id Merchant.payment_option
אין דמי הצגה Service.no_show_fee Availability.no_show_fee
הפקדה Service.deposit Availability.deposit
נדרש כרטיס אשראי Service.require_credit_card Availability.require_credit_card

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