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