# 4.3 Supported events
The wallet SDK will trigger an event every time a specific action has been done. It helps the wrapping client to be informed about different states, actions and receive information from the wallet SDK.
Listening to an event:
function handleEvent(name){
return function (value) {
console.log(`event-`,name);
if (value){
console.log(`value-`,JSON.stringify(value));
}
}
}
window.mycheck.wallet.on("<event name>",handleEvent("<event name>"));
Example
window.mycheck.wallet.on("paymentCompleted", handleEvent("paymentCompleted"));
Or by using an anonymous function:
mycheck.wallet.on("paymentCompleted", function (paymentDetails){
console.log(paymentDetails);
});
# 4.3.1 Init event
Called after the wallet started initialization.
mycheck.wallet.on("init", function () {
console.log('wallet initialized');
});
# 4.3.2 Ready event
Called when wallet is mounted and loaded.
mycheck.wallet.on("ready", function () {
console.log('wallet is ready');
});
# 4.3.3 CheckoutReady event
Will return the status (whether a payment can be initiated) and a payment details JSON object containing the following:
mycheck.wallet.on("checkoutReady", function (status, paymentDetails) {
console.log(status);
console.log(paymentDetails);
});
Payload:
{
"status": false,
"paymentDetails": {
"cc_token": "<TOKEN>",
"encrypted_cvv": null,
"type": "traditional",
"fingerprint": {
"ip": "147.161.131.31",
"screenHeight": 764,
"screenWidth": 1123,
"timezoneOffset": -180,
"browserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36",
"walletSdkSessionId": "917eb11c-8437-4a07-a01a-587b89ecf403"
}
}
}
cc_token – the token of the payment method (in the format of JWT)
type – the selected payment method type (instant | traditional | alternative)
encrypted_cvv – when applicable
fingerprint – when applicable
This event will fire constantly based on the interactions of the user with the wallet, affected by and not only:
The selected payment type (traditional| alternative | instant)
Upon adding a payment method by a traditional card or by an alternative payment (Applepay, Googlepay, Paypal, Amazonpay, SRC …)
User already has a payment method in the wallet (the default payment method will be returned) – for a returning customers flow.
When a payment method is selected by a user from a list of existing payment methods.
Encrypted cvv is generated (whether it is by add card flow, or by generating a new one after it is expired on checkout page)
Etc
# 4.3.3.1 Using the checkout ready object
Based on the response you should do the following when a payment is initiated:
If status = false
- Payment is impossible at this point (UI indications are displayed to the end user).
If status = true
Take a decision based on the payment type.
If it is an instant – call
mycheck.wallet.makeInstantPayment()If it is a traditional/alternative call to your server to perform the billing call using the payment_details provided
# 4.3.4 PaymentCompleted event
Is triggered when a 3DS or an instant payment is completed
mycheck.wallet.on("paymentCompleted", function (paymentDetails) {
console.log(paymentDetails);
});
Payload:
{
"method":"SALE_3DS",
"status":"SUCCESS",
"transaction_id":"SPS_ECOMMERCE-0279d4fb-c3e0-4391-9c6a-da37674ff8b5"
}
# 4.3.5 Resize event (iframe only)
Fired whenever the wallet content height changes. Use this to adjust the iframe container height.
mycheck.wallet.on("resize", function (height) {
var container = document.getElementById('wallet-container');
var iframe = container.querySelector('iframe');
iframe.style.height = height + 'px';
});
# 4.3.6 3dsStarted event (iframe only)
The 3DS challenge renders inside the iframe and requires additional vertical space. You may want to expand the iframe container or disable your submit button while the challenge is active.
Fired when a 3DS challenge modal opens inside the iframe.
mycheck.wallet.on("3dsStarted", function () {
console.log('3DS challenge opened');
});
# 4.3.7 3dsEnded event (iframe only)
Fired when the 3DS challenge modal closes.
mycheck.wallet.on("3dsEnded", function () {
console.log('3DS challenge closed');
});