تتيح منصة "مركز الإجراءات" مجموعة متنوعة من الإعدادات لتلقّي الدفعات. يتناول دليل تفعيل ميزة الدفعات جوانب الدمج التي تكون شائعة لجميع عمليات دمج ميزة الدفعات، بما في ذلك:
- ضبط الخلاصات لتضمين معلومات
tokenization_parameter
- تعديل خادم الحجز لقبول عناصر
payment_method_token
- نظرة عامة على المعلومات التي يتم تبادلها بين المستخدم و"مركز الإجراءات" والشريك / التاجر ومعالج المعاملات
سنتناول في هذا الدليل بالتفصيل كيفية ضبط خلاصاتك لتحديد أنواع إعدادات الدفع المختلفة التي تنطبق على التجّار والخدمات.
- لا يتم تحصيل أي دفعات / الدفع عند الوصول
- الدفع المُسبَق بالكامل
- بدون رسوم عدم الحضور / رسوم إلغاء
- إيداع
جميع حالات استخدام الدفعات هي امتدادات لحالة استخدام "عدم إجراء أي دفعات" / "الدفع عند الوصول" (التي لا تتطلّب ضبط إعدادات الدفع)، لذا سيبدأ هذا الدليل التمهيدي بوصف هذه الإعدادات والتعامل مع الإعدادات الأخرى على أنّها امتدادات.
سيتناول كل قسم أيضًا الحقول التي يجب تتبُّعها في خادم الحجز لقبول إعدادات الدفع المحدّدة.
لا يتم تحصيل أي دفعات / الدفع عند الوصول
بالنسبة إلى الخدمات التي لا تتطلّب أي دفعة في وقت الحجز، ليس عليك ضبط إعدادات الدفع على مستوى التاجر أو الخدمة. ومع ذلك، لا تزال الأسعار مطلوبة.
هذه هي الإعدادات الأساسية لخدمة معيّنة، والتي تحتوي على
اسم ووصف وسعر. ستكون هذه رسالة خدمة واحدة
ضمن
ServiceFeed
:
{ "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
كما هو موضّح في المثال أدناه. يُرجى العلم أنّه
يتم تحديد السعر بالطريقة نفسها المتّبعة في مثال الدفع عند الوصول. في هذه الحالة،
بما أنّنا نضبط نوع الدفع المُسبَق على "مطلوب"، سيتم جمع بيانات بطاقة الائتمان
ويمكن تحصيل هذا السعر في وقت الدفع.
{ "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
على مستندات
كاملة لجميع خيارات معلومات الدفع. في ما يلي مثال بسيط على
معالجة الدفعة المسبقة. من المهم أن يتطابق السعر
المعروض في حقل السعر تمامًا مع السعر المحدّد في طلب
البحث. بالإضافة إلى ذلك، إذا تم تحديد معدّل الضريبة في الخلاصات/الطلبات، يجب
تضمينه أيضًا بدقة.
يُرجى العلم أيضًا أنّه عليك تقديم معرّف معاملة. يجب أن يكون معرّف المعاملة فريدًا على الأقل بين المعاملات مع التاجر هذا. أحد المرشحين الجيدِين لمعرّف المعاملة هو معرّف المعاملة الذي تقدّمه لك جهة معالجة المعاملات.
{ "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
في خلاصة الخدمة كما هو موضّح في المثال أدناه:
{ "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
.
ويتم تمرير هذا الرمز المميّز بالطريقة نفسها المتّبعة في حالة الدفع مسبقًا. ومع ذلك، بما أنّ رمز المرور مُفوَّض لفترة قصيرة فقط،
عليك استدعاء واجهة برمجة التطبيقات ذات الصلة لمعالج الدفع لأجل
ترقية هذا الرمز إلى إصدار يمكنك الاحتفاظ به لاستخدامه في وقتٍ
لاحق. يتم وصف ذلك في قسم دليل تفعيل الدفعات
على
مسار رمز رسوم عدم الحضور.
عند عرض قيمة CreateBookingResponse
، يجب ضبط الحقلbooking.payment_information
لعرض حالة رسوم عدم الحضور بشكلٍ سليم كما هو موضّح في المثال أدناه.
{ "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
باستخدام نص طلب:
{ "name": "partners/12345678/bookings/123123123" "merchantId": "merchant-1" "serviceId": "service-2-b" "status": "NO_SHOW_PENALIZED" }
إيداع
يتم استخدام المبالغ المدفوعة مقدمًا لتحصيل رسوم أولية كشرط للحجز. يمكن تحصيل المبالغ المدفوعة مقدمًا عند الحجز أو في وقت لاحق. قد تحتاج إلى تحديد الشروط التي يمكن بموجبها ردّ المبلغ المدفوع مقدمًا، بالإضافة إلى تحديد حالات إلغاء الحجز على الإنترنت.
لتحديد مبلغ وديعة، يجب تضمين حقل
deposit
في خلاصة الخدمة كما هو موضّح في المثال أدناه:
{ "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 ساعة كحد أقصى (86400 ثانية). يضمن ذلك إبلاغ التاجر
مباشرةً بأي عمليات إلغاء متأخرة. ومع ذلك، قد يظلّ المستخدم مؤهلاً
لاسترداد المبلغ المدفوع كوديعة في غضون 4 ساعات
(14,400 ثانية) قبل الحجز (من خلال التواصل معك أو التاجر لإلغاء الحجز)،
وسيتم عرض ذلك في البنود عند الدفع وفي رسالة التأكيد الإلكترونية.
للاطّلاع على كيفية تحديد الودائع على مستوى مدى التوفّر، يُرجى الاطّلاع على هذا القسم.
خادم الحجز
عند معالجة طلب يتضمّن مبلغ وديعة، يتم توجيه رمز مميّز للدفع
إلى خادم الحجز في طلب التوجيه إلى
CreateBooking
من خلال الحقل
payment_processing_parameters.unparsed_payment_method_token
.
ويتم تمرير هذا الرمز المميّز بالطريقة نفسها المتّبعة في حالة الدفع المُسبَق. إذا كنت تحصيل المبلغ المُودع أو تزيل المبلغ المحجوز مؤقتًا في الحساب عند الحجز، يمكنك إجراء ذلك
أثناء هذا الطلب.
إذا كنت تنوي تحصيل الوديعة في وقت لاحق، لأنّ الرمز المميّز لا يُسمح به إلا لفترة زمنية قصيرة، عليك استدعاء واجهة برمجة التطبيقات ذات الصلة لمعالج الدفع لترقية هذا الرمز المميّز إلى إصدار يمكنك الاحتفاظ به لاستخدامه في وقت لاحق. تم توضيح ذلك في القسم "دليل تفعيل الدفعات" ضمن مسار إيداع الرمز المميّز.
عند عرض قيمة CreateBookingResponse
، يجب أن يعرض الحقل booking.payment_information
حالة الإيداع بشكل صحيح، كما هو موضّح في المثال أدناه.
{ "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
باستخدام نص طلب:
{ "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
.
{ "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
.
ويتم تمرير هذا الرمز المميّز بالطريقة نفسها المتّبعة في حالة الدفع مسبقًا. ومع ذلك، بما أنّ رمز المرور مُفوَّض لفترة قصيرة فقط،
عليك استدعاء واجهة برمجة التطبيقات ذات الصلة لمعالج الدفع لأجل
ترقية هذا الرمز إلى إصدار يمكنك الاحتفاظ به لاستخدامه في وقتٍ
لاحق.
لا يلزم تقديم أي معلومات إضافية في استجابة خادم الحجز غير تلك الخاصة بحالة الاستخدام "الدفع عند الوصول".
إلغاء السعر على مستوى مدى التوفّر
في جميع الأمثلة أعلاه، يتم تحديد السعر / هيكل الرسوم على مستوى الخدمة. في معظم الحالات، يجب استخدام الأسعار على مستوى الخدمة. في بعض الحالات، من المنطقي تغيير بنية الدفعات لمواضع توفّر معيّنة. على سبيل المثال، يمكن التعامل مع الحالات التالية من خلال إلغاء الأسعار أو الرسوم على مستوى مدى التوفّر:
- يتم تخفيض الأسعار أيام الثلاثاء وزيادتها أيام السبت.
- لا يتم تطبيق أي رسوم عرض على مدى التوفّر بين الساعة 5:00 مساءً و7: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
|
يُرجى العِلم أنّ إلغاء السعر على مستوى مدى التوفّر يتطلّب أولاً تحديد خيار دفع على مستوى التاجر. بالإضافة إلى ذلك، للحصول على إرشادات حول إضافة فترات الإلغاء على مستوى مدى التوفّر، يُرجى الاطّلاع على الدليل كيفية إضافة فترات الإلغاء.