2011-12-19 13 views
5

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

मैं अगर "PAYMENTREQUEST_n_INVNUM" NVP में भेजा "चालान" IPN पोस्ट में के रूप में वापस आ जाएगा सत्यापित करनी होगी।

ऐसा प्रतीत होता है मैं वास्तव में जब तक मैं जीवित हूँ इस परीक्षण नहीं कर सकते क्योंकि सैंडबॉक्स IPN सक्रिय NVP साथ सैंडबॉक्स लेनदेन चालू किये जाने प्रतीत नहीं होता है - यह सही है?

आपकी मदद के लिए धन्यवाद।

+0

आप चर के माध्यम से पारित होने के रूप में कस्टम फ़ील्ड का उपयोग कर सकते हैं। एक आईडी असाइन करें, और लेनदेन को जोड़ने के लिए इसका इस्तेमाल करें। –

+0

हां, चालान संख्या स्टोर करने के लिए कस्टम फ़ील्ड मेरी दूसरी पसंद थी। मैं उम्मीद कर रहा था कि 'चालान' उस उद्देश्य के लिए समर्पित होगा और यदि आवश्यक हो तो मैं कुछ अन्य डेटा के लिए कस्टम का उपयोग कर सकता हूं। – mseifert

उत्तर

6

आप कर सकते हैं परीक्षण इस सैंडबॉक्स में। लेकिन यदि आप "पेपैल एनवीपी" का उपयोग कर रहे हैं, तो मुझे लगता है कि आप पेपैल एक्सप्रेस चेकआउट का उपयोग कर रहे हैं और SetExpressCheckout और DoExpressCheckoutPayment एपीआई को कॉल कर रहे हैं।
यदि ऐसा है, तो आपको वास्तव में आईपीएन की आवश्यकता नहीं है, क्योंकि लेनदेन केवल तभी पूरा हो जाएगा जब आप DoExpressCheckoutPayment पर कॉल करेंगे।

दूसरे शब्दों में, खरीददारों हमेशा RETURNURL आप SetExpressCheckout में निर्दिष्ट करने के लिए पुनः निर्देशित किया जाएगा, और लेन-देन पूरा हो गया है (या नहीं) जब आप इस वापसी पृष्ठ पर DoExpressCheckoutPayment कहते हैं।

चालान संख्या प्राप्त करने के लिए, आप GetExpressCheckoutDetails पर कॉल कर सकते हैं और टोकन को पहले से पुनर्प्राप्त कर सकते हैं (यह RETURNURL के GET में भी शामिल है)।

अंत में, DoExpressCheckoutPayment एपीआई प्रतिक्रिया में PAYMENTSTATUS=Completed जांचें कि लेनदेन पूरा हो गया है या नहीं।

+0

आप सही हैं, मैं पेपैल एक्सप्रेस चेकआउट का उपयोग कर रहा हूं और SetExpressCheckout और DoExpressCheckoutPayment API का कॉल कर रहा हूं। मैं इस धारणा के तहत था कि उपयोगकर्ता पेपैल की साइट पर 'अब भुगतान करें' बटन पर क्लिक करता है, इसके लिए भुगतान किया जाता है। अगर किसी भी कारण से उपयोगकर्ता मेरी साइट से दोबारा शुरू होने से पहले डिस्कनेक्ट हो जाता है, तो मुझे बिक्री की पुष्टि कभी नहीं मिलेगी। ऐसा लगता है कि पुष्टि के लिए बैकअप के रूप में आईपीएन सुरक्षित है। – mseifert

+0

नहीं, लेनदेन केवल 'DoExpressCheckoutPayment'' नामक अंतिम रूप दिया गया है और आपको एपीआई प्रतिक्रिया में 'PAYMENTSTATUS = Completed' प्राप्त हुआ है। यही कारण है कि एक्सप्रेस चेकआउट पेपैल वेबसाइट पर चेकआउट में 'अब भुगतान करें' बटन नहीं दिखाता है। इसके बजाय, यह उपयोगकर्ता को भुगतान को अधिकृत करने देता है, और यदि वे इससे खुश हैं, तो वे आगे बढ़ने के लिए 'जारी रखें' बटन पर क्लिक करें।'जारी रखें' बटन स्वचालित रूप से आपकी वेबसाइट पर वापस आ जाता है, कोई देरी नहीं, कोई परेशानी नहीं, हमेशा, 100% समय। यदि कोई खरीदार आपके रिटर्न यूआरएल को नहीं मारता है, तो इसका मतलब है कि वे पेपैल लेनदेन के साथ आगे नहीं बढ़ना चाहते थे। – Robert

+0

(फिर भी, बैकअप के रूप में आईपीएन हमेशा अच्छा होता है, मैं सहमत हूं। PAYMENTREQUEST_0_INVNUM आईपीएन पोस्ट में 'चालान' पैरामीटर से मेल खाता है)। – Robert

0

प्रक्रिया पर स्पष्टता के लिए रॉबर्ट धन्यवाद - विशेष रूप से उपयोगकर्ता प्रतिक्रिया = प्रतिबद्धता।

मैं अंत में एहसास हुआ कि मैं अपने परीक्षण विक्रेता के लिए सैंडबॉक्स में IPN पर बारी और एक साथ IPN साथ NVP का परीक्षण कर सकता है। मैं यह सत्यापित करने में सक्षम था कि PAYMENTREQUEST_0_INVNUM आईपीएन पोस्ट में 'INVOICE' पैरामीटर से मेल खाता है।

मैं मामले में अपने सिस्टम से ग्राहक ईमेल पारित करने के लिए कस्टम फ़ील्ड का उपयोग करेगा वे साथ paypal में प्रवेश करने की भिन्न ईमेल का उपयोग, इसलिए मुझे पुष्टि करने के लिए ई-मेल/चालान संख्या जोड़ी के लिए अनुमति देता है।

संबंधित मुद्दे