פלטפורמת Reserve with Google תומכת במגוון תצורות שמאפשרות לבצע תשלומים. המדריך להפעלת תשלומים מכסה את ההיבטים של השילוב המשותף לכל התשלומים, כולל:
- הגדרת פידים כך שיכללו מידע על
tokenization_parameter
- מתבצע עדכון של שרת ההזמנות כדי לאשר
payment_method_token
אובייקטים - סקירה כללית של הפרטים שהועברו בין המשתמש, Google הזמנת מקומות, שותף / מוכר וספק שירותי התשלומים.
במדריך הזה נסביר בפירוט איך להגדיר את הפידים, כדי לציין אילו מבין סוגי התשלומים השונים רלוונטיים למוכרים ולשירותים שלכם.
- ללא תשלומים / תשלום בהגעה
- תשלום מראש מלא
- אין עמלת הצגה / עמלת ביטול
- הפקדה
כל תרחישי השימוש בפרופיל תשלומים הם תוספים של 'תשלום ללא שימוש' או 'תשלום בעת ההגעה' (שלא צריך לשלם עליהם). כדי להתחיל, צריך לקרוא את ההוראות האלה ולתאר את ההגדרה הזו כתוספים.
כל קטע יכסה גם את השדות למעקב בשרת ההזמנות כדי לקבל את תצורת התשלום הספציפית.
ללא תשלומים / תשלום בהגעה
בשירותים שבהם לא נדרש תשלום במועד ההזמנה, אין צורך להגדיר תשלומים ברמת המוכר או השירות. עם זאת, עדיין חובה לציין מחירים.
זו ההגדרה הבסיסית של שירות, שכוללת שם, תיאור ומחיר. זו תהיה הודעת שירות יחידה
בטווח
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" } }
בדוגמה שלמעלה, השותף או המוכר מורשים לגבות חיוב בשיעור קבוע של 25$, כפי שמוגדר בשדה
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
|
חשוב לשים לב שכדי לשנות את המחיר ברמת הזמינות, צריך להגדיר תחילה אפשרות תשלום ברמת המוכר. בנוסף, לקבלת הנחיות להוספת חלונות ביטול ברמת הזמינות, ניתן לעיין במדריך איך להוסיף חלונות ביטול.