ng-cordova
Version:
[ngCordova](http://ngcordova.com/) ==========
107 lines (94 loc) • 2.79 kB
JavaScript
// install : cordova plugin add https://github.com/vkeepe/card.io.git
// link : https://github.com/vkeepe/card.io.git
/* globals CardIO: true */
angular.module('ngCordova.plugins.cardIO', [])
.provider(
'$cordovaNgCardIO', [function () {
/**
* Default array of response data from cardIO scan card
*/
var defaultRespFields = [
'card_type',
'redacted_card_number',
'card_number',
'expiry_month',
'expiry_year',
'short_expiry_year',
'cvv',
'zip'
];
/**
* Default config for cardIO scan function
*/
var defaultScanConfig = {
'expiry': true,
'cvv': true,
'zip': false,
'suppressManual': false,
'suppressConfirm': false,
'hideLogo': true
};
/**
* Configuring defaultRespFields using $cordovaNgCardIOProvider
*
*/
this.setCardIOResponseFields = function (fields) {
if (!fields || !angular.isArray(fields)) {
return;
}
defaultRespFields = fields;
};
/**
*
* Configuring defaultScanConfig using $cordovaNgCardIOProvider
*/
this.setScanerConfig = function (config) {
if (!config || !angular.isObject(config)) {
return;
}
defaultScanConfig.expiry = config.expiry || true;
defaultScanConfig.cvv = config.cvv || true;
defaultScanConfig.zip = config.zip || false;
defaultScanConfig.suppressManual = config.suppressManual || false;
defaultScanConfig.suppressConfirm = config.suppressConfirm || false;
defaultScanConfig.hideLogo = config.hideLogo || true;
};
/**
* Function scanCard for $cordovaNgCardIO service to make scan of card
*
*/
this.$get = ['$q', function ($q) {
return {
scanCard: function () {
var deferred = $q.defer();
CardIO.scan(
defaultScanConfig,
function (response) {
if (response === null) {
deferred.reject(null);
} else {
var respData = {};
for (
var i = 0, len = defaultRespFields.length; i < len; i++) {
var field = defaultRespFields[i];
if (field === 'short_expiry_year') {
respData[field] = String(response.expiry_year).substr( // jshint ignore:line
2, 2
) || '';
} else {
respData[field] = response[field] || '';
}
}
deferred.resolve(respData);
}
},
function () {
deferred.reject(null);
}
);
return deferred.promise;
}
};
}];
}]
);