Angular provider for easy interaction with Conekta.js. angularjs-conekta wraps Conekta.js's async operations in $q
promises, making response handling easier and eliminating $scope.$apply
calls and other repetitive boilerplate in your application. Check out angular-credit-cards for validating your credit card forms.
npm install --save angularjs-conekta
angularjs-conekta will load Conekta.js when it's first called. You don't need to directly include Conekta.js via a <script>
tag.
// node module exports the string 'angularjs-conekta' for convenience
angular.module('myApp', [
require('angularjs-conekta')
])
// otherwise, include the code first then the module name
angular.module('myApp', [
'angularjs-conekta'
])
angularjs-conekta exposes conektaProvider
for configuring Conekta.js.
The URL that will be used to fetch the Conekta.js library.
Sets your Conekta public key.
angular
.module('myApp', [
'angularjs-conekta'
])
.config(function (conektaProvider) {
conektaProvider.setPublicKey('my_key')
})
Inject conekta
into your services or controllers to access the API methods. token.create
returns a $q
promise. If Conekta responds with an error, the promise will be rejected.
Same as conektaProvider.setPublicKey
Tokenizes a card using Conekta.token.create
.
The following utility methods are exposed:
validateNumber
validateExpirationDate
validateCVC
getBrand
app.controller('PaymentController', function ($scope, $http, conekta) {
// Example payment object
$scope.payment = {
card: {
number: "4242424242424242",
name: "Javier Pedreiro",
exp_year: "2018",
exp_month: "12",
cvc: "123"
}
};
$scope.charge = function charge () {
return conekta.token.create($scope.payment)
.then(function (response) {
console.log('token created for a card')
var payment = angular.copy($scope.payment)
payment.card = undefined
payment.token = response.id
return $http.post('https://yourserver.com/payments', payment).then(function (payment) {
console.log('successfully submitted payment for $', payment.amount)
return payment;
});
})
.catch(function (err) {
console.log('Payment error: ', err.message)
})
}
})