2009-11-21 14 views
7

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

मैं उस फॉर्म से उपयोगकर्ता द्वारा प्रदान की गई गैर-भुगतान संबंधी जानकारी को संग्रहीत और बाद में कैसे प्राप्त कर सकता हूं उदा। खाता नाम, उपयोगकर्ता नाम? इन मूल्यों को ब्रेनट्री द्वारा प्रदान की गई प्रतिक्रिया में वापस नहीं किया जाता है।

यदि आप बेसकैम्प साइनअप प्रक्रिया को देखते हैं, तो यह परिणाम मैं प्राप्त करना चाहता हूं।

धन्यवाद

रॉबिन

+0

आश्चर्य है कि मूल्य वापस क्यों नहीं किए जाते हैं। क्या आप इसे समझ गए थे। मैंने जावास्क्रिप्ट को अक्षम करके पुष्टि की है कि वास्तव में उन्हें आपकी इच्छानुसार ब्रेनट्री से वापस करना संभव है। मुझे बिल्कुल वही करने की ज़रूरत है और यह सत्यापित करने के लिए जरूरी है कि सेवा के लिए साइन अप करने से पहले यह संभव था। शायद आपको किसी भी तरह 'ज्ञात' क्वेरी स्ट्रिंग पैरामीटर को पंजीकृत करने की आवश्यकता है। क्या आपने इसे समझ लिया? –

उत्तर

0

मैं एक परियोजना पर ब्रेनट्री की पारदर्शी रीडायरेक्ट का उपयोग करने की मैं आने वाले हैं तो जा रहा हूँ, और इस बारे में सोचा हो रही है अपने आप को, मुझे लगता है कि सबसे अच्छा विकल्प प्रपत्र को तोड़ने के लिए है दो पृष्ठों में। पहले पृष्ठ पर फॉर्म आपके ऐप पर पोस्ट किया गया है, और इसमें खाता नाम, उपयोगकर्ता नाम इत्यादि शामिल है। दूसरे पृष्ठ पर फॉर्म केवल भुगतान जानकारी है, और इसे ब्रेनट्री में पोस्ट किया गया है।

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

तो, दो पेज मुझे ऐसा करने का सबसे साफ तरीका मानते हैं। मैंने इस प्रक्रिया को नहीं देखा है कि 37 सिग्नल का उपयोग होता है - मेरा अनुमान है कि वे फ़ॉर्म जमा करने के लिए जावास्क्रिप्ट का उपयोग करते हैं, फिर खाता जानकारी को उनके ऐप में मान्य और सहेजे जाने के लिए भेजें। यदि ऐसा नहीं है, तो वे एक त्रुटि संदेश प्रदर्शित करते हैं। यदि ऐसा है, तो उन्होंने ब्रेनट्री को फ़ॉर्म जमा करने दिया। यह उन्हें एक पेज पर साइनअप फॉर्म रखने देगा, लेकिन ऐसा लगता है जैसे यह मेरे लिए गन्दा होगा। आप उनकी साइट की जावास्क्रिप्ट देख सकते हैं और देख सकते हैं कि आप क्या देख सकते हैं।

संपादित करें - हाँ, ऐसा लगता है कि वे यही करते हैं। वे प्रोटोटाइप का उपयोग कर रहे हैं, जिसे मैं बहुत परिचित नहीं हूं, लेकिन आप अपने कोड at the bottom of this file के लिए देख सकते हैं। यह बुरा नहीं दिखता है, वास्तव में - मैं इसे स्वयं कोशिश कर सकता हूं।

+0

दूसरे शब्दों में वे AJAX का उपयोग BrainTree को सबमिट करने के लिए करते हैं। पूरी तरह से सुनिश्चित नहीं है कि जावास्क्रिप्ट बंद होने पर क्या होता है! –

+0

