2014-07-23 4 views
6

मैं पहली बार ब्रेनट्री पर काम कर रहा हूं और पहले चरण में मुद्दों को प्राप्त कर रहा हूं। मैं ड्रॉपिन कार्यक्षमता और अन्य तक पहुंचने में सक्षम नहीं हूं .. मुझे इसे हल करने में सहायता चाहिए। https://developers.braintreepayments.com/javascript+php/start/overviewमस्तिष्क के मुद्दों का एकीकरण

प्रथम चरण जावास्क्रिप्ट क्लाइंट है:

मैं यहाँ दिए गए चरणों का पालन किया! - मैं के रूप में उल्लेख पीछा किया, स्क्रिप्ट

<script src="https://js.braintreegateway.com/v2/braintree.js"></script> 

जोड़ा फिर HTML हिस्सा

<form id="checkout" method="post" action="/checkout"> 
    <div id="dropin"></div> 
    <input type="submit" value="Pay $10"> 
</form> 

जोड़ा और अंत में मैं स्क्रिप्ट टैग में स्क्रिप्ट नीचे जोड़ दिया है।

braintree.setup("CLIENT_TOKEN_KEY", 'dropin', { 
    container: 'checkout' 
}) 

मैंने अपने सर्वर से प्राप्त क्लाइंट टोकन कुंजी के साथ जांच की है।

अगले कदम के लिए

, मैं के रूप में उल्लेख

Braintree_Configuration::environment('sandbox'); 
Braintree_Configuration::merchantId('use_your_merchant_id'); //updated with our merchant id 
Braintree_Configuration::publicKey('use_your_public_key'); // updated with our public key 
Braintree_Configuration::privateKey('use_your_private_key'); //updated with our private key 

तो जोड़ा

$clientToken = Braintree_ClientToken::generate(array(
    "customerId" => $aCustomerId 
)); 

अब विन्यास कहा, मुद्दे मैं हो रही है -

जब मैं के साथ $ aCustomerId अद्यतन हमारे ग्राहक आईडी, मुझे Braintree_ClientToken में अपरिभाषित "customer_id" फ़ील्ड की घातक त्रुटि मिली है। तो हटा सरणी ("ग्राहक" => $ aCustomerId) और ग्राहक टोकन .. मिल गया

ग्राहक टोकन brantree.setup('TOKEN_KEY','dropin',{container:'checkout'}) में प्रयोग किया जाता है और मिल गया

Error: Unable to find valid container. -braintree.js(line 18) 

मैं भी उस समय मैं कम से brantree.setup('TOKEN_KEY','dropin',{container:'checkout'}) ऊपर एक बार var braintree = Braintree.create("CLIENT_TOKEN_KEY"); उल्लेख किया गया है कि TypeError: braintree.setup is not a function

मैं इसे पिछले दो दिनों से हल करने की कोशिश कर रहा हूं, लेकिन फिर भी मुझे डेमो में दिखाए गए ड्रॉपिन स्क्रीन नहीं मिली।

आशा अच्छा मदद के लिए ..

उत्तर

7

प्लेस सब html/footer अनुभाग के बाद स्क्रिप्ट, यह काम करेगा:

<?php 
require_once 'braintree-php-2.30.0/lib/Braintree.php'; 

Braintree_Configuration::environment('sandbox'); 
Braintree_Configuration::merchantId('-----------'); 
Braintree_Configuration::publicKey('-----------'); 
Braintree_Configuration::privateKey('-----------'); 
if(isset($_POST['submit'])){ 
    /* process transaction */ 
    $result = Braintree_Transaction::sale(array(
    'amount' => '234.00', 
    'creditCard' => array(
    'number' => '30569309025904', 
    'expirationDate' => '05/14' 
    ) 
)); 

if ($result->success) { 
    print_r("success!: " . $result->transaction->id); 
    } else if ($result->transaction) { 
    print_r("Error processing transaction:"); 
    print_r("\n code: " . $result->transaction->processorResponseCode); 
    print_r("\n text: " . $result->transaction->processorResponseText); 
    } else { 
     print_r("Validation errors: \n"); 
     print_r($result->errors->deepAll()); 
    } 
} 

