बिल करने लायक लेन-देन

अगर Google के साथ आपके कानूनी समझौते में हर लेन-देन के आधार पर बिलिंग की जानकारी दी गई है, तो आपके ऐप्लिकेशन को हर लेन-देन के शुरू और खत्म होने की जानकारी देने के लिए NavigationTransactionRecorder.pickup() और NavigationTransactionRecorder.dropoff() को कॉल करना होगा. इससे Google उन लेन-देन को ट्रैक और लॉग कर पाएगा जिनकी बिलिंग की जानी है. राइड और डिलीवरी के लिए, बिल करने लायक ट्रांज़ैक्शन बांटने का तरीका तय करने के लिए, इस पेज पर लागू करने से जुड़े दिशा-निर्देश देखें.

NavigationTransactionRecorder ऑब्जेक्ट पाएं

pickup() और dropoff() तरीकों का इस्तेमाल करने के लिए, पहले आपको NavigationApi.getTransactionRecorder को कॉल करके NavigationTransactionRecorder का इंस्टेंस बनाना होगा, जैसा कि इस उदाहरण में दिखाया गया है:

NavigationTransactionRecorder transactionRecorder = NavigationApi.getTransactionRecorder(application);

pickup() के साथ लेन-देन शुरू करें

जब ड्राइवर किसी यात्री को पिक अप करता है या डिलीवरी के लिए कोई सामान इकट्ठा करता है, तो आपके आवेदन में NavigationTransactionRecorder.pickup() पर कॉल करना ज़रूरी है. आपको इस कॉल को तब शुरू करना चाहिए, जब पिकअप को रजिस्टर करने के लिए ड्राइवर आपके ऐप्लिकेशन से इंटरैक्ट करे. इस कॉल को onArrival() कॉलबैक के हिस्से के तौर पर न करें.

नीचे दिया गया सैंपल कोड मानता है कि यात्री या डिलीवरी वाला सामान लेते समय ड्राइवर, आपके ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) पर मौजूद बटन पर टैप करता है:

Button b = (Button) findViewById(R.id.btn_pickup);
b.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
    transactionRecorder.pickup(
        null /* waypoint */,
        Arrays.asList("MY_TRANSACTION_ID"));
  }
});

इन पैरामीटर को pickup() तरीके पर पास करें:

  • वह Waypoint जिस पर पिक अप हो रहा है. इसके अलावा, अगर पिक अप किसी मौजूदा नेविगेशन सेशन का हिस्सा नहीं है, तो null.
  • इस पिकअप पर लागू होने वाले एक या इससे ज़्यादा लेन-देन आईडी. ट्रांज़ैक्शन आईडी एक आर्बिट्रेरी स्ट्रिंग है, जो बिल करने लायक ट्रांज़ैक्शन की खास तौर पर पहचान करती है. ट्रांज़ैक्शन आईडी के बारे में ज़्यादा जानकारी नीचे देखें.

dropoff() के साथ लेन-देन खत्म करें

जब ड्राइवर किसी यात्री को छोड़ता है या कोई सामान डिलीवर करता है, तो आपके ऐप्लिकेशन में NavigationTransactionRecorder.dropoff() को कॉल करना ज़रूरी है. आपको यह कॉल तब करना चाहिए, जब ड्राइवर आपके ऐप्लिकेशन से इंटरैक्ट करके, ड्रॉपऑफ़ को रजिस्टर करे. इस कॉल को onArrival() कॉलबैक के हिस्से के तौर पर न करें.

नीचे दिया गया सैंपल कोड यह मानता है कि यात्री या डिलीवरी आइटम को छोड़ते समय, ड्राइवर आपके ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) पर मौजूद बटन पर टैप करता है:

Waypoint waypoint = mNavigator.getCurrentRouteSegment().getDestinationWaypoint();

Button b = (Button) findViewById(R.id.btn_dropoff);
b.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
    transactionRecorder.dropoff(
        waypoint,
        Arrays.asList("MY_TRANSACTION_ID"));
  }
});

इन पैरामीटर को dropoff() तरीके पर पास करें:

  • वह Waypoint जिस पर ड्रॉप-ऑफ़ हो रहा है. अगर ड्रॉप-ऑफ़ किसी मौजूदा नेविगेशन सेशन का हिस्सा नहीं है, तो null.
  • इस ड्रॉप-ऑफ़ पर लागू होने वाले एक या ज़्यादा लेन-देन आईडी. ट्रांज़ैक्शन आईडी एक आर्बिट्रेरी स्ट्रिंग है, जो बिल करने लायक ट्रांज़ैक्शन की खास तौर पर पहचान करती है. ट्रांज़ैक्शन आईडी के बारे में ज़्यादा जानकारी नीचे देखें.