फिडलर का उपयोग करके सत्यापित किया गया है कि आपको दो पृष्ठ प्रवाह की आवश्यकता नहीं है (जब तक कि निश्चित रूप से आपके व्यापार प्रवाह के लिए समझ में न हो)। ब्रेनट्री कॉल के दौरान कोई भी पोस्ट डेटा वापस भेज देगा ताकि आप इसके साथ क्या कर सकें। यह सुनिश्चित नहीं है कि रॉबिन की समस्या क्या है जो इस –

10

ठीक है अगर जावास्क्रिप्ट बंद है तो क्या होता है। ऐसा लगता है कि बेसकैम्प ने AJAX के माध्यम से क्रेडिट कार्ड भेजने का विकल्प चुना है, लेकिन ऐसी स्थिति को भी संभालती है जहां जावास्क्रिप्ट अक्षम है और पूरा फॉर्म उन पर प्रेषित हो जाता है - गैर भुगतान फ़ील्ड सहित।

धन्यवाद Fiddler, और बेसकैम्प।

  • उपयोगकर्ता दोनों भुगतान डेटा और कुछ और आप

  • फार्म https://secure.braintreepaymentgateway.com/api/transact.php

  • Braintree को प्रस्तुत साइनअप, नौवहन, खरीदारी की टोकरी आदि के लिए एक HTML फार्म पर चाहते हो सकता है युक्त फ़ॉर्म भरता है इसका जादू करता है और क्रेडिट कार्ड को वॉल्ट में जोड़ता है, और आपके पृष्ठ पर सभी जानकारी वापस भेज देता है। यह

यह वास्तव में एक यूआरएल कॉल करके ऐसा कर रहा है जिसे आपको संभालना होगा, फिर भी आप इसे संभालेंगे।

https://signup.37signals.com/basecamp/plus/signup?transparent_redirect_complete=1 
&signup[page]= 
&signup[source]=basecamphq.com 
&signup[data][first_name]=FRED 
&signup[data][last_name]=FLINTSTONE 
&signup[data][email_address][email protected] 
&signup[data][name]=FRED 
&signup[data][time_zone_id]=Eastern%20Time%20%28US%20%26%20Canada%29 
&signup[data][identity_url]= 
&signup[data][user_name]=BAMBAM 
&signup[data][password]=pebbles123 
&signup[data][confirm_password]=pebbles123 
&signup[data][subdomain]=bedrock.com 
&signup[referrer_code]= 
&signup[coupon_code]= 
&signup[accepts_eula]=1 
&response=1 
&responsetext=Customer+Added 
&authcode= 
&transactionid= 
&avsresponse= 
&cvvresponse= 
&orderid= 
&type= 
&response_code=100 
&customer_vault_id=1253608313 
&username=865251 
&time=20091129014038 
&amount= 
&hash=63209ad25560f9a961525d65b63e31be 

संभवतः 100 नकली सीसी संख्या का परीक्षण करने के लिए 100 साधनों का एक बुरा कोड 'बुरा क्रेडिट कार्ड' का जवाब कोड।

4) आप जो पृष्ठ चाहते हैं उसे फिर से चलाने के लिए स्वतंत्र हैं।

उत्कृष्ट प्रश्न: उम्मीद है कि लेनदेन सफल होने पर कार्ड के अंतिम 4 अंक वापस आते हैं।

+0

को रोका गया था क्यों यह डाउनवॉट किया गया था? यह थोड़ा उलझन में है, लेकिन मुझे लगता है कि मैं समझता हूं। वे रीडायरेक्ट यूआरएल के अनुरोध के लिए सभी जानकारी वापस पास करते हैं? – Josh

+0

@josh आप इसे हमेशा वापस ले सकते हैं :-) हां, आपके पास यह विचार बहुत अधिक है, इसके अलावा यह एक रीडायरेक्ट यूआरएल को छोड़कर नहीं है जिसे वे इसे वापस भेजते हैं। यह सिर्फ एक यूआरएल है जिसे वे रीडायरेक्ट कर रहे हैं।यह आपके ऊपर है कि आपकी साइट पर यह यूआरएल रीडायरेक्ट करता है या नहीं। अंत में हम Authorize.NET के सीआईएम के साथ गए, जिसने हमें थोड़ा अधिक लचीलापन दिया और हम अपने व्यापारियों के साथ व्यक्तिगत संबंध बनाने के लिए गए और वे दिमाग के साथ काम नहीं कर सके। –

