2016-05-12 7 views
0

Ich benutze braintree rails dropin und nur meine erste Transaktion wurde erfolgreich im Sandbox-Admin reflektiert. Ich habe festgestellt, dass das Client-Token, das auf dem Controller generiert wird, jedes Mal dasselbe ist, wenn es aufgerufen wird. Ist das ein Fehler oder soll es jedes Mal das gleiche Token erzeugen? Ich habe in der Dokumentation zu diesem Thema nichts gesehen.Ist das braintree Client-Token eindeutig für jede Bestellung

Antwort

1

Volle Offenlegung: Ich arbeite in Braintree. Wenn Sie weitere Fragen haben, wenden Sie sich bitte an support.

Das Client-Token ist für jeden Aufruf der Braintree-API eindeutig. Ohne die Generierung von Code oder Beispieltoken gibt es keine Möglichkeit, dieses Problem zu bestätigen oder zu beheben. Aber ich vermute, dass das nicht wirklich passiert. Ich vermute, was Sie vielleicht sehen, ist, dass es fast völlig dasselbe ist. Sie können dies testen in irb:

?> irb 
2.2.3p173 :001 > require 'braintree' 
2.2.3p173 :002 > Braintree::Configuration.environment = :sandbox 
2.2.3p173 :003 > Braintree::Configuration.merchant_id = 'yourid' 
2.2.3p173 :004 > Braintree::Configuration.public_key = 'yourpubkey' 
2.2.3p173 :005 > Braintree::Configuration.private_key = 'yourprivkey' 
2.2.3p173 :006 > Braintree::ClientToken.generate().hash 
I, [2016-05-12T16:38:15.694941 #14251] INFO -- : [Braintree] [12/May/2016 16:38:15 UTC] POST /merchants/yourid/client_token 201 
=> -108931568589167346 
2.2.3p173 :007 > Braintree::ClientToken.generate().hash 
I, [2016-05-12T16:38:16.616599 #14251] INFO -- : [Braintree] [12/May/2016 16:38:16 UTC] POST /merchants/yourid/client_token 201 
=> -816324802974143833 

Der Client-Token ist ein Blob von Daten, die, as the documentation says, enthält alle Autorisierungs- und Konfigurationsinformationen Ihr Client die Client-SDK initialisieren muss mit Braintree zu kommunizieren. Unter der Haube können Sie sehen, dass aktuelle Client-Token Base-64-codierte Datentypen mit einer JSON-Zeichenkette sind. Es ist leicht zu sehen, dass sie einzigartig sind, wenn Sie die authorizationFingerprint sehen:

2.2.3p173 :015 > require 'base64' 
2.2.3p173 :018 > Base64.decode64(Braintree::ClientToken.generate()) 
I, [2016-05-12T16:39:32.974157 #14251] INFO -- : [Braintree] [12/May/2016 16:39:32 UTC] POST /merchants/yxcm2pqnmw2jwsgn/client_token 201 
=> "{\"version\":2,\"authorizationFingerprint\":\"5845e00458d7e9b963c3490946432997b154e12345e7918001289edddd453d1b|created_at=2016-05-12T16:39:32.853698588+0000\\u0026merchant_id=yourid\\u0026public_key=dqgrxzv8f4syj95m\",\"configUrl\":\"https://api.sandbox.braintreegateway.com:443/merchants/yxcm2pqnmw2jwsgn/client_api/v1/configuration\",\"challenges\":[\"cvv\"],\"environment\":\"sandbox\",\"clientApiUrl\":\"https://api.sandbox.braintreegateway.com:443/merchants/yourid/client_api\",\"assetsUrl\":\"https://assets.braintreegateway.com\",\"authUrl\":\"https://auth.venmo.sandbox.braintreegateway.com\",\"analytics\":{\"url\":\"https://client-analytics.sandbox.braintreegateway.com/yxcm2pqnmw2jwsgn\"},\"threeDSecureEnabled\":true,\"paypalEnabled\":true,\"paypal\":{\"displayName\":\"Your company name\",\"clientId\":null,\"privacyUrl\":\"http://example.com/pp\",\"userAgreementUrl\":\"http://example.com/tos\",\"baseUrl\":\"https://assets.braintreegateway.com\",\"assetsUrl\":\"https://checkout.paypal.com\",\"directBaseUrl\":null,\"allowHttp\":true,\"environmentNoNetwork\":true,\"environment\":\"offline\",\"unvettedMerchant\":false,\"braintreeClientId\":\"masterclient3\",\"billingAgreementsEnabled\":false,\"merchantAccountId\":\"somemerchantaccountid\",\"currencyIsoCode\":\"USD\"},\"coinbaseEnabled\":false,\"merchantId\":\"yourid\",\"venmo\":\"off\"}" 
2.2.3p173 :019 > Base64.decode64(Braintree::ClientToken.generate()) 
I, [2016-05-12T16:40:05.758760 #14251] INFO -- : [Braintree] [12/May/2016 16:40:05 UTC] POST /merchants/yxcm2pqnmw2jwsgn/client_token 201 
=> "{\"version\":2,\"authorizationFingerprint\":\"c68a6c2ce2becb3gdfe6e9c9d2f4bd65b912cc2b6a7980971231974ea37dd625|created_at=2016-05-12T16:40:05.605145848+0000\\u0026merchant_id=yourid\\u0026public_key=yourpubkey\",\"configUrl\":\"https://api.sandbox.braintreegateway.com:443/merchants/yourid/client_api/v1/configuration\",\"challenges\":[\"cvv\"],\"environment\":\"sandbox\",\"clientApiUrl\":\"https://api.sandbox.braintreegateway.com:443/merchants/yxcm2pqnmw2jwsgn/client_api\",\"assetsUrl\":\"https://assets.braintreegateway.com\",\"authUrl\":\"https://auth.venmo.sandbox.braintreegateway.com\",\"analytics\":{\"url\":\"https://client-analytics.sandbox.braintreegateway.com/yxcm2pqnmw2jwsgn\"},\"threeDSecureEnabled\":true,\"paypalEnabled\":true,\"paypal\":{\"displayName\":\"Your company name\",\"clientId\":null,\"privacyUrl\":\"http://example.com/pp\",\"userAgreementUrl\":\"http://example.com/tos\",\"baseUrl\":\"https://assets.braintreegateway.com\",\"assetsUrl\":\"https://checkout.paypal.com\",\"directBaseUrl\":null,\"allowHttp\":true,\"environmentNoNetwork\":true,\"environment\":\"offline\",\"unvettedMerchant\":false,\"braintreeClientId\":\"masterclient3\",\"billingAgreementsEnabled\":false,\"merchantAccountId\":\"somemerchantaccountid\",\"currencyIsoCode\":\"USD\"},\"coinbaseEnabled\":false,\"merchantId\":\"yourid\",\"venmo\":\"off\"}" 

Wenn Sie nicht anders authorizationFingerprints sehen Sie, würde ich Braintree Support umgehend kontaktieren.

+0

Ich überprüfte die braintree Protokolle und bestätigte das gleiche Token wird jedes Mal erzeugt. Als ich versuchte, die Berechtigung zu erhaltenFingerprint auf irb bekomme einen Client-Token 401 Authentifizierungsfehler – Wil

+0

Haben Sie Ihre Braintree-Anmeldeinformationen wie im ersten IRB-Snippet hinzugefügt? –

+0

Ich musste tatsächlich verschiedene Tokens ausdrucken und dann Brief für Brief vergleichen und sie sind unterschiedlich: eyJ2ZXJzaW9uIjoyLCJhdXRob3JpemF0aW9uRmluZ2VycHJpbnQiOiI eyJ2ZXJzaW9uIjoyLCJhdXRob3JpemF0aW9uRmluZ2VycHJpbnQiOiJ. Ich musste das J dazu bringen zu erkennen, dass diese beiden Token anders sind, – Wil