अपना ट्रांज़ैक्शन आईडी इस्तेमाल करें या जनरेट करें

ट्रांज़ैक्शन आईडी की मदद से, राइड को Google के बिलिंग लेन-देन से जोड़ा जा सकता है. ट्रांज़ैक्शन आईडी एक आर्बिट्रेरी स्ट्रिंग है, जिसमें 64 वर्ण से ज़्यादा नहीं हो सकते. यह आईडी, सभी लेन-देन के लिए यूनीक होना चाहिए.

अगर आप खुद का लेन-देन आईडी दें, तो बेहतर होगा कि आप उस लेन-देन आईडी का इस्तेमाल करें जिसे आपके सिस्टम पहले से इस्तेमाल और सेव कर लें.

इसके अलावा, NavigationTransactionRecorder.generateTransactionId() पर कॉल करके, कोई भी यूनीक और रैंडम ट्रांज़ैक्शन आईडी जनरेट किया जा सकता है. जनरेट किए गए आईडी को स्टोर करें, ताकि आपके संगठन को लेन-देन का मिलान करने के लिए इसकी ज़रूरत पड़ सके.

नेविगेशन ट्रांज़ैक्शन रिकॉर्डर को लागू करने के लिए दिशा-निर्देश

राइड और डिलीवरी के लिए, बिल किए जा सकने वाले लेन-देन का बंटवारा करने का तरीका तय करने के लिए, इन दिशा-निर्देशों का पालन करें.

सामान्य दिशा-निर्देश:

  • जब भी Android के लिए नेविगेशन SDK टूल का इस्तेमाल किया जाता है, तब आपको ऐसे लेन-देन की रिपोर्ट करनी होगी जिनके लिए शुल्क देना होता है. इसमें रोड-स्नैप की गई जगह की जानकारी देने वाली कंपनी का इस्तेमाल भी शामिल है. ऐसा तब भी करना चाहिए, जब किसी खास यात्रा के दौरान ऐप्लिकेशन फ़ोरग्राउंड में न दिख रहा हो. अगर आपको ऐसे लेन-देन की रिपोर्टिंग बंद करनी है जिनके लिए बिलिंग की जानी है, तो stopGuidance() को कॉल करके नेविगेशन बंद करें. साथ ही, stopRequestingLocationUpdates() पर क्लिक करके, सड़क से स्नैप की गई जगह की जानकारी को बंद करें.
  • आपको राइड और डिलीवरी को अलग-अलग और स्वतंत्र ट्रांज़ैक्शन के तौर पर रजिस्टर करना होगा, भले ही ड्राइवर एक ही समय में राइड और डिलीवरी, दोनों करता हो.
  • इवेंट ट्रिगर होने के तुरंत बाद, आपको पिकअप और ड्रॉप-ऑफ़ इवेंट रिकॉर्ड करने होंगे.