+0

मैंने वास्तव में ब्रेनट्री से संपर्क किया, और उन्होंने मुझे एक एपीआई गाइड भेजा जो प्रतिक्रिया विधि का विवरण देता है। आप अपने इनपुट में <इनपुट आईडी = "रीडायरेक्ट" टाइप = "छुपा" मान = "http: //example.tld/gateway_response" नाम = "रीडायरेक्ट" /> निर्दिष्ट करते हैं, और वे उस यूआरएल का उपयोग प्रतिक्रिया में भेजने के लिए करते हैं आपको कॉलबैक यह भ्रमित है कि वे "रीडायरेक्ट" शब्द का उपयोग करते हैं, क्योंकि इससे आपको लगता है कि यह केवल 302 HTTP रीडायरेक्ट है, हालांकि, प्रतिक्रिया के लिए वास्तव में कॉलबैक यूआरएल भी है। – Josh

2

मैं बहुत ही जरूरत थी, और जिस तरह से मैं हल यह ajax का एक सा के साथ था:

मैं दो fieldsets उपयोगकर्ता क्षेत्रों के लिए एक और क्रेडिट कार्ड के विवरण के साथ दूसरे के साथ एक रूप है

  • जब उपयोगकर्ता प्रेस मैं उपयोगकर्ता क्षेत्रों धारावाहिक हो और मेरे ऐप
  • को ajax के माध्यम से भेजा प्रस्तुत उपयोगकर्ता क्षेत्रों के लिए मान्यता गुजरता एप्लिकेशन कुछ पारदर्शी रीडायरेक्ट भी लेन-देन है कि पहले से याद आ रही थी युक्त json साथ उत्तर देता है फॉर्म
  • फॉर्म क्लोन किया गया है और एक नया इनपुट जोड़ा गया है जो मूल्य पारदर्शी रीडायरेक्ट लेनदेन डेटा है।
  • फॉर्म मस्तिष्क को प्रस्तुत किया गया है।
  • देखा, तो साइन अप और एक ही समय

पर भुगतान हो सकता है इस jQuery टुकड़ा मदद करेगा स्पष्ट: https://gist.github.com/742811

3

इस API का हिस्सा रहा नहीं हो सकता है जब प्रश्न मूल रूप से कहा गया था, लेकिन ब्रेनट्री में Custom Fields है जिसे आप ग्राहक और क्रेडिट कार्ड डेटा के साथ भेजने के लिए परिभाषित कर सकते हैं। प्रत्येक फ़ील्ड या तो "पास थ्रू" या "स्टोर और पास थ्रू" हो सकता है

यदि आपको ब्रेनट्री वॉल्ट में संग्रहीत अतिरिक्त डेटा की आवश्यकता नहीं है, तो फ़ील्ड को "पास थ्रू" के रूप में सेट करें और फिर अपना फॉर्म नाम दें आदानों:

transaction[custom_fields][name_that_was_configured_in_control_panel] 

या, यदि वर्ग कोष्ठक एक मुद्दा है:

transaction__custom_fields__name_that_was_configured_in_control_panel 

अगर आपको लगता है कि, तो डेटा आपके ऐप्लिकेशन को वापस पारित हो जाएगा जब आप कॉल करते हैं:

result = Braintree::TransparentRedirect.confirm(query_string) 
+0

ब्रेनट्री में दो एपीआई हैं - पुराना ऑरेंज गेटवे और नया ब्लू गेटवे। साइमन_वेवर का उत्तर संदर्भ ब्रेनट्री ऑरेंज और आपका उत्तर ब्रेनट्री ब्लू का संदर्भ दे रहा है (जिसमें कस्टम फ़ील्ड शामिल हैं)। – davidsmalley

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