なぜ、ホストされているフィールドのonPaymentMethodReceivedが値を返さないのかを調べるのに苦労しています。 BrainTree Hosted Fields onPaymentMethodReceived関数が動作しないnonceを返す
<form action="" id="my-form" method="post">
<label for="a">Amount</label>
<div id="amount">
<input type="text" name="amount" value="400" id="amount" />
</div>
<label for="card-number">Card Number</label>
<div id="card-number">
<input type="text" name="cardNumber" value="4111111111111111" id="cardNumber" />
</div>
<label for="cvv">CVV</label>
<div id="cvv">
<input type="text" name="CVV" value="020" id="cv-v" />
</div>
<label for="expiration-month">Expiration Month</label>
<div id="expiration-month">
<input type="text" name="expirMonth" value="10" id="expirMonth" />
</div>
<label for="expiration-year">Expiration Year</label>
<div id="expiration-year">
<input type="text" name="expirYear" value="20" id="expirYear" />
</div>
<input type="submit" value="Pay" id="btn_submit"/>
</form>
<script>
var nonce0 ;
braintree.setup(clientToken, "custom",
{
id: "my-form",
hostedFields: {
number: {
selector: "#card-number"
},
cvv: {
selector: "#cvv"
},
expirationMonth: {
selector: "#expiration-month"
},
expirationYear: {
selector: "#expiration-year"
},
},
onPaymentMethodReceived:function(nonce){
console.log("in onPaymentMethodReceived");
console.log(nonce);
nonce0 = nonce;
alert('OnPaymentMR');
console.log(JSON.stringify(nonce));
return false;
},
onError :function(obj){
alert('onError');
console.log(JSON.stringify(obj));
}
});
console.log('BTree = '+ nonce0);
</script>
``
私はnonceが返さ保存したかったが、何も起こっていない、にconsole.logは任意の値を示していません。 onErrorでも何もしていません。ブレークポイントを使用すると、非表示のnonceが戻ってきているが、コールバック関数が起動していないことがわかります。
Dropin-UIで試してみましたが、うまくいき、onPaymentMethodReceivedからnonceを取得できます。 私が間違っていることがわかりません。
感謝を助けます。フォームからのデータがAPIに渡されています。私の問題は、onPaymentMethodReceivedのコールバック関数が値を返さないことです。私がスクリプトにブレークポイントを置くと、nonceがbraintree APIから戻ってくるのがわかりますが、onPaymentMethodReceived関数は呼び出されません。 – user1741614
これらのコードスニペットで説明している問題を再現できませんでした。この時点で、あなたの実装の詳細を議論するために[Braintree support](https://support.braintreepayments.com)に連絡することをお勧めします。 –