नेटिव चेकआउट

नेटिव इंटिग्रेशन के लिए, आपको एक RESTful API बनाना होगा. इससे Google, चेकआउट सेशन बना और मैनेज कर सकेगा.

पूरी प्रोसेस इस तरह है:

  1. चेकआउट सेशन बनाना: उपयोगकर्ता और एजेंट, सेशन में आइटम जोड़ते हैं. हालांकि, एजेंट के लिए यह ज़रूरी नहीं है.
  2. Google के यूज़र इंटरफ़ेस (यूआई) पर रीडायरेक्ट करना: जब उपयोगकर्ता, एजेंट के साथ चेकआउट करने का फ़ैसला करता है, तो एजेंट, कंट्रोल को Google के यूज़र इंटरफ़ेस (यूआई) पर रीडायरेक्ट कर देता है. ऐसा तब होता है, जब उपयोगकर्ता एजेंट के साथ जुड़ा हो. इस दौरान, चेकआउट सेशन का डेटा भी ट्रांसफ़र कर दिया जाता है
  3. मैन्युअल चेकआउट: अब उपयोगकर्ता, Google के यूज़र इंटरफ़ेस (यूआई) के साथ इंटरैक्ट करता है. इससे वह ऑर्डर पूरा करने और पेमेंट की संवेदनशील जानकारी भर पाता है. इस हिस्से में एजेंट की कोई भूमिका नहीं होती है. इससे यह पक्का होता है कि नतीजे एक जैसे हों.
  4. खरीदारी पूरी करना और वापस लौटना: Google के यूज़र इंटरफ़ेस (यूआई) पर, ऑर्डर की पुष्टि करने के लिए "धन्यवाद" पेज दिखता है. इसके अलावा, उपयोगकर्ता को वापस एजेंट पर रीडायरेक्ट किया जा सकता है. एजेंट को शायद पहले ही खरीदारी पूरी होने की सूचना मिल चुकी हो.

यहां दिए गए चरणों में, उन एपीआई एंडपॉइंट के बारे में बताया गया है जिन्हें आपको लागू करना होगा. साथ ही, उनके काम करने के तरीके के बारे में भी बताया गया है.

1. चेकआउट सेशन बनाना

इस एंडपॉइंट की मदद से, ऐसा चेकआउट सेशन बनाया जा सकता है जिसमें वे प्रॉडक्ट शामिल हों जिन्हें उपयोगकर्ता खरीदना चाहता है.

  • एंडपॉइंट: POST /checkout-sessions
  • ट्रिगर: उपयोगकर्ता किसी प्रॉडक्ट पर "खरीदें" पर क्लिक करता है.

अनुरोध: Google, लाइन आइटम और मुद्रा भेजता है.

{
  "line_items": [
    {
      "item": {
        "id": "product_12345", // Must match Product Feed ID
        "title": "Running Shoes"
      },
      "quantity": 1
    }
  ],
  "currency": "USD"
}

जवाब: आपको कुल कीमत, टैक्स (शुरुआत में अनुमानित), और पेमेंट की सुविधाओं के साथ शुरू किया गया सेशन वापस मिलता है. आपको सेवा की शर्तों और निजता नीति के लिंक शामिल करने होंगे. ये लिंक, पेमेंट बटन के नीचे दिखेंगे.

