braintree / braintree_node

Braintree Node.js library
https://developer.paypal.com/braintree/docs/start/overview
MIT License
334 stars 104 forks source link

Cannot submit checkout data using gateway.transaction.sale #170

Closed nousacademy closed 4 years ago

nousacademy commented 4 years ago

General information

Issue description

Not able to submit checkout data to Braintree. I checked the client token and it matches the one I'm submitting for checkout.

gateway.transaction.sale({ amount: "10.00", paymentMethodNonce: paymentData.payment_method_nonce, // deviceData: deviceDataFromTheClient, options: { submitForSettlement: true } }, function (err, result) { if (result.success) { // See result.transaction for details console.log(result) res.end(JSON.stringify(result)); } else { // Handle errors console.log(err) res.end(JSON.stringify(err)); } });

I receive the error " Error in callback function " (I copied the example on braintree documentation and receive same error, as documented here: https://developers.braintreepayments.com/reference/request/transaction/sale/node).

Error received on failure:

Error [invalidKeysError]: These keys are invalid: paymentMethodNonce[authorizationType], paymentMethodNonce[authorizationFingerprint], paymentMethodNonce[analyticsMetadata][merchantAppId], paymentMethodNonce[analyticsMetadata][platform], paymentMethodNonce[analyticsMetadata][sdkVersion], paymentMethodNonce[analyticsMetadata][source], paymentMethodNonce[analyticsMetadata][integration], paymentMethodNonce[analyticsMetadata][integrationType], paymentMethodNonce[analyticsMetadata][sessionId], paymentMethodNonce[gatewayConfiguration][environment], paymentMethodNonce[gatewayConfiguration][clientApiUrl], paymentMethodNonce[gatewayConfiguration][assetsUrl], paymentMethodNonce[gatewayConfiguration][analytics][url], paymentMethodNonce[gatewayConfiguration][merchantId], paymentMethodNonce[gatewayConfiguration][venmo], paymentMethodNonce[gatewayConfiguration][graphQL][url], paymentMethodNonce[gatewayConfiguration][graphQL][features][0], paymentMethodNonce[gatewayConfiguration][creditCards][supportedCardTypes][0], paymentMethodNonce[gatewayConfiguration][creditCards][supportedCardTypes][1], paymentMethodNonce[gatewayConfiguration][creditCards][supportedCardTypes][2], paymentMethodNonce[gatewayConfiguration][creditCards][supportedCardTypes][3], paymentMethodNonce[gatewayConfiguration][creditCards][supportedCardTypes][4], paymentMethodNonce[gatewayConfiguration][threeDSecureEnabled], paymentMethodNonce[gatewayConfiguration][threeDSecure][cardinalAuthenticationJWT], paymentMethodNonce[gatewayConfiguration][paypalEnabled], paymentMethodNonce[gatewayConfiguration][paypal][displayName], paymentMethodNonce[gatewayConfiguration][paypal][privacyUrl], paymentMethodNonce[gatewayConfiguration][paypal][userAgreementUrl], paymentMethodNonce[gatewayConfiguration][paypal][assetsUrl], paymentMethodNonce[gatewayConfiguration][paypal][environment], paymentMethodNonce[gatewayConfiguration][paypal][environmentNoNetwork], paymentMethodNonce[gatewayConfiguration][paypal][unvettedMerchant], paymentMethodNonce[gatewayConfiguration][paypal][braintreeClientId], paymentMethodNonce[gatewayConfiguration][paypal][billingAgreementsEnabled], paymentMethodNonce[gatewayConfiguration][paypal][merchantAccountId], paymentMethodNonce[gatewayConfiguration][paypal][currencyIsoCode], paymentMethodNonce[authorization]

hollabaq86 commented 4 years ago

👋 @nousacademy Please contact Braintree Support for assistance, they can assist you in troubleshooting the errors you're seeing.

crookedneighbor commented 4 years ago

As a quick help with this, the paymentMethodNonce field is a string, not an object. Definitely work with our support team to see how you're passing up what looks like a configuration object instead of the nonce from a tokenization request.