Square Payments V2
Konnektive does not store any card details for merchants using Square's Payment Gateway
Square will work for One-time and recurring purchases
Square V2 will work with landers that connect to Konnektive via Direct API, Form Code, or CheckoutChamp. This will NOT work with Order Entry.
Square V2 supports both Google Pay and Apple Pay on a Direct API integration. Obtain the appropriate token on the page and pass it on the Import Order API.
How to Obtain Square Credentials
Step 1. Go here and login to the Square Developer Dashboard using your Square credentials
Step 2. Once logged into the Developer Dashboard click New Application
Step 3. Name and Create your Application, Doing so gives you complete API access for your Square merchant account.
Step 4 Once you have created your Application, Navigate to the Credentials Section.
Step 4a: Make sure to turn Sandbox Mode OFF.
Step 5. Once you have turned off Sandbox Mode you will be able to access your Application Id
Reference: https://developer.squareup.com/docs/get-started
Step 6. Navigate to the Locations Section to uncover your LocationId
Set up Square V2
Step 1. Go to Merchants > Gateway Integrations
Step 2. Scroll down until you see Square V2
Step 3. Click the green Activate button
Step 4. Enter your ApplicationID, AccessToken, and LocationId in the General Details Section of the Gateway Creation Screen.
Step 5. forceSCA. Optional. This will require that a verification token be obtained from Square on the page and included on the order creation. If using 2-step checkout this will automatically trigger SCA during checkout.
Step 6. Click the green Create Gateway button to save your changes and create the gateway.
Prerequisites
Your checkout page should be secure HTTPS. A non-secured call to the Square gateway will be rejected.
Form Code - Checkout Page Changes
Use the following steps to embed the Square card payment form onto your checkout page
Step 1: Add this script before the closing </head> tag
$ksdk->echoSquareJS('your-application-id', 'your-location-id');
For test mode, pass an additional testing parameter. Set it to false when finished testing. You must use sandbox ApplicationID and AccessToken in test mode.
$ksdk->echoSquareJS('your-application-id', 'your-location-id', true);
For SCA, pass an additional parameter to trigger the authentication
$ksdk->echoSquareJS('your-application-id', 'your-location-id', true, true);
Step 2: Remove the card number block and the paySource hidden input field
Step 3: Add these hidden inputs in "kform" form block
<input type="hidden" name='paySource' value="PREPAID">
<input type='hidden' name='prepaidType' value='SQUAREV2'>
<input type="hidden" id="formCardNonce" name="formCardNonce" value="" />
Step 4: Add style="display:none" to "Rush My Order!" button
Step 5: Add this form block after the "kform" form block
<form id="payment-form">
<div id="square-card-container"></div>
<input type='button' value='Rush My Order!' id="square-card-button" class='kform_submitBtn'>
</form>
Direct API - Checkout Page Changes
Please use this guide as a reference for embedding the Square card payment form on your direct API checkout page.
Once this has been properly implemented please be sure to send the highlighted token as the formCardNonce when calling the Import Order API.
For SCA (3DS) you must call the verifyBuyer method after obtaining the token. Details are here. Use the StoreVerifyBuyerDetails. After verifying the buyer, combine the token and verification code separated by a pipe as the formCardNonce when calling the Import Order API. Example: formCardNonce=123545|9789087.
Additional information on Square SCA is here:
https://developer.squareup.com/docs/sca-overview-web
If formCardNonce
is empty in the order import request, CRM will try to complete the order in a 2-step checkout flow, as described next.
Use the following steps to open the Square card payment form on a separate page (a 2-step checkout flow)
Step 1: Remove the card number block and the paySource hidden input field from the checkout page
Step 2: Add these hidden inputs in "kform" form block
Upsells with Square
No additional work is needed for upsells. Upsells will automatically be transacted on Square.