$clientToken = Braintree_ClientToken::generate(); 

?> 

<html> 
    <head> 
    </head> 
    <body> 
    <div id="checkout" method="post" action="/checkout"> 
     <div id="dropin"></div> 
     <input data-braintree-name="number" value="4111111111111111"> 
     <input data-braintree-name="expiration_date" value="10/20"> 
     <input type="submit" id="submit" value="Pay"> 
     <div id="paypal-button"></div> 
    </div> 

    <!-- Scripts --> 
    <script src="https://code.jquery.com/jquery-2.1.1.js"></script> 
    <script src="https://js.braintreegateway.com/v2/braintree.js"></script> 
    <script> 
    braintree.setup("<?php print $clientToken; ?>", "dropin", { container: 
    jQuery("#dropin") , form: jQuery("#checkout") , 

    paymentMethodNonceReceived: function (event, nonce) { 
     // do something 
     } 
    }); 
    </script> 

    </body> 
</html>     
4

मैं ब्रेनट्री में काम करते हैं। यदि आपके पास और प्रश्न हैं तो reach out to our support team पर निःशुल्क महसूस करें।

पहली त्रुटि जो आप देख रहे थे, Unable to find valid container., अगर जावास्क्रिप्ट आपके द्वारा प्रदान किए गए कंटेनर को नहीं ढूंढ पाता है तो उसे फेंक दिया जाएगा। container के लिए स्वीकृत मान एक आईडी स्ट्रिंग, डोम नोड, या jQuery ऑब्जेक्ट हैं। आपका उदाहरण कोड काम करना चाहिए, लेकिन यदि ऐसा नहीं है तो आप उदाहरण के लिए {container: $('#dropin')} एक अलग प्रारूप में पास करने का प्रयास कर सकते हैं।

एक बार जब आप सुनिश्चित हों कि आप सही कंटेनर में गुजर रहे हैं, तो मैं यह भी सुनिश्चित करने की अनुशंसा करता हूं कि आप अपने क्लाइंट टोकन में सही तरीके से इंटरपोलेट कर रहे हैं। यदि आप अपने पृष्ठ पर स्रोत देखते हैं, तो आपका क्लाइंट टोकन बेस 64 एन्कोडेड स्ट्रिंग होना चाहिए।

+1

उत्तर के लिए धन्यवाद, मैंने '{कंटेनर: $ ('# ड्रॉपिन')} के साथ भी कोशिश की, लेकिन एक ही समस्या है। कोई टाइपो गलती नहीं है क्योंकि मैं ब्रेनट्री साइट के डेमो से कॉपी कर रहा हूं .. –

5

मैं इस समस्या थी और पृष्ठ के अंत में जावास्क्रिप्ट रख कर इसे हल। विकल्प इसे एक दस्तावेज़ तैयार परीक्षण में संलग्न करना होगा।

समस्या तब होती है क्योंकि मस्तिष्क कोड जैसे ही स्क्रिप्ट लोड हो जाता है, कंटेनर को खोजने का प्रयास करता है। लेकिन यदि आपका कोड दस्तावेज़ के प्रमुख में है, तो कंटेनर लोड नहीं किया गया होगा, इसलिए इसे कंटेनर नहीं मिलेगा और आपको एक त्रुटि मिलेगी।

base64_encoding के बारे में टिप्पणी गलत है। यह पूरी तरह से काम करता है अगर कंटेनर को पहले से एन्कोडेड स्ट्रिंग को फिर से एन्कोडिंग के आसपास बिना चकित किए जाने के बाद कोड ट्रिगर किया गया है।

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