私はBraintree DropIn支払いフォームをMeteor Applicationで使用しています。それは正常に動作し、フォームを作成し、トランザクションを作成することができます。しかし、フォームを送信すると、現在のお支払い方法とそれを更新するリンクを示す新しい画面が表示されます。サーバーがコールを返すと、私のカスタム確認ページが表示されます。Braintree DropInフォームで変更が表示されます。
だから、ワークフローシーケンスは次のとおりです。クリックオンから
1. DROPIN決済(クレジットカード、DTの経験、CVV、...)
2.ボタン
3.提出はonPaymentMethodReceived:セットアップの一部が
と呼ばれています それが完了していないながら 4.新しい一時的な画面が表示されます(オプションpymt変更する方法)
5. onPaymentMethodReceived:部分が完了し、カスタム支払い確認画面は、私は取り除くことができますどのように前の画面
を置き換えますこの更新の支払い方法画面。
`Template.billPay.onRendered(function() {
console.log('Satrt billPay Render');
Meteor.call('getClientToken', function(error, clientToken) {
if (error) {
console.log('Client Token Err');
console.log(error);
} else {
braintree.setup(clientToken, "dropin", {
container: "payment-form",
onPaymentMethodReceived: function (response) {
var nonce = response.nonce;
Session.set('pymtResponse',response.details);
Session.set('nonce',nonce);
$('.paySubmit').prop('disabled', true);
Meteor.call('btCreateCustomer', function(error, success) {
if (error) {
throw new Meteor.Error('customer-creation-failed');
} else {
Meteor.call('createTransaction', Session.get('nonce'), function(error, success) {
Session.set('pymtTxId', success.transaction.id);
Session.set('pymtTxId', success.transaction.id);
}
});
}
});
return false;
}
});
}
});
});`
クライアントトークンが生成されるサーバーサイドコードを追加しますか?ここ – ThinkAboutIt
は、生成サーバコードであるトークン:
'Meteor.methods({ れるGetClientToken:関数(のclientId){ VAR generateToken = Meteor.wrapAsync(gateway.clientToken.generate、gateway.clientToken); VARオプション= { }; するvar BTID = Meteor.user()custBtId; はconsole.log(+ BTID 'genToken BTID'); // options.customerId = BTID; 試み{VAR応答= generateToken(オプション); {console.log(err.message);エラーを返します} }}}}}}} }) ' –