ตั้งค่าประเภทการชำระเงินที่แตกต่างกัน

แพลตฟอร์ม Actions Center รองรับการกำหนดค่าที่หลากหลาย เพื่อรับการชำระเงิน การเปิดใช้คู่มือการชำระเงินครอบคลุมแง่มุมต่างๆ ของการผสานรวมที่ มีอยู่ในการผสานรวมการชำระเงินทั้งหมด ซึ่งรวมถึง

  1. การกำหนดค่าฟีดให้รวมข้อมูล tokenization_parameter
  2. กำลังอัปเดตเซิร์ฟเวอร์การจองให้ยอมรับ payment_method_token วัตถุ
  3. ภาพรวมของข้อมูลที่แลกเปลี่ยนระหว่างผู้ใช้, Actions Center พาร์ทเนอร์ / ผู้ขาย และผู้ประมวลผลการชำระเงิน

ในคู่มือนี้เราจะกล่าวถึงรายละเอียดเพิ่มเติมเกี่ยวกับ กำหนดค่าฟีดของคุณเพื่อระบุประเภทต่างๆ ของ การกำหนดค่าการชำระเงินจะมีผลกับผู้ขายและบริการของคุณ

  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 ชั่วโมง (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

โปรดทราบว่าหากต้องการลบล้างราคาที่ระดับความพร้อมจำหน่ายสินค้า คุณต้องกำหนดก่อน ตัวเลือกการชำระเงินในระดับผู้ขาย นอกจากนี้ สำหรับคำแนะนำในการเพิ่ม กรอบเวลาการยกเลิกที่ระดับความพร้อมให้บริการ โปรดดูคู่มือ วิธีเพิ่มหน้าต่างการยกเลิก