Skip to content

Commit 95f198e

Browse files
author
Cristian Partica
committed
MAGETWO-39881: [Tech Debt] Enable CC auto-detection for Braintree
- credit card autodetect in My Credit Cards Braintree vault - spacer on credit cards images types, when vault is enabled, to not overlap the dropdown with the cards list
1 parent c1caecc commit 95f198e

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

app/code/Magento/Braintree/view/frontend/web/js/cc-edit-form.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,15 @@ define([
4444
_create: function () {
4545
if (!this.preventDoubleInit()) {
4646
var self = this;
47+
this.ccTypes = {
48+
VI: [new RegExp('^4[0-9]{12}([0-9]{3})?$'), new RegExp('^[0-9]{3}$')],
49+
MC: [new RegExp('^5[1-5][0-9]{14}$'), new RegExp('^[0-9]{3}$')],
50+
AE: [new RegExp('^3[47][0-9]{13}$'), new RegExp('^[0-9]{4}$')],
51+
DI: [new RegExp('^6011[0-9]{12}$'), new RegExp('^[0-9]{3}$')],
52+
JCB: [new RegExp('^(3[0-9]{15}|(2131|1800)[0-9]{11})$'), new RegExp('^[0-9]{3,4}$')],
53+
OT: [false, new RegExp('^([0-9]{3}|[0-9]{4})?$')]
54+
};
55+
4756
self.options.braintreeClient = new braintree.api.Client({clientToken: this.options.clientToken});
4857
$(self.options.formId).on('submit', function (e) {
4958
e.preventDefault();
@@ -57,6 +66,23 @@ define([
5766
$(self.options.billingAddressCountry).on('change', function (e) {
5867
self.populateCountrySpecificCCType();
5968
});
69+
70+
$(self.options.creditCardNumber).on('input', function () {
71+
var ccNumber = $(this).val(),
72+
ccTypeField = $(self.options.creditCardTypeId).find('options');
73+
ccNumber = ccNumber.replace(/\D/g,''); //remove all but the digits
74+
for(var ccType in self.ccTypes) {
75+
if(self.ccTypes.hasOwnProperty(ccType)) {
76+
var ccRegex = self.ccTypes[ccType][0];
77+
if(ccRegex && ccNumber.match(ccRegex)) {
78+
if ($(self.options.creditCardTypeId).find('option').length>0) {
79+
$(self.options.creditCardTypeId).val(ccType);
80+
}
81+
}
82+
}
83+
}
84+
});
85+
6086
$(self.options.billingAddressCountry).trigger('change');
6187
}
6288

app/code/Magento/Braintree/view/frontend/web/template/payment/cc-form.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
</div>
3939
</div>
4040
<!-- /ko -->
41+
<div>&nbsp;</div>
4142
<div class="field type required" data-bind="visible: isCcFormShown">
4243
<label data-bind="attr: {for: getCode() + '_cc_type'}" class="label">
4344
<span><!-- ko text: $t('Credit Card Type')--><!-- /ko --></span>

0 commit comments

Comments
 (0)