แพลตฟอร์ม "จองกับ 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
|
โปรดทราบว่าหากต้องการลบล้างราคาในระดับความพร้อมจําหน่ายสินค้า คุณต้องระบุตัวเลือกการชําระเงินในระดับผู้ขายก่อน นอกจากนี้ สําหรับคําแนะนําในการเพิ่มหน้าต่างการยกเลิกที่ระดับความพร้อมจําหน่ายสินค้า โปรดดูคําแนะนําในวิธีเพิ่ม Windows การยกเลิก