تحديد أنواع دفع مختلفة

تتيح منصة "مركز الإجراءات" مجموعة متنوعة من الإعدادات. لتلقّي الدفعات تشير رسالة الأشكال البيانية يتناول تفعيل دليل الدفعات جوانب عملية الدمج التي شائعة في جميع عمليات دمج عمليات الدفع، بما في ذلك:

  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"
    }
}

في المثال أعلاه، يتمّ تفويض الشريك أو التاجر تحصيل رسوم ذات سعر ثابت بقيمة 25 دولارًا أمريكيًا (أو ما يعادلها بالعملة المحلية) كما هو محدَّد في حقل no_show_fee.fee.price_micros إذا كان صاحب الموعد ولن يحضر الموعد. قد يتم تحصيل هذه الرسوم أيضًا إذا كان المستخدم يتم إلغاؤها في غضون 4 ساعات (14400 ثانية) قبل الموعد، المحدّدة في scheduling_rules.min_advance_online_canceling .

للاطّلاع على كيفية تحديد رسوم عدم التوفّر على مستوى التوفّر، يُرجى الاطّلاع على هذا القسم.

خادم الحجز

عند معالجة طلب يتضمن رسوم عدم الحضور، يجب توفير رمز مميز للدفع يتم تمريرها إلى خادم الحجز لديك في المكالمة CreateBooking حتى نهاية الملعب payment_processing_parameters.unparsed_payment_method_token يتم تمرير هذا الرمز المميّز بالطريقة نفسها المستخدَمة في الدفع المسبق الحالة. وبما أنّه لا يُسمح باستخدام الرمز المميّز إلّا لفترة قصيرة عليك استدعاء واجهة برمجة التطبيقات ذات الصلة والتابعة لمعالج الدفع ترقية هذا الرمز المميز إلى إصدار يمكنك مواصلة استخدامه في في وقت لاحق. يتم وصف ذلك في قسم "دليل تفعيل الدفعات". في مسار الرمز المميّز لرسوم عدم الحضور:

عند إرجاع 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 ساعة (86400 ثانية). وهذا يضمن أنّ التاجر على اطلاع مباشر بأي عمليات إلغاء متأخرة. ومع ذلك، ربما لا يزال المستخدم مؤهلون لاسترداد الأموال التي دفعوها قبلها بمدة تصل إلى 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 يتم تمرير هذا الرمز المميّز بالطريقة نفسها المستخدَمة في الدفع المسبق الحالة. وبما أنّه لا يُسمح باستخدام الرمز المميّز إلّا لفترة قصيرة عليك استدعاء واجهة برمجة التطبيقات ذات الصلة والتابعة لمعالج الدفع ترقية هذا الرمز المميز إلى إصدار يمكنك مواصلة استخدامه في في وقت لاحق.

ما مِن معلومات إضافية مطلوبة في ردّ خادم الحجز. بخلاف حالة استخدام الدفع عند الوصول.

إلغاء السعر على مستوى مدى التوفّر

في جميع الأمثلة المذكورة أعلاه، يتم تحديد بنية السعر / الرسوم. على مستوى الخدمة. وفي معظم الحالات، يجب أن يكون سعر مستوى الخدمة هذا استخدام البيانات المختلفة. مع ذلك، في بعض الحالات يكون من المنطقي تغيير بنية الدفعات لبعض خانات التوفر. على سبيل المثال، في الحالات التالية من خلال إلغاء الأسعار / الرسوم على مستوى التوفّر:

  • تنخفض الأسعار أيام الثلاثاء وترتفع أيام السبت.
  • لا تنطبق رسوم العرض على مدى التوفّر بين الساعة 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

لإلغاء السعر على مستوى مدى التوفّر، يجب أولاً تحديد خيار دفع على مستوى التاجر. بالإضافة إلى ذلك، للحصول على إرشادات حول إضافة فترات الإلغاء على مستوى مدى التوفّر، يُرجى الاطّلاع على الدليل كيفية إضافة فترات الإلغاء