2017-01-06 6 views
2

私はangle2アプリのUIにbraintreesドロップを含めるための解決策を探していましたが、適切なものを見つけることができません。私はthis angular2/braintree solutionを見ましたが、これは最早、これはもはや維持されておらず、ブレーンツリーのウェブサイトへの訪問者を指しています。私はクレジットカードフォームを初期化するのに問題はありませんが、payment_nonceをサーバーに送信すると、値はnullになります。angle2アプリでbraintreeのドロップインUIを使用するにはどうすればいいですか?

誰かが提案を持っているか、またはangular2アプリでbraintreesをuiにドロップする方法の例を参照してください。ありがとう!

+0

完全な開示:私はブレインツリーで働いています。 BraintreeのJavascript SDKとAngular 2の間には基本的な非互換性はありませんが、Angular 2を使用する例はありません。ここでの情報は解決策を提供するには不十分です。より多くのサポートを受けるには、あなたのコードとウェブサイトの詳細について[Braintree Support](https://support.braintreepayments.com/)に連絡してください。 – jake

+0

同じことを探しています。 Braintreeの人はこれに答えましたか? –

+0

私は応答を得た。彼らはangular2は正式にはサポートされていないが、angle2と互換性のないbraintree APIには何も根本的なものはない、と彼らは言った。私は定期的なjavascript/angular2の醜い混合物で動作しました。 – Dan

答えて

0

コメントに記載されているとおり、これは醜い解決策でした。しかし、私はonPaymentMethodReceivedでトークンを取得できました。そして、その値を非表示の入力に追加して、フォームをサーバーに送信しました。私のフォームには特別な要件がありますので、ngNoForm属性を使用する必要がありました。

... 
     <input id="nonce" type="text" hidden [(ngModel)]="nonce" name="nonce"> 

... 

</form> 

ngOnInit() { 

    var url = window.location.href; 
    var id = this.getEmployeeUserId(url); 
    this.employeeId = id; 

    this.ghttp.getEmployeeByuserId(id) 
     .then((data)=>{ 
     this.day30Price = data._addAmount; 
     this.day60Price = data._add2month; 
     this.day90Price = data._add3month; 
     }); 

    this.splashhttp.getToken() 
     .then((res)=>{ 
     var id = res._body; 

     braintree.setup(id, 'dropin', { 
      container: 'dropin-container', 
      onPaymentMethodReceived: function (obj) { 

      document.getElementById("nonce").value = obj.nonce; 

      var myForm = document.getElementById("myForm"); 

      myForm.submit(); 
      } 
     }); 
     }); 

    } 
関連する問題