全開示:私はブレインツリーで働いています。ご不明な点がございましたら、contact supportまでお気軽にお問い合わせください。
Braintree Hosted Fieldsは、カード所有者名としてiFrameを使用することはできません。利用可能なfieldOptions
はhereと記載されています。代わりに、あなたのHTMLにform
要素を追加入力を追加する必要があります。
<form action="/" id="my-sample-form" method="post">
<label for="card-number">Card Number</label>
<div id="card-number"></div>
<label for="cvv">CVV</label>
<div id="cvv"></div>
<label for="expiration-date">Expiration Date</label>
<div id="expiration-date"></div>
<label for="cardholder-name">Cardholder Name</label>
<input id="cardholder-name" name="cardholderName" placeholder="Cardholder Name"/>
<input type="submit" value="Pay" disabled />
</form>
あなたcardholderName
入力の値は、その後event.target.cardholderName.value
としてあなたbraintree.hostedFields.create
呼び出しでアクセス可能であるとoptions object of the tokenize callに含めることができます。
braintree.hostedFields.create({
client: clientInstance,
styles: {
'input.invalid': {
'color': 'red'
},
'input.valid': {
'color': 'green'
}
},
fields: {
number: {
selector: '#card-number',
placeholder: '4111 1111 1111 1111'
},
cvv: {
selector: '#cvv',
placeholder: '123'
},
expirationDate: {
selector: '#expiration-date',
placeholder: '10/2019'
}
}
}, function (hostedFieldsErr, hostedFieldsInstance) {
if (hostedFieldsErr) {
console.error(hostedFieldsErr);
return;
}
submit.removeAttribute('disabled');
form.addEventListener('submit', function (event) {
event.preventDefault();
hostedFieldsInstance.tokenize({
cardholderName: event.target.cardholderName.value
}, function (tokenizeErr, payload) {
if (tokenizeErr) {
console.error(tokenizeErr);
return;
}
// Submit nonce to your server here
console.log(payload.nonce);
});
}, false);
});