Session updateSessionFromForm()

updateSessionFromForm()

Request to store the input provided by the payer in the hosted field(s) into the session. You must provide the payment type for which the fields must be stored. For a gift card you must also provide the local card brand. The result of the request is returned in the formSessionUpdate callback. Note that this callback is defined in the configure() function.


Usage Copied to clipboard

PaymentSession.updateSessionFromForm( )


Example Copied to clipboard

PaymentSession.configure({
    callbacks: {
        formSessionUpdate: function(response) {
            // HANDLE RESPONSE FOR UPDATE SESSION
            if (response.status) {
                if ("ok" == response.status) {
                    console.log("Session updated with data: " + response.session.id);
                    //check if the security code was provided by the user
                    if (response.sourceOfFunds.provided.card.securityCode) {
                        console.log("Security code was provided.");
                    }
                    //check if the user entered a MasterCard credit card
                    if (response.sourceOfFunds.provided.card.scheme == 'MASTERCARD') {
                        console.log("The user entered a MasterCard credit card.")
                    }
                } else if ("fields_in_error" == response.status)  {
                    console.log("Session update failed with field errors.");
                    if (response.errors.cardNumber) {
                        console.log("Card number invalid or missing.");
                    }
                    if (response.errors.expiryYear) {
                        console.log("Expiry year invalid or missing.");
                    }
                    if (response.errors.expiryMonth) {
                        console.log("Expiry month invalid or missing.");
                    }
                    if (response.errors.securityCode) {
                        console.log("Security code invalid.");
                    }
                } else if ("payment_type_required" == response.status)  {
                    console.log("Payment type is required. Valid values are 'card', 'ach' or 'giftCard'.");
                } else if ("giftCard_type_required" == response.status)  {
                    console.log("Gift card payment type requires an expected local brand parameter.");
                } else if ("request_timeout" == response.status)  {
                    console.log("Session update failed with request timeout: " + response.errors.message);
                } else if ("system_error" == response.status)  {
                    console.log("Session update failed with system error: " + response.errors.message);
                }
            } else {
                console.log("Session update failed: " + response);
            }
        }
    }
});
// Response handling is done in the callbacks.formSessionUpdate callback function is a part of configure() function.
PaymentSession.updateSessionFromForm('card');
    

JSON Example for Session Update Response Copied to clipboard

 // status can be one of the following: ok, fields_in_error, system_error, request_timeout
 
// An error response (fields_in_error)
{
    "status": "fields_in_error",  
    "session": {
        "id": "SESSION000218450948092491657986"
    },
    "errors": {
        "cardNumber": "invalid",
        "securityCode": "invalid"  
    },
    version: "36"
}
 
// An error response (system_error)
{
    "status": "system_error",  
    "session": {
        "id": "SESSION000218450948092491657986"
    },
    "errors": {
        "message": "System error message." 
    },
    "version": "36"
}
  
// An error response (request_timeout)
{
    "status" : "request_timeout", 
    "session": {
        "id": "SESSION000218450948092491657986"
    },
    "errors": {
        "message": "Request timeout error message."
    },
    "version": "36"
} 
 
// An ok response
{
    "status":"ok",
    "merchant": "TESTMERCHANT",
    "session": {
        "id": "SESSION000218450948092491657986"
        "updateStatus":"SUCCESS",
        "version":"e3f144ce02"
    },
    "sourceOfFunds": {
        "provided": {
            "card": {
                "brand": "MASTERCARD",
                "expiry": {
                    "month": "1",
                    "year": "39"
                },
                "fundingMethod": "DEBIT",
                "nameOnCard": "John Smith",
                "number": "512345xxxxxx8769",
                "scheme": "MASTERCARD"
            }
        },
        "type": "CARD"
    },   
    "version": "36"
}

Arguments Copied to clipboard

paymentType Copied to clipboard String

The payment type to update in the session. Valid values are:

card
ach
giftCard
directDebitCanada
localBrand Copied to clipboard String

The local brand if the paymentType is 'giftCard'.

scope Copied to clipboard String

The optional named instance of a card payment data set within a session. See Multiple Hosted Sessions for more information.


Return Value Copied to clipboard

None