अनुकूली भुगतान पेपैल Drupal होस्टिंग
हाल ही में एक परियोजना में मैं एक मॉड्यूल Drupal वाणिज्य में एक भुगतान गेटवे के रूप में पेपैल श्रृंखलित भुगतानों के सेटअप के लिए अनुमति देता है विकसित की है। और लीवरेज्ड माता पिता commerce_paypal मॉड्यूल से ज्यादा के रूप में मैं कर सकता के रूप में - मैं अपने शुरुआती बिंदु (से काम करने के लिए भयानक कोड! रयान के लिए प्रमुख रंगमंच की सामग्री) के रूप में rszrama के commerce_paypal_wps इस्तेमाल किया।
मैं सैंडबॉक्स पहचान के साथ बहुत बड़े पैमाने पर मॉड्यूल परीक्षण किया है और यह अच्छी तरह काम कर रहा है।
अपने मौजूदा रूप में, यह इस परियोजना में एक submodule, या एक commerce_paypal निर्भरता के साथ एक स्टैंड-अलोन मॉड्यूल के रूप में समुदाय के लिए की पेशकश की जा सकती है। जो मार्ग वहाँ जाने के लिए पर rszrama की प्रतिक्रिया के लिए देख रहे हैं।
पेपल के श्रृंखलित भुगतान अनुकूली भुगतान API, जो कैसे चर पेपैल के लिए भेजा के मामले में बहुत बेहद अलग है, क्या वे चर रहे हैं का उपयोग करता है, और क्या चर IPN के माध्यम से साइट पर वापस आते हैं। इस वजह से मैं commerce_paypal के मानक IPN प्रसंस्करण के कुछ भागों का परित्याग करने के लिए किया था।
एक सामान्य अर्थ में, मेरी मॉड्यूल paychain की एक परिभाषा के साथ पेपैल के लिए बाहर तक पहुँच जाता है, एक paykey प्राप्त करता है, तो पेपल के साइट पर खरीदार चला जाता है, paykey साथ, सौदे को पूरा करने। मॉड्यूल तो पेपैल से IPN फसल और अगर सब कुछ बाहर की जाँच करता है, आदेश पर भुगतान लेनदेन बनाता है, दिखा जो भुगतान किया गया था क्या ( "रिसीवर से पता चलता भुगतान टैब पर, एक पूरी तरह से भुगतान किया राज्य के लिए आदेश लाने के एक नए क्षेत्र के साथ ई-मेल पता "श्रृंखला में प्रत्येक भुगतान के लिए)।
मैं भी (यह मानते हुए आप टोकन स्थापित किया है) इस तरह से कि आप paychain टोकन का उपयोग कर परिभाषित कर सकते हैं में मॉड्यूल तैयार किया गया है - तो जो भुगतान किया जाता है आदेश के कितने प्रतिशत गतिशील और प्रत्येक आदेश के लिए विशिष्ट हो सकता है।
यदि यह संभव है इस (commerce_paypal_wps की तरह) इस परियोजना में एक submodule बन सकता है, मैं 7.x-2.x-देव के खिलाफ एक पैच प्रस्तुत कर सकते हैं - बस मुझे सूचित करें। अभी के लिए, मैं GitHub में इस पर काम करते रहेंगे।
चेतावनियां:
- वर्तमान में मॉड्यूल वेतन श्रृंखला में परिभाषित करने के लिए समय-देरी से हैंडल नहीं करता (जोड़ना आसान हो सकता है), और न ही यह श्रृंखलित रिफंड का क्या करता है (जोड़ने के लिए जटिल हो सकता है)।
- मॉड्यूल की आवश्यकता है वेब सर्वर PHP में cURL समर्थन (संपर्क करने के लिए paykey cURL के माध्यम से किया जाता है)।
- मॉड्यूल मामलों में रिपोर्टिंग बेहतर प्रहरी / त्रुटि का उपयोग जहां एक paykey paypal से वापस नहीं आती है हो सकता है।
- मॉड्यूल paychain परिभाषा आसपास के अतिरिक्त सत्यापन उपयोग करती हैं इसलिए हम गलत paychain साथ पेपैल तक पहुंचने कभी नहीं हो सकता।
मैं सैंडबॉक्स खाते का उपयोग कर अपने मॉड्यूल परीक्षण किया है और यह सब अच्छी तरह से काम कर रहा है।
लेकिन मेरे उपयोग के मामले में।
रिसीवर ईमेल एक क्षेत्र है कि मैं उपयोगकर्ता विक्रेता खाते पर बनाई गई से आ रहे हैं।
इसलिए प्रत्येक विक्रेता एक उत्पाद बनाने और इसे बेच सकते हैं।
खरीदार अपनी गाड़ी के लिए किसी भी उत्पादों को जोड़ने लेकिन केवल सीमित करने के लिए 4 विक्रेता सकते हैं।
मैं एक तर्क यह है कि विक्रेता के आधार पर समूह होगा आइटम बनाने की सोच रहा हूँ और प्रत्येक विक्रेता के लिए कुल प्रतिशत की गणना है, तो अपने विन्यास खरीदार द्वारा चेकआउट फेरबदल।
यह किया जा सकता है? वहाँ किसी भी सिफारिश है कि आप मुझे दे सकते हैं?
alex_qwe श्रेय का: alex_qwe नवंबर 2013 30 13:49 पर
नमस्ते,
महान काम है, सब कुछ काम करता है। मैं jhayzhon रूप में एक ही मुद्दा है।
इसकी महान है कि आप मैदान पर टोकन का उपयोग कर सकते हैं, दुर्भाग्य से नहीं हमारे मामले का अधिक उपयोग, के रूप में वहाँ आदेश पंक्ति आइटम से उत्पाद टोकन के लिए पहुँच नहीं है।
यह ईमेल के लिए चयनकर्ता इनपुट सेट करने के लिए मुश्किल है? बस आदेश की तरह? इस तरह से यह एक बहुत नियमों के साथ अधिक से अनुकूलन किया जाएगा।
और यह निश्चित रूप से वाणिज्य paypal के लिए submodule रूप में शामिल किया shoudl।
alex_qwe श्रेय का: alex_qwe नवंबर 2013 30 18:47 पर
ठीक है, मैं इस समस्या है, लेकिन एक बहुत बुरा समाधान के साथ हल किया।
नियम भुगतान मॉड्यूल में विक्रेता ईमेल के लिए एक पैरामीटर जोड़ते हैं।
फिर में एक सत्र चर में सहेजें विधि समारोह सक्षम (समझ नहीं सकता कैसे भुगतान श्रृंखलित मॉड्यूल के भीतर से इस पैरामीटर प्राप्त करने के लिए :(। यदि आप जानते हैं कि कैसे, तो कृपया मुझे बताएं)
alamp श्रेय का: alamp जनवरी 2014 टिप्पणी की 29 3:30 पर
यह मेरे जैसे के रूप में एक नौसिखिया के लिए एक टिप है।
आप पेपैल जंजीर चल के रूप में त्रुटियों का सामना करते हैं, तो इस प्रकार संदेश डिबगिंग जोड़ें:
dd जो त्रुटि कोड इस प्रकार शामिल Paypal से प्रतिक्रिया, के उत्पादन में प्रिंट होगा:
shabirahmad श्रेय का: shabirahmad 15:31 पर जून 2014 10 टिप्पणी की
यह बहुत अच्छा प्रयास है, मैं मॉड्यूल की तरह है, लेकिन मैं एक सवाल है। मैं रिसीवर अपने उत्पादों और उत्पादों की दुकान मालिकों के आधार पर ईमेल को भरने के लिए चाहते हैं। अभी मैं एक नियम है कि जब भी कोई नया ऑर्डर सबमिट निकाल दिया जाता है बनाया है। उस नियम में मैं एक php स्निपेट है, जो अलग रिसीवर ईमेल और उनके प्रतिशत मूल्य मूल्यों की गणना करता है लिखा है, अब यहाँ समस्या आती है। मैं इन आंकड़ों डाल करने के लिए भुगतान पद्धति विन्यास प्रपत्र कैसे कर सकते हैं ??
किसी भी विचार अत्यधिक सराहना की जाएगी !!
इस समारोह है कि मैं रिसीवर ईमेल और उनके प्रतिशत प्राप्त करने के लिए उपयोग करें
$ Order_wrapper = entity_metadata_wrapper ( 'commerce_order', $ commerce_order);
$ TOTAL_PRICE = $ order_wrapper-> commerce_order_total-> मूल्य () [ 'राशि'];
// DPM ($ TOTAL_PRICE);
// $ TOTAL_PRICE =;
foreach $ LINE_ITEM = $ line_item_wrapper-> मूल्य ($ order_wrapper-> $ डेल्टा => $ line_item_wrapper रूप commerce_line_items) ();
$ Line_item_price = $ line_item-> commerce_total [LANGUAGE_NONE] [0] [ 'राशि'];
$ Product_id = (int) $ line_item-> commerce_product [LANGUAGE_NONE] [0] [ 'product_id'];
$ Product_wrapper = entity_metadata_wrapper ( 'commerce_product', $ product_id);
$ Store_id = $ product_wrapper-> cmp_store-> मूल्य () -> आईडी;
$ Store_wrapper = entity_metadata_wrapper ( 'commerce_store', $ store_id);
$ Marchent_email = $ store_wrapper-> field_store_merchant_email-> मूल्य ();
$ Line_item_percentage [$ डेल्टा] [ 'reciever_email'] = $ marchent_email;
// DPM ($ line_item_price);
// DPM ($ LINE_ITEM);
>
= $ Line_item_percentage में $; // आपका सुझाव
बाहर $ = सरणी ();
foreach ($ पंक्ति के रूप में में $) if (! isset (बाहर $ [$ पंक्ति [ 'reciever_email']])) बाहर $ [$ पंक्ति [ 'reciever_email']] = सरणी (
'Reciever_email' => $ पंक्ति [ 'reciever_email'],
'कीमत' => 0,
);
>
[$ पंक्ति [ 'reciever_email']] [ 'मूल्य'] = $ पंक्ति [ 'कीमत'] बाहर $;
>
बाहर = array_values (बाहर $) $; // कर बाहर सरणी संख्यानुसार अनुक्रमित
$ क्वेरी = db_query ( 'से * का चयन');
foreach # कोड ($ मूल्य के रूप में $ क्वेरी)।
$ Unserialize = unserialize ($ value-> डेटा);
foreach ($ बाहर $ कुंजी => $ मूल्य के रूप में) $ unserialize [$ कुंजी + 1] [ 'राशि'] = $ मूल्य [ 'कीमत'];
$ Unserialize [$ कुंजी + 1] [ 'ई-मेल'] = $ मूल्य [ 'reciever_email'];
$ Unserialize [$ कुंजी + 1] [ 'प्राथमिक'] झूठी =;
>
$ Serialize_data = serialize ($ unserialize);
$ क्वेरी = db_query ( 'अद्यतन सेट डेटा =: डेटा', सरणी ( ': डेटा' => $ serialize_data));
// DPM ($ unserialize);
>
rbeaujard श्रेय का: rbeaujard टिप्पणी की 14 अक्टूबर 2014 23:43 पर
अरे दोस्तों, मैं अपने परिदृश्य में काम करने के लिए इस मॉड्यूल प्राप्त करने पर काम कर रहा हूँ। मैं एक संशोधन है कि मुझे आशा है कि किसी के साथ मदद कर सकते हैं की जरूरत है। मैं राशि माध्यमिक रिसीवर के बीच विभाजित से शिपिंग राशि घटाना की जरूरत है। मेरे मामले में, प्राथमिक भुगतान रिसीवर भी shipper हो जाएगा और इसलिए शिपिंग शुल्क भुगतान के लिए विभाजन शेष के आधार पर होने चाहिए तो उन्हें पारित किया जाना चाहिए।
मैं बहुत ज्यादा Drupal प्रोग्रामिंग (मुश्किल से साइट बिल्डर स्थिति से बाहर) के साथ एक नौसिखिया हूँ, लेकिन यह है कि यह आसानी से लाइन 829 पर commerce_paypal_chained.module में किया जा सकता है लगता है
$ Calculated_amount = ($ प्रतिशत / 100.00) * $ राशि;
मैं मिल सकता है, तो कुछ इस तरह होना करने के लिए
$ Calculated_amount = ($ प्रतिशत / 100.00) * ($ amount- $ SHIPPING_AMOUNT);
कि मेरी प्रयोजनों की सेवा करने के लिए लग रहा है। मैं सोच रहा हूँ किसी भी करों का भी इस तरह व्यवहार किया जाना चाहिए अगर के रूप में वे सबसे अधिक संभावना प्राथमिक रिसीवर द्वारा अवशोषित हो जाएगा। इन दोनों के लिए आसान सेटिंग्स में एक टॉगल स्विच पॉप करने के लिए पर्याप्त होने लगते हैं। मैं कैसे आदेश के शिपिंग चर तक पहुँचने के लिए यकीन नहीं है। अगर कोई मदद कर सकता है यह बहुत सराहना की जाएगी। जैसा कि मैंने कहा, मैं Drupal मॉड्यूल संशोधन के साथ एक गंभीर नौसिखिया हूँ, लेकिन मैं बाहर करने में मदद करने में सक्षम किसी के लिए अग्रिम में जब तक किसी में झंकार यह पता लगाने की कोशिश करेंगे। धन्यवाद।
chrisolof श्रेय का: chrisolof टिप्पणी की 15 दिसंबर 2014 18:50 पर
तो यह सुनने के लिए शांत आप सभी के द्वारा प्रयोग किया जा रहा है!
जब से मैं इस वाणिज्य पेपैल में शामिल हो रही है की संभावना के बारे में वाणिज्य मॉड्यूल मेंटेनर से कुछ भी नहीं सुना है, मैं जब मैं समय मिलता है अपने स्वयं के स्टैंड-अलोन मॉड्यूल के रूप में इसे जारी करने का प्रयास करने जा रहा हूँ (उम्मीद जल्द ही!)। यही कारण है कि जिस तरह से यह यह मिल जाएगा स्वयं के मुद्दे कतार और हम में से जो लोग हमारे वाणिज्य परियोजनाओं में इस श्रृंखलित भुगतान कार्यक्षमता की जरूरत से अधिक ढूंढने योग्य होना (समुदाय इसे सुधारने के लिए अनुमति के लिए) है।
इसके अलावा - के बाद से मैं कैसे गतिशील रूप से भुगतान श्रृंखला बनाने के बारे में एक समान प्रश्न पूछा जा रहा रखने के लिए - सर्वश्रेष्ठ उत्तर मेरे पास है (और एक मैं अपने प्रोजेक्ट में प्रयुक्त) आदेश के बंद टोकन मॉड्यूल और उपयोग टोकन स्थापित करने के लिए सुनिश्चित करने के लिए था भुगतान श्रृंखला विन्यास में प्लेसहोल्डर के रूप में आपत्ति है। आदेश पर एंटिटी संदर्भ क्षेत्रों के साथ आप संभवतः के रूप में आदेश बनाई गई है वेतन श्रृंखला में उपयोगकर्ताओं के लिए संदर्भ संग्रहीत कर सकती है। फिर, जंजीर भुगतान विन्यास में आप आदेश पर भुगतान श्रृंखला में संग्रहीत उपयोगकर्ताओं के लिए उपयोगकर्ता ई-मेल पते को संदर्भित करने के टोकन मॉड्यूल के प्लेसहोल्डर इस्तेमाल कर सकते हैं। वैसे भी - टोकन और इकाई (उपयोगकर्ता) संदर्भ क्षेत्रों के साथ प्रक्रिया बहुत आसान होना चाहिए। एक बार इस मॉड्यूल जारी की है मैं README.txt में एक बेहतर उदाहरण दे देंगे।
bsandor श्रेय का: bsandor जनवरी 2015 टिप्पणी की 11 21:55 पर
बस सोच रहा है, तो commerce_paypal_chained_ipn_delete () कभी कहा जाता है।
मैं इस मॉड्यूल के कुल प्रवाह नहीं देख सकते हैं तो निश्चित रूप से गलत हो सकता है।
मैं जानता हूँ कि एक मॉड्यूल है कि पहले से ही लिखा गया था नहीं है लेकिन @rszrama के साथ बात कर के बाद, मैं मौजूदा काम (ओ पी, @chrisolof को टोपी की नोक, उसके ठीक काम के लिए जो मुझे बहुत मदद) पुनर्लेखन कर रहा हूँ। यह अलग है कि यह एक बहुत अधिक कम है और सुविधाएं ( "अनुमान") है कि मॉड्यूल के Github संस्करण में मौजूद के कई निकाल देता है।
- निर्माण और भेजने PayRequests का समर्थन करता है
- अन्य मॉड्यूल भेजे जाने से पहले भुगतान अनुरोध को संशोधित करने के लिए एपीआई जोड़ता है।
- पेपैल मॉड्यूल के IPN सूचक प्रणाली का इस्तेमाल करता है।
- डेवलपर दस्तावेज़ के बहुत सारे।
- डिबगिंग और लॉगिंग समर्थन करते हैं।
प्रतिक्रिया के लिए प्रारंभिक पैच। सामग्री है कि अभी भी शायद चाहिए किया जाना:
- PaymentDetails अनुरोध के लिए सहायता।
- यूआई सफाई।
- विचार और इस मॉड्यूल के एपीआई के लिए IPN हैंडलर हुक के कार्यान्वयन।
वहाँ कई चीजें हैं जो Preauthorizations और दूसरों की तरह इस समय समर्थित नहीं कर रहे हैं, लेकिन यह कम से कम भविष्य के कार्य के लिए एक आधार प्रदान करता है।
mglaman श्रेय का: वाणिज्य दोस्तों पर mglaman 15:24 पर 10 दिसंबर 2015 टिप्पणी की
Snarky समीक्षा भेजे
nvahalik श्रेय का: वाणिज्य दोस्तों पर nvahalik 10 15:35 दिसंबर 2015 टिप्पणी की
1 फ़ाइल छिपा / दिखाए / नष्ट कर दिया गया
कुछ सीपी ठीक किया गया।
एक गलत वर्तनी समारोह नाम निर्धारित है।
अन्य कोड की समीक्षा सफाई।
joshmiller श्रेय का: वाणिज्य दोस्तों पर joshmiller 15:37 पर 10 दिसंबर 2015 टिप्पणी की
paypal_wps मामले के साथ एक ही मुद्राओं साझा कर सकता (रयान इस देखने के लिए प्रशंसा)
शायद इन टिप्पणियों से एक्सप्रेस चेकआउट निकालना चाहते हैं।
WPS विफल उल्लेख
commerce_paypal_currencies ( 'paypal_apc') का उपयोग करना चाहते।
यह परीक्षण नहीं किया। बस कुछ ही ऊपर कैच। इसके अलावा (अगर वह एक और अधिक गहन समीक्षा पोस्ट करेंगे यकीन नहीं) आंतरिक तटरक्षक Hipchat से रयान की प्रतिक्रिया प्रलेखित।
एक DPM () निकाले गए।
एक मेनू IPN कॉलबैक ओवरराइड करने के लिए हुक बदल गया है। एक मुद्दा है कि वास्तव में एक मुद्दा हो नहीं हो सकता है टैग की गईं। अनिवार्य रूप से, अनुकूली भुगतान IPN के लिए प्रारूप IPN से निपटने कि वाणिज्य पेपैल करता है और कुछ सफाई सुनिश्चित करने के लिए कि IPN सफलतापूर्वक पेपैल के साथ सत्यापित करता से किया जाना चाहिए टूट जाता है। यही कारण है कि टिकट के मामले में यह समझ में आता है हमें submodule में यहाँ इसे ठीक होने के बजाय मुख्य मॉड्यूल में इसे ठीक करने के लिए खुला है।
nvahalik श्रेय का: वाणिज्य दोस्तों पर nvahalik दिसंबर 2015 टिप्पणी की 18 15:17 पर
1 फ़ाइल छिपा / दिखाए / नष्ट कर दिया गया
hook_commerce_paypal_adaptive_secondary_transaction () जोड़े गए मॉड्यूल लेन-देन करने के लिए प्राथमिक IPN में माध्यमिक रिसीवर मैप करने के लिए अनुमति देने के लिए।
प्राथमिक IPN प्रसंस्करण समारोह जो प्राथमिक लेन-देन के लिए एक अलग समारोह में और फिर चक्र माध्यमिक लेनदेन के माध्यम से उनकी स्थिति अद्यतन करने के लिए संभालती लागू किया। सहायक रद्द किया गया, पूर्ण, और वापसी की गई है माध्यमिक लेनदेन।
बेसिक समर्थन और प्राथमिक रिसीवर लेनदेन के लिए प्रवेश जोड़ा गया है।
एक समस्या जहां लेन-देन ठीक से बनाने में नाकाम रहने के लिए ठीक से आदेश पर एक असफल लेन-देन नहीं बनाता ठीक किया गया।
commerce_paypal_adaptive_ipn_override पर फिर से काम () इतना है कि आप वास्तव में इसके साथ डिबग सकता है।
डॉक्स के कुछ बदल दिया है ताकि यह अधिक उचित रूप से क्यों कोड यह क्या करता है (और पत्थर फेंक नहीं है) बता देते हैं।
कार्यों कि अनुरोध ताकि वे बेहतर परीक्षण किया जा सकता है ठीक करने के लिए उपयोग किया जाता है बाहर तोड़ दिया।
vignesh226 श्रेय का: vignesh226 29 दिसंबर वर्ष 2016 टिप्पणी की 09:38 पर
हाय आप इस के लिए कार्यप्रवाह दे सकते हैं?