Braintree API Clientが正しく設定されていません:clientTokenで指定されたclientApiUrlが無効です。Braintree API Clientが正しくありません:clientTokenで指定されたclientApiUrlが無効です
ブラウザのログにこのエラーが表示されます。 Braintree javascript SDKバージョン2(ドロップインあり):フロントエンドがフロントエンドのノードバックエンドドメイン内のすべてのトークンとAPIキーが正常に動作していることが確認されています。
統合
/server/app.js - サーバー側ノードSDK
function startBraintree() {
app.post('/api/token', function (request, response) {
gateway.clientToken.generate({}, function (err, res) {
if (err) throw err;
response.json({
"client_token": res.clientToken
});
console.log(res.clientToken)
});
});
}
.then(startBraintree)
.catch(function(err) {
console.log('Braintree', err);
});
これは、実際には、サーバーログにクライアント・トークンを生成しません。私はこのクライアントトークンをブラウザのコンソールにも一致させ、実際にこの特定のトークンをブラウザに送信していることを確認します。 -
/client/app/braintree.component.js これはクライアント側のBraintreeです.setup統合。
export class BraintreeComponent {
clientToken = this.clientToken;
// constructor($http) {
// this.$http = $http;
// }
// $onInit() {
// this.$http.post('/api/token')
// .then(response => {
// this.clientToken = response.data;
// console.log(response.data);
// });
// }
/*@ngInject*/
constructor($scope, $http) {
this.$http = $http;
$scope.hasCalledBack = 'Nope';
this.$http.post('/api/token')
.then(response => {
this.clientToken = response.data;
console.log(this.clientToken);
braintree.setup(this.clientToken,
// Replace this with a client token from your server
'dropin', {
container: 'dropin',
onPaymentMethodReceived: function (obj) {
$scope.$apply(function() {
$scope.hasCalledBack = 'YEP!';
alert('Did the scope variable change? Yes!');
console.log(obj)
});
}
});
});
}
}
私はクライアントトークンを生成し、それを静的な値として宣言すればうまく動作します。