PayMe Hosted Fields Example

HTML

<!doctype html>
<html lang="en">

  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>Example Bootstrap implementation</title>

    <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
    <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">

    <script src="https://cdn.payme.io/hf/v1/hostedfields.js"></script>
  </head>

  <body>
    <div>&nbsp;</div>
    <div class="container">
      <div class="row">
        <div class="col-xs-12 col-sm-8 col-sm-offset-2">
          <!-- CREDIT CARD FORM STARTS HERE -->
          <div class="panel panel-default credit-card-box">
            <div class="panel-body">
              <form role="form" id="checkout-form">

                <div class="row">
                  <div class="col-xs-8 col-md-8">
                    <div class="form-group" id="card-number-group">
                      <label for="card-number-container" class="control-label">CARD NUMBER</label>
                      <div class="input-group input-group-lg">
                        <div id="card-number-container" class="form-control input-lg"></div>
                        <span class="input-group-addon"><i class="fa fa-credit-card" id="card-provider"></i></span>
                      </div>
                      <p id="card-number-messages" class="help-block" style="display: none;"></p>
                    </div>
                  </div>
                  <div class="col-xs-4 col-md-4">
                    <div class="form-group" id="social-id-group">
                      <label for="social-id-container" class="control-label">SOCIAL ID</label>
                      <div id="social-id-container" class="form-control input-lg"></div>
                      <p...

JavaScript

// HELPERS ---------------------------------------------------------------------------------

const apiKey = 'ac76cbc1-9a83-47a4-82bd-1c82c4979fdd';

const consolePre = document.getElementById('console-pre');
const form = document.getElementById('checkout-form');
const cardProvider = document.getElementById('card-provider');

const numberGroup = document.getElementById('card-number-group');
const numberMessages = document.getElementById('card-number-messages');

const expirationGroup = document.getElementById('card-expiration-group');
const expirationMessages = document.getElementById('card-expiration-messages');

const cvcGroup = document.getElementById('card-cvv-group');
const cvcMessages = document.getElementById('card-cvv-messages');

const firstNameGroup = document.getElementById('first-name-group');
const firstNameMessages = document.getElementById('first-name-messages');

const lastNameGroup = document.getElementById('last-name-group');
const lastNameMessages = document.getElementById('last-name-messages');

const emailGroup = document.getElementById('email-group');
const emailMessages = document.getElementById('email-messages');

const phoneGroup = document.getElementById('phone-group');
const phoneMessages = document.getElementById('phone-messages');

const socialIdGroup = document.getElementById('social-id-group');
const socialIdMessages = document.getElementById('social-id-messages');

const zipCodeGroup = document.getElementById('zip-code-group');
const zipCodeMessages = document.getElementById('zip-code-messages');

// -----------------------------------------------------------------------------------------------------------------

const submitButton = document.getElementById('submit-button');
submitButton.disabled = true;

function tokenizationStarted() {
  submitButton.disabled = true;
  console.log('Tokenization started!');
}

function tokenizationFinished() {
  submitButton.disabled = false;
  console.log('Tokenization finished!');
}

function...