แพลตฟอร์ม Actions Center รองรับการกำหนดค่าต่างๆ ในการรับชำระเงิน คู่มือการเปิดใช้การชำระเงินครอบคลุมแง่มุมต่างๆ ของการผสานรวมที่เกี่ยวข้องกับการผสานรวมการชำระเงินทั้งหมด ได้แก่
- การกำหนดค่าฟีดให้รวมข้อมูล
tokenization_parameter
- กำลังอัปเดตเซิร์ฟเวอร์การจองให้ยอมรับออบเจ็กต์
payment_method_token
รายการ - ภาพรวมของข้อมูลที่แลกเปลี่ยนระหว่างผู้ใช้, Actions Center, พาร์ทเนอร์ / ผู้ขาย และผู้ประมวลผลการชำระเงิน
ในคู่มือนี้เราจะพูดถึงรายละเอียดเพิ่มเติมเกี่ยวกับวิธีกำหนดค่าฟีดเพื่อระบุการกำหนดค่าการชำระเงินประเภทต่างๆ ที่ใช้ได้กับผู้ขายและบริการของคุณ
- ไม่มีการชำระเงิน / ชำระเงินเมื่อมาถึง
- ชำระล่วงหน้าเต็มจำนวน
- ค่าธรรมเนียมการไม่แสดงตัว / ค่าธรรมเนียมการยกเลิก
- เงินฝาก
Use Case สำหรับการชำระเงินทั้งหมดเป็นการขยายการใช้งาน Use Case แบบไม่ต้องชำระเงิน/จ่ายเมื่อมาถึง (ซึ่งไม่ต้องมีการกำหนดค่าการชำระเงิน) ดังนั้นบทแนะนำนี้จะเริ่มต้นด้วยการอธิบายการกำหนดค่านั้นและถือว่าการกำหนดค่าอื่นๆ เป็นส่วนขยาย
แต่ละส่วนจะครอบคลุมช่องที่จะติดตามในเซิร์ฟเวอร์การจอง เพื่อยอมรับการกำหนดค่าการชำระเงินนั้นๆ ด้วย
ไม่มีการชำระเงิน / ชำระเงินเมื่อมาถึง
สำหรับบริการที่ไม่ต้องชำระเงินใดๆ ณ เวลาที่จอง จะไม่ต้องมีการกำหนดค่าการชำระเงินที่ระดับผู้ขายหรือบริการ อย่างไรก็ตาม ระบบยังจำเป็นต้องระบุราคาอยู่
นี่คือการกำหนดค่าพื้นฐานของบริการ ซึ่งจะมีชื่อ คำอธิบาย และราคา นี่จะเป็นข้อความบริการข้อความเดียวภายใน 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 ที่เกี่ยวข้องของผู้ประมวลผลการชำระเงินเพื่ออัปเกรดโทเค็นนี้เป็นเวอร์ชันที่คุณคงไว้สำหรับการใช้งานในภายหลังได้
ไม่จำเป็นต้องมีข้อมูลเพิ่มเติมในการตอบกลับของเซิร์ฟเวอร์การจองนอกเหนือจากนั้นใน Use Case การชำระเงินเมื่อมาถึง
การลบล้างราคาที่ระดับห้องว่าง
ในตัวอย่างทั้งหมดข้างต้น โครงสร้างราคา / ค่าธรรมเนียมจะระบุไว้ที่ระดับบริการ ในกรณีส่วนใหญ่ คุณควรใช้การตั้งราคาระดับบริการนี้ อย่างไรก็ตาม ในบางกรณี การปรับเปลี่ยนโครงสร้างการชำระเงินสำหรับช่องความพร้อมใช้งานบางช่องนั้นเหมาะสมแล้ว ตัวอย่างเช่น สถานการณ์ต่อไปนี้อาจจัดการได้โดยลบล้างราคา / ค่าธรรมเนียมที่ระดับความพร้อมจำหน่ายสินค้า
- ราคาลดลงในวันอังคารและเพิ่มขึ้นในวันเสาร์
- ไม่มีค่าธรรมเนียมการแสดงสำหรับห้องว่างระหว่าง 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
|
โปรดทราบว่าหากต้องการลบล้างราคาที่ระดับความพร้อมจำหน่ายสินค้า คุณต้องกำหนดตัวเลือกการชำระเงินที่ระดับผู้ขายก่อน นอกจากนี้ โปรดดูคำแนะนำเกี่ยวกับการเพิ่มกรอบเวลาการยกเลิกในระดับความพร้อมให้บริการ โปรดอ่านคู่มือวิธีเพิ่มช่วงเวลาในการยกเลิก