2017-05-03 8 views
0

私は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; 
     } 
     }); 
    } 
    }); 
});` 
+0

クライアントトークンが生成されるサーバーサイドコードを追加しますか?ここ – ThinkAboutIt

+0

は、生成サーバコードであるトークン:
'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);エラーを返します} }}}}}}} }) ' –

答えて

0

全開示:ここ

がコードである私は、ブレインツリーで働いています。ご不明な点がございましたら、supportまでお気軽にお問い合わせください。

お客様がお支払い方法を入力すると、選択したお支払い方法が、ドロップインUIのコンパクトビューのDOM要素内に表示され、クレジットカード番号の最後の2桁とカードブランド、またはPayPalのメールアドレスが選択されている場合は、 「支払い方法の変更」リンクとコンパクトビューは、ドロップインUIの一部であり、フォームが提出されるまで顧客の以前の支払い方法とともに表示されます。

つまり、onPaymentMethodReceivedコールバックを使用している場合、ドロップインUIはpayment_method_nonce DOM要素をフォームに挿入して送信しないため、ページからドロップインUIを削除するには、 displayのスタイル値をnoneに変更するか、teardownを使用するように設定することで、表示されているDOM要素を非表示にするか、支払い方法の表示を含むセットアップ呼び出しで作成されたものを削除します。

関連する問題