Multi-payment Templates (including Gift Cards)

This guide details how to build a multi-payment setup template to be used with the Realex payment method.

Introduction

To take multiple payments for a single order, primary and additional payment details must be submitted to the Aurora payment setup process.

Realex has been implemented using a PCI compliant HPP (Hosted Payment Page) payment process and as such only additional payment details should be submitted, which should also include a payment amount for each additional payment. Aurora will determine the outstanding order amount and initialise the Realex HPP process accordingly.

Additional Payment Data Structure

Additional payments are submitted using the following request data structure:

NameDescriptionExample
additional_payments[x][transaction_type]The Aurora payment transaction type identifier.Givex GiftCard
additional_payments[x][amount]The payment amount.123.56
additional_payments[x][card_number]The card number.4000 0000 1234 5678
additional_payments[x][expiry_month]The card export month.06
additional_payments[x][expiry_year]The card export year.2020
additional_payments[x][cvv]The card CVV.123

Where "x" is the additional payment number or index.

Example HTML Form

The following HTML example shows how multiple additional payments can be submitted to the Aurora payment setup process.

<form action="/checkout/payment-setup">
 
	<h2>Payment 1.</h2>
    <input type="hidden" name="additional_payments[0][transaction_type]" value="Givex GiftCard" />
    <div>
        <labelAmount:</label>
        <input type="text" name="additional_payments[0][amount]" value="" />
    </div>
    <div>
        <label>Card Number:</label>
        <input type="text" name="additional_payments[0][card_number]" value="" />
    </div>
    <div>
        <label>Card Expiry:</label>
        <select name="additional_payments[0][expiry_month]">
            <option value="">MM</option>
            <option value="01">1</option>
            <option value="02">2</option>
            <option value="03">3</option>
            <option value="04">4</option>
            <option value="05">5</option>
            <option value="06">6</option>
            <option value="07">7</option>
            <option value="08">8</option>
            <option value="09">9</option>
            <option value="10">10</option>
            <option value="11">11</option>
            <option value="12">12</option>
        </select>
        <select name="additional_payments[0][expiry_year]">
            <option value="">YYYY</option>
            <option value="2017">2017</option>
            <option value="2018">2018</option>
            <option value="2019">2019</option>
            <option value="2020">2020</option>
            <option value="2021">2021</option>
            <option value="2022">2022</option>
            <option value="2023">2023</option>
            <option value="2024">2024</option>
            <option value="2025">2025</option>
            <option value="2026">2026</option>
            <option value="2027">2027</option>
        </select>
    </div>
    <div>
        <label>CVV Number:</label>
        <input type="text" name="additional_payments[0][cvv]" value="" size="3" />
    </div>
    <div>
        <label>Amount to Redeem:</label>
        <input type="hidden" name="additional_payments[0][amount]" value="0" />
        <span>0.00</span>
    </div>
 
	<h2>Payment 2.</h2>
    <input type="hidden" name="additional_payments[1][transaction_type]" value="Givex GiftCard" />
    <div>
        <labelAmount:</label>
        <input type="text" name="additional_payments[1][amount]" value="" />
    </div>
    <div>
        <label>Card Number:</label>
        <input type="text" name="additional_payments[1][card_number]" value="" />
    </div>
    <div>
        <label>Card Expiry:</label>
        <select name="additional_payments[1][expiry_month]">
            <option value="">MM</option>
            <option value="01">1</option>
            <option value="02">2</option>
            <option value="03">3</option>
            <option value="04">4</option>
            <option value="05">5</option>
            <option value="06">6</option>
            <option value="07">7</option>
            <option value="08">8</option>
            <option value="09">9</option>
            <option value="10">10</option>
            <option value="11">11</option>
            <option value="12">12</option>
        </select>
        <select name="additional_payments[1][expiry_year]">
            <option value="">YYYY</option>
            <option value="2017">2017</option>
            <option value="2018">2018</option>
            <option value="2019">2019</option>
            <option value="2020">2020</option>
            <option value="2021">2021</option>
            <option value="2022">2022</option>
            <option value="2023">2023</option>
            <option value="2024">2024</option>
            <option value="2025">2025</option>
            <option value="2026">2026</option>
            <option value="2027">2027</option>
        </select>
    </div>
    <div>
        <label>CVV Number:</label>
        <input type="text" name="additional_payments[1][cvv]" value="" size="3" />
    </div>
    <div>
        <label>Amount to Redeem:</label>
        <input type="hidden" name="additional_payments[1][amount]" value="0" />
        <span>0.00</span>
    </div>
 
</form>

Get Balance AJAX Interface

To validate a balance driven additional payment method such as a Givex Gift Card, please use the following AJAX endpoint:

/checkout/payment-balance

Request data structure:

NameDescriptionExample
payment_typeThe Aurora payment process type.hcc
transaction_typeThe Aurora payment transaction type identifier.Givex GiftCard
card_numberThe card number.4000 0000 1234 5678
expiry_monthThe card export month.06
expiry_yearThe card export year.2020
cvvThe card CVV.123

Example Template Code

<script type="text/javascript">
 
var request_data = {
    payment_type: 'hcc',
    transaction_type: 'Givex GiftCard',
    card_number: card_number.val(),
    expiry_month: expiry_month.val(),
    expiry_year: expiry_year.val(),
    cvv: cvv.val()
};

$.get('/checkout/payment-balance', request_data, function(response) {

    if (response.balance > 0) {

        alert('Card is valid');

    } else {

        alert('Card is not valid or has no balance');

    }

}, 'json');
 
</script>

Example Realex Payment Setup Template

Refer the Example Realex Payment Setup Template support article for more details.