राइड के लेन-देन के लिए दिशा-निर्देश:

  • ऐसे नेविगेशन सेशन जिनमें यात्री शामिल नहीं होता (उदाहरण के लिए, किसी यात्री को पिक अप पॉइंट पर ड्राइव करना या आगे के पिकअप के लिए ड्राइवर को किसी लोकप्रिय जगह पर ले जाना) को बिल किए जाने वाले लेन-देन के तौर पर नहीं गिना जाता.
  • एक यात्री के पिकअप और ड्रॉप-ऑफ़ को, बिल करने लायक एक लेन-देन के तौर पर गिना जाता है.
  • अगर यात्रियों के एक ग्रुप के लिए राइड की बिलिंग ग्रुप के तौर पर की जाती है, तो उसे एक लेन-देन के तौर पर गिना जाता है. ज़्यादा जानकारी के लिए: अगर ड्राइवर दो या दो से ज़्यादा यात्रियों को एक जगह से लेकर किसी दूसरी जगह पर ले जाता है और उन्हें ग्रुप के तौर पर बिल भेजा जाता है, तो इसे एक लेन-देन माना जाता है. pickup() को सिर्फ़ एक बार और dropoff() को सिर्फ़ एक बार, सही लेन-देन आईडी के साथ कॉल करें.
  • दो अलग-अलग यात्रियों के लिए शेयर की गई राइड को दो तरह के लेन-देन के तौर पर गिना जाता है, भले ही यात्रियों को एक ही जगह से पिक अप और ड्रॉप किया गया हो. जब ड्राइवर पिक अप करे, तब दोनों लेन-देन आईडी (हर लेन-देन के लिए एक) के साथ pickup() को कॉल करें. इसके बाद, जब ड्राइवर यात्री को पिक अप कर रहा हो, तब दोनों लेन-देन आईडी के साथ dropoff() पर कॉल करें.
  • डिस्कशनरी स्टॉपओवर को बिल करने लायक अलग-अलग ट्रांज़ैक्शन के तौर पर नहीं गिना जाता. उदाहरण के लिए, कॉफ़ी उठाने के सफ़र से ब्रेक लेना या किसी ऐसे सह-यात्री को छोड़ देना जिसे अलग से बिल नहीं भेजा जाता. सामान्य तौर पर इस तरह की रोक लगाने के लिए, dropoff() को कॉल न करें.
  • अगर आपका संगठन राइड के समय बिलिंग के बजाय, कुछ राइड का बिल सीधे तौर पर नहीं भेजता है, तो आपको इन राइड को यह मानकर चलना होगा कि बिल हर राइड के लिए लिया गया है. उदाहरण के लिए, आपका संगठन जितनी चाहे उतनी राइड के लिए, हर महीने पैसे चुकाकर ली जाने वाली सदस्यता का मॉडल उपलब्ध करा सकता है. इन राइड के लिए pickup() और dropoff() को कॉल करें.
  • अगर आपका संगठन ऐसी बस सेवाएं उपलब्ध कराता है जिनमें यात्रियों को एक तय स्टॉप पर डालने और उतरने की सुविधा दी जाती है, लेकिन हर स्टॉप पर आने-जाने वाले लोगों की जानकारी नहीं ट्रैक की जाती, तो आपको अलग से प्रॉडक्ट लाइसेंस लेना होगा. इस तरह की बस सेवाएं, हर लेन-देन की बिलिंग के दायरे से बाहर होती हैं.
  • अगर आपका संगठन गाड़ी के लिए किराये पर सेवाएं उपलब्ध कराता है, जिनकी मदद से यात्री लंबे समय तक अनलिमिटेड स्टॉप सकते हैं और इसके लिए एक शुल्क देना होता है, तो आपको अलग से प्रॉडक्ट लाइसेंस लेना होगा. ये सेवाएं, हर लेन-देन की बिलिंग के दायरे से बाहर हैं.

डिलीवरी से जुड़े लेन-देन के लिए दिशा-निर्देश:

  • ऐसे नेविगेशन सेशन जिनमें डिलीवरी के लिए कोई आइटम शामिल न हो (उदाहरण के लिए, सामान को पिकअप करने के लिए किसी स्टोर पर जाना), बिल करने लायक ट्रांज़ैक्शन नहीं माना जाता.
  • किसी एक जगह से, किसी ऑर्डर के पिक अप और ड्रॉप-ऑफ़ को एक बिल के लेन-देन के तौर पर गिना जाता है. ऑर्डर में कई चीज़ें शामिल हो सकती हैं - जैसे, किराने के दो बैग. ड्राइवर के ऑर्डर पिक अप करने के बाद, pickup() पर कॉल करें. जब ड्राइवर ऑर्डर डिलीवर करता है, तब dropoff() पर कॉल करें.
  • जब कोई ड्राइवर एक ही ऑर्डर के तहत अलग-अलग जगहों (उदाहरण के लिए, स्टोर या रेस्टोरेंट) से सामान पिक अप करता है, तो हर जगह को एक अलग बिल किए जा सकने वाले लेन-देन के तौर पर गिना जाता है. हर जगह के लिए अलग ट्रांज़ैक्शन आईडी का इस्तेमाल करें.
  • जब कोई ड्राइवर एक ही जगह से, कई ग्राहकों के ऑर्डर के लिए सामान पिक अप करता है, तो हर ऑर्डर को बिल करने लायक एक अलग लेन-देन के तौर पर गिना जाता है. हर ऑर्डर के लिए अलग-अलग ट्रांज़ैक्शन आईडी का इस्तेमाल करें.
  • जब दो ड्राइवर एक ही ग्राहक के ऑर्डर के तहत, सामान को पिक अप और ड्रॉप-ऑफ़ करते हैं, तो हर ड्राइवर की डिलीवरी को बिल करने लायक अलग-अलग लेन-देन के तौर पर गिना जाता है, भले ही सामान एक ही स्टोर से हो. हर ड्राइवर के लिए अलग-अलग ट्रांज़ैक्शन आईडी का इस्तेमाल करें.