app/assets/javascripts/catarse_moip/payment_card.js
App.views.MoipForm.addChild('PaymentCard', _.extend({
el: '#payment_type_cards_section',
events: {
'keyup #payment_card_number' : 'onKeyupPaymentCardNumber',
'click #credit_card_submit' : 'onSubmit',
'blur #payment_card_cpf' : 'onUserDocumentKeyup'
},
activate: function(options){
// Set credit card fields masks
this.moipForm = this.parent;
this.$('#payment_card_number').payment('formatCardNumber');
window.app.maskAllElements();
},
onKeyupPaymentCardNumber: function(e){
this.$('#payment_card_flag').html(this.getCardFlag($(e.currentTarget).val()))
},
onSubmit: function(e) {
var that = this;
e.preventDefault();
if(!that.moipForm.validate()){
return false;
}
that.moipForm.loader.show();
// Get token and send payment
that.moipForm.getMoipToken(function(){
var settings = {
"Forma": "CartaoCredito",
"Instituicao": that.$('input#payment_card_flag').val(),
"Parcelas": "1",
"Recebimento": "AVista",
"CartaoCredito": {
"Numero": that.$('input#payment_card_number').val(),
"Expiracao": that.$('input#payment_card_date').val(),
"CodigoSeguranca": that.$('input#payment_card_source').val(),
"Portador": {
"Nome": that.$('input#payment_card_name').val(),
"DataNascimento": that.$('input#payment_card_birth').val(),
"Telefone": that.$('input#payment_card_phone').val(),
"Identidade": that.$('input#payment_card_cpf').val()
}
}
};
MoipWidget(settings);
});
},
getCardFlag: function(number) {
return $.payment.cardType(number).toUpperCase();
}
}, App.views.MoipForm.UserDocument));