पैसे चुकाने के अलग-अलग तरीके सेट करें

पेमेंट लेने के लिए, Actions Center प्लैटफ़ॉर्म कई तरह के कॉन्फ़िगरेशन का इस्तेमाल करता है. पेमेंट की सुविधा चालू करने से जुड़ी गाइड में, इंटिग्रेशन के ऐसे पहलुओं के बारे में बताया गया है जो पेमेंट के सभी इंटिग्रेशन में सामान्य होते हैं. इनमें ये शामिल हैं:

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

बुकिंग सर्वर में, स्टैंडर्ड तरीके से लागू किए गए कॉन्फ़िगरेशन के अलावा किसी और कॉन्फ़िगरेशन की ज़रूरत नहीं होती. इससे, पेमेंट पाने पर ही पेमेंट करने की सुविधा काम करती है.

पूर्व-भुगतान

इस कॉन्फ़िगरेशन का इस्तेमाल यह बताने के लिए किया जाता है कि बुकिंग के समय, सेवा के लिए पूरी रकम चुकानी होगी.

पहले से किए गए पेमेंट की जानकारी सेवा के लेवल पर दी जाती है. इसके लिए, Service के prepayment_type फ़ील्ड का इस्तेमाल किया जाता है. किसी सेवा के लिए पैसे चुकाने के लिए, इसे 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"
    }
}

ऊपर दिए गए उदाहरण में, अगर अपॉइंटमेंट लेने वाला व्यक्ति अपॉइंटमेंट में शामिल नहीं होता है, तो पार्टनर या व्यापारी के पास no_show_fee.fee.price_micros फ़ील्ड में बताए गए शुल्क के मुताबिक 25 डॉलर का तय शुल्क लेने का अधिकार है. अगर उपयोगकर्ता, अपॉइंटमेंट को चार घंटे (14,400 सेकंड) के अंदर रद्द कर देता है, तो भी यह शुल्क लिया जा सकता है. इस बारे में 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 ज़रूरी है.

यह भी ध्यान रखें कि CreateBookingResponse में सेट किया गया booking_id, रीयल-टाइम अपडेट के लिए एक ज़रूरी फ़ील्ड है. इस फ़ील्ड को तब भेजा जाना चाहिए, जब न पहुंचने का शुल्क लिया जाता है. उम्मीद है कि इस आईडी को बुकिंग की जानकारी के साथ सेव किया जाएगा.

रीयल-टाइम अपडेट

अगर कोई उपयोगकर्ता अपनी शेड्यूल की गई बुकिंग पर नहीं आता है या बुकिंग रद्द करने की समयसीमा खत्म होने के बाद सदस्यता रद्द कर देता है (उदाहरण के लिए, सीधे आपसे संपर्क करके), तो आप न पहुंचने का शुल्क ले सकते हैं. इसके लिए, बुकिंग के समय सेव की गई क्रेडिट/डेबिट कार्ड की जानकारी का इस्तेमाल करें. अगर आपसे न शो का शुल्क लिया जाता है, तो आपको रीयल टाइम अपडेट भेजना होगा. इसमें यह जानकारी देनी होगी कि न शो करने का शुल्क लिया गया है.

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 सेकंड) तक सेवा को ऑनलाइन रद्द कर सकेंगे. इससे यह पक्का किया जाता है कि अगर रद्द करने की प्रक्रिया में किसी भी तरह की देरी हो, तो व्यापारी या कंपनी को सीधे तौर पर इसकी सूचना दी जाती है. हालांकि, उपयोगकर्ता अब भी बुकिंग से चार घंटे पहले (14,400 सेकंड) पहले तक रिफ़ंड पा सकता है. रिफ़ंड पाने के लिए, आपसे या रद्द करने के लिए कारोबारी से संपर्क करना होगा. यह रिफ़ंड, चेकआउट की प्रोसेस और पुष्टि के लिए भेजे गए ईमेल की शर्तों में किया जाएगा.

उपलब्धता के लेवल पर, डिपॉज़िट को तय करने का तरीका जानने के लिए यह सेक्शन देखें.

बुकिंग सर्वर

डिपॉज़िट को शामिल करने वाले अनुरोध को प्रोसेस करने पर, 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"
    }
    "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 से 7 बजे के बीच उपलब्ध होने पर, शो का कोई शुल्क नहीं लगेगा.

इस टेबल में बताया गया है कि पेमेंट / शुल्क के हर तरीके के लिए, सेवा लेवल की परिभाषा को बदलने के लिए, उपलब्धता फ़ीड में किस फ़ील्ड का इस्तेमाल करना चाहिए.

पैसे चुकाने का तरीका शुल्क / कीमत की परिभाषा बदला जा सकता है?
पहुंचने पर पेमेंट करें 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

ध्यान दें कि उपलब्धता के लेवल पर कीमत को बदलने के लिए, आपको पहले व्यापारी/कंपनी/कारोबारी के लेवल पर पेमेंट का विकल्प तय करना होगा. इसके अलावा, उपलब्धता के लेवल पर, सदस्यता रद्द करने की विंडो जोड़ने के बारे में दिशा-निर्देश पाने के लिए, कृपया सदस्यता रद्द करने की विंडो जोड़ने का तरीका गाइड देखें.