{
  "ucp": {
    "version": "2026-01-11",
    "capabilities": [
      {
        "name": "dev.ucp.shopping.checkout",
        "version": "2026-01-11"
      },
      {
        "name": "dev.ucp.shopping.fulfillment",
        "version": "2026-01-11"
      }
    ]
  },
  "id": "gid://merchant.example.com/Checkout/session_abc123",
  "status": "incomplete",
  "line_items": [
    {
      "id": "line_1",
      "item": {
        "id": "product_12345",
        "title": "Running Shoes",
        "price": 10000
      },
      "quantity": 1,
      "base_amount": 10000,
      "subtotal": 10000,
      "total": 10000
    }
  ],
  "totals": [
    { "type": "subtotal", "amount": 10000 }, // in cents
    { "type": "tax", "amount": 0 },
    { "type": "total", "amount": 10000 }
  ],
  "payment": {
    "handlers": [
      {
        "id": "gpay",
        "name": "com.google.pay",
        "config": {
           "api_version": 2,
           "api_version_minor": 0,
           "merchant_info": {
             "merchant_id": "12345678901234567890",
             "merchant_name": "Example Merchant"
           },
           "allowed_payment_methods": [
             {
               "type": "CARD",
               "parameters": {
                 "allowed_auth_methods": ["PAN_ONLY", "CRYPTOGRAM_3DS"],
                 "allowed_card_networks": ["VISA", "MASTERCARD"]
               },
               "tokenization_specification": {
                 "type": "PAYMENT_GATEWAY",
                 "parameters": {
                   "gateway": "stripe",
                   "gateway_merchant_id": "exampleGatewayMerchantId"
                 }
               }
             }
           ]
        }
      }
    ]
  },
  "links": [
    { "type": "privacy_policy", "url": "https://m.com/privacy" },
    { "type": "terms_of_service", "url": "https://m.com/terms" }
  ]
}

2. चेकआउट सेशन पाना

इस एंडपॉइंट की मदद से, चेकआउट सेशन को वापस पाया जा सकता है.

  • एंडपॉइंट: GET /checkout-sessions/{id}

अनुरोध: Google, चेकआउट सेशन का आईडी भेजता है. अगर ग्लोबल आईडी का इस्तेमाल किया जाता है (जैसे, gid://merchant.example.com/Checkout/session_abc123) में, ध्यान दें कि अनुरोध के पाथ में मौजूद आईडी, इस आईडी का सिर्फ़ आखिरी कॉम्पोनेंट होगा. उदाहरण के लिए, session_abc123).

जवाब: आपको पूरा चेकआउट ऑब्जेक्ट वापस भेजना होगा.

3. चेकआउट सेशन अपडेट करें

इस एंडपॉइंट की मदद से, चेकआउट सेशन को अपडेट किया जा सकता है. शिपिंग का पता अपडेट होने पर, उसे टैक्स और शिपिंग के विकल्पों की फिर से गणना करनी होगी और उन्हें वापस भेजना होगा.

  • एंडपॉइंट: PUT /checkout-sessions/{id}
  • ट्रिगर: जब उपयोगकर्ता शिपिंग का पता चुनता है या उसमें बदलाव करता है, शिपिंग के लिए चुना गया विकल्प अपडेट करता है या पेमेंट की जानकारी अपडेट करता है.

अनुरोध: Google, अपडेट की गई जानकारी के साथ पूरा चेकआउट ऑब्जेक्ट भेजता है.

{
  "id": "gid://merchant.example.com/Checkout/session_abc123",
  "buyer": {
      "first_name": "John",
      "last_name": "Doe",
      "email": "john@example.com"
  },
  "fulfillment": {
     "methods": [
       {
         "type": "shipping",
         "destinations": [
           {
             "id": "dest_1",
             "postal_code": "94043",
             "country": "US",
             "address_locality": "Mountain View",
             "address_region": "CA"
           }
         ],
         "selected_destination_id": "dest_1"
       }
     ]
  },
  "payment": {
    "selected_instrument_id": "pi_gpay_5678",
    "instruments": [
      {
        "id": "pi_gpay_5678",
        "handler_id": "gpay",
        "type": "card",
        "brand": "mastercard",
        "last_digits": "5678",
        "rich_text_description": "Google Pay •••• 5678"
      }
    ]
  }
  // ... other fields (line_items, currency, etc.)
}

जवाब: टैक्स और शिपिंग के विकल्पों को ज़रूरत के हिसाब से फिर से कैलकुलेट करें. साथ ही, पूरा चेकआउट ऑब्जेक्ट वापस भेजें.

{
  "id": "gid://merchant.example.com/Checkout/session_abc123",
  "totals": [
     { "type": "subtotal", "amount": 10000 },
     { "type": "shipping", "display_text": "Ground Shipping", "amount": 500 },
     { "type": "tax", "amount": 850 },
     { "type": "total", "amount": 11350 }
  ],

  // ... other fields (line_items, currency, etc.)

  "fulfillment": {
      "methods": [
          {
            "id": "method_shipping",
            "type": "shipping",
            "line_item_ids": ["line_1"],
            "selected_destination_id": "dest_1",
            "destinations": [
               {
                 "id": "dest_1",
                 "postal_code": "94043",
                 "country": "US",
                 "address_locality": "Mountain View",
                 "address_region": "CA"
               }
            ],
            "groups": [
              {
                "id": "group_1",
                "line_item_ids": ["line_1"],
                "selected_option_id": "ship_ground",
                "options": [
                  {
                    "id": "ship_ground",
                    "title": "Ground (3-5 days)",
                    "total": 500
                  },
                  {
                    "id": "ship_express",
                    "title": "Express (1-2 days)",
                    "total": 1500
                  }
                ]
              }
            ]
          }
      ]
  }
}

4. चेकआउट सेशन पूरा करें

इस एंडपॉइंट की मदद से, चेकआउट सेशन पूरा किया जा सकता है और ऑर्डर दिया जा सकता है. इससे पूरा किया गया चेकआउट सेशन दिखना चाहिए. साथ ही, इसमें ऑर्डर की जानकारी भी शामिल होनी चाहिए. इस कॉल के बाद, पेमेंट प्रोसेस शुरू होनी चाहिए.

  • एंडपॉइंट: POST /checkout-sessions/{id}/complete
  • ट्रिगर: उपयोगकर्ता "ऑर्डर करें" पर क्लिक करता है.

अनुरोध: Google, सेवा देने वाली कंपनी से पेमेंट टोकन (एन्क्रिप्ट किया गया ब्लब) भेजता है. जैसे, Google Pay) और खरीदार के बारे में जोखिम के सिग्नल उपलब्ध कराता है, ताकि आप धोखाधड़ी का पता लगा सकें.

{
  "payment_data": {
    "id": "pi_gpay_5678",
    "handler_id": "gpay",
    "type": "card",
    "brand": "mastercard",
    "last_digits": "5678",
    "billing_address": {
      "postal_code": "94043",
      "address_country": "US"
    },
    "credential": {
       "type": "PAYMENT_GATEWAY",
       "token": "{\"signature\":\"...\",\"protocolVersion\":\"ECv2\"...}"
    }
  }
}

जवाब: आपको पूरा चेकआउट ऑब्जेक्ट वापस भेजना होगा. इससे पता चलेगा कि ऑर्डर पूरा हो गया है. इसमें ऑर्डर आईडी और ऑर्डर का परमानेंट लिंक यूआरएल भी शामिल होना चाहिए.

{
  "ucp": {
      "version": "2026-01-11",
      "capabilities": [...]
  },
  "id": "gid://merchant.example.com/Checkout/session_abc123",
  "status": "completed",

  // ... other fields (line_items, currency, etc.)

  "order_id": "gid://merchant.example.com/Order/789",
  "order_permalink_url": "https://merchant.example.com/orders/789"
}

5. चेकआउट सेशन रद्द करना

यह एंडपॉइंट, चेकआउट सेशन को रद्द करता है.

  • एंडपॉइंट: POST /checkout-sessions/{id}/cancel

अनुरोध: Google, चेकआउट सेशन का आईडी भेजता है.

जवाब: आपको पूरा चेकआउट ऑब्जेक्ट वापस भेजना होगा. साथ ही, स्टेटस को canceled पर अपडेट करना होगा.