我正在尝试使用 braintree的NodeJS 库构建支付网关库,我正在使用卡数据从前端进行 ajax 调用。
客户端
var card_data = {
type: "AmEx",
number: "3XXXXXXXXXXXXXX",
expire_month: "XX",
expire_year: "201X",
cvv2: "XXX",
name: "sandeep",
price : "200",
currency : "USD"
};
Ajax调用,
$.ajax({
method: "GET",
url: "http://localhost:3000/paymentPath_braintree",
data: card_data
}).done(function(message){
console.log(message);
}).fail(function(data, message){
console.log(message);
});
服务器端
var braintreePay = require('braintree');
app.get("/payment_braintree", function(request, response){
var data = request.query;
var gateway = braintreePay.connect({
environment: braintreePay.Environment.Sandbox,
merchantId: "MymerchentID",
publicKey: "MypublicKey",
privateKey: "MyprivateKey",
});
var saleRequest = {
amount: data.price,
creditCard: {
number: data.number,
cvv: data.cvv2,
expirationMonth: data.expire_month,
expirationYear: data.expire_year.slice(2),
cardHolder: data.name
},
options: {
submitForSettlement: true
}
};
gateway.transaction.sale(saleRequest, function(error, result){
if(error){
console.log(error.name);
throw error;
}
if(result.success){
response.send(result.transaction.id);
} else {
response.send(result.message);
}
});
});
我已经交叉检查了所有内容,从密钥和卡片数据中的所有内容都是有序的,但是在使用 gateway.transaction.sale(...); 后,我在回调中收到错误身份验证错误。我试图弄清楚几个小时却无法通过。
错误对象是
authenticationError: Authentication Error
arguments: undefined
message: "Authentication Error"
name: "authenticationError"
stack: undefined
type: "authenticationError"
我创建了一个帐户sandbox.braintreegateway这些关键凭据来自我创建的帐户,我不会创建一个类似于在PayPal中完成的应用程序。 我在Braintree整合中缺乏理解。 是他们任何适当的文件资源。