mangopay-cardregistration-js-kit
Version:
MANGOPAY Card Registration JavaScript Kit is a client library designed to take care of the card registration process.
93 lines (72 loc) • 4.36 kB
Markdown
MANGOPAY Card Registration JavaScript Kit [](https://travis-ci.org/Mangopay/cardregistration-js-kit)
=================================================
MANGOPAY CardRegistration JavaScript Kit is a client library designed to take care of the card registration process.
Refer to [MANGOPAY REST API documentation](http://docs.mangopay.com/api-references/) and
[MANGOPAY card registration process](http://docs.mangopay.com/api-references/card-registration/) for more information.
Browser compatibility
-------------------------------------------------
The library makes cross-origin Ajax calls ([CORS](http://en.wikipedia.org/wiki/Cross-origin_resource_sharing))
to get the card token and handle card registration with MANGOPAY API. Therefore it requires a browser that supports CORS.
The kit does not support Internet Explorer 6 & 7 and Opera Mini.
The payment page that collects card details should use HTTPS. The kit will not work in Internet Explorer 8 and 9
if this page is not encrypted with SSL.
Installation
-------------------------------------------------
The kit has been written in pure JavaScript and has no external dependencies. It is enough to include the kit file
on your card payment page:
<script type="text/javascript" src="mangopay-kit.js"></script>
Typically you would also have MANGOPAY SDK up and running to work with the MANGOPAY API.
[Java](https://github.com/Mangopay/mangopay2-java-sdk), [PHP](https://github.com/MangoPay/mangopay2-php-sdk), [.NET](https://github.com/Mangopay/mangopay2-net-sdk), [Python](https://github.com/MangoPay/mangopay2-python-sdk) and [Ruby](https://github.com/Mangopay/mangopay2-ruby-sdk)
distributions are available.
The kit is also available for installation from [npm](https://www.npmjs.com/package/mangopay-cardregistration-js-kit) if you prefer.
Configuration
-------------------------------------------------
Set `mangoPay.cardRegistration.clientId` to your MANGOPAY Client ID. `mangoPay.cardRegistration.baseURL` is set to
sandbox environment by default. To enable production environment, set it to `https://api.mangopay.com`.
Usage
-------------------------------------------------
Make sure you have the right configuration in place:
// Set MANGOPAY API base URL and Client ID
mangoPay.cardRegistration.baseURL = "https://api.sandbox.mangopay.com";
mangoPay.cardRegistration.clientId = {your-client-id};
Create a new CardRegistration object on the server and pass it over to the JavaScript kit:
// Initialize with card register data prepared on the server
mangoPay.cardRegistration.init({
cardRegistrationURL: {CardRegistrationURL property},
preregistrationData: {PreregistrationData property},
accessKey: {AccessKey property},
Id: {Id property}
});
Collect card details from the user on a payment form:
// Card data collected from the user
var cardData = {
cardNumber: $("#card_number").val(),
cardExpirationDate: $("#card_exp_date").val(),
cardCvx: $("#card_cvx").val(),
cardType: $("#card_type").val()
};
Then call `mangoPay.cardRegistration.registerCard`:
// Register card
mangoPay.cardRegistration.registerCard(
cardData,
function(res) {
// Success, you can use res.CardId now that points to registered card
},
function(res) {
// Handle error, see res.ResultCode and res.ResultMessage
}
);
Running the demo
-------------------------------------------------
There is a simple PHP demo code included that shows how to use the kit. The demo page requires MANGOPAY SDK class
to do the server-side work. Make sure that [MANGOPAY PHP SDK](https://github.com/MangoPay/mangopay2-php-sdk) is accessible to the demo page.
Unit Tests
-------------------------------------------------
Jasmine unit tests are placed under tests dir and can be launched in a browser using tests/index.html.
Unit test covers only validation classes and requests with invalid data.
License
-------------------------------------------------
MANGOPAY JavaScript Kit is distributed under MIT license.
Contacts
-------------------------------------------------
Report bugs or suggest features using issue tracker at GitHub.