Skip to main content
Version: 4.0.2

Static Payment Links

A HPP Static Payment Link (HSL) provides merchants with an easy and cost effective way to connect customers to the hosted payment page (HPP) that is hosted by DMG. The HSL directs the user to a static form that shows common fields and values, designed to be scanned by multiple people.

The HSL page collects the necessary information from the customers such as an invoice number, and when the payment is submitted the Charge eCommerce SDK payment solution is leveraged to process the transaction through to settlement and disbursal.

Figure 1: Example of the routing of the calls, showing that the actor e.g. customer can contact the HPP App through either QR Code or Payment Link. QR Code simply transforms into a Static link URL that passes into the browser to Hpp App.

Features

  • Custom static payment link that the merchants can then convert into a QR Code
  • Can be provided as a link that can be given directly or shorten through a shorting service
  • Ability to easily customise the fields list and fill in fields based on the domain of the merchant such as (https://acme.hosted-page.ecomm-prd.dmgsecure.io)

Getting Started

In order to use static URLs for the merchant, the merchants can then convert into a QR Code themselves.

Static QR codes are enabled by DMG, please contact your payment service provider.

The merchant can create the URL from a URL in the following format below:

Staging

https://{MERCHANT}.hosted-page.ecomm-stg.dmgsecure.io/#?{PARAMETERS}

for example

https://dmg.hosted-page.ecomm.stg.dmgsecure.io/#?amount=23222&invoice_no=INV1234

Production

https://{MERCHANT}.hosted-page.ecomm-prd.dmgsecure.io/#?{PARAMETERS}

for example

https://dmg.hosted-page.ecomm.prd.dmgsecure.io/#?amount=23222&invoice_no=INV1234.

Parameters to be URL parameters that can be ingested into the HPP application and will fill in the form as intended.

Merchants can then convert these links into a QR code. The purpose is to allow for merchants to place QR codes in positions where they intend payment using the same details or allow for the user to fill in the details as needed.

QR to Scan

Dynamic form support

Merchants can provide a customised set of form fields and validation that can be shown to the customer in the HPP as well as provide back the data to the merchants in the Merchant Dashboard.

HPP custom form fields data structure is currently in JSON format with future roadmap of providing a form UI within Merchant Dashboard for merchants to customise the forms per HPP instance level.

{
"name": "code",
"label": "Customer Code",
"placeholder": "",
"type": "text",
"locked": true,
"validation": {
"digitsOnly": true,
"maxLength": 10
}, "errorMessages": {
"digitsOnly": "Value should have digits only",
"maxLength": "Value must be no larger then 10 characters long"
}
},

The structure above is as follows

KeyData Type
name
required
String
Name of the field to be provided in the URL as well as shown in the system. Format required is lowercase letters with underscores

Example: “customer_name”
label
required
String
The name of the field shown to the customer in the HPP right form user interface

Example: “Customer Name”
placeholder
optional
String
The text to show inside the form fields when no user/given text has been provided.

Example: “Your first and last name”
type
required
String
Type of form field to be shown, for now it’s just text

Example: “text”
locked
optional
Boolean
Whether the form field is locked or not, only applicable for secure links, default is false.

Example: false
validation
optional
Array
A set of validation rules to apply onto the form to determine validity of the form.
validation.type
optional
String
The type of validation to set, can be either string or number, string by default.

*Example: “number” *
validation.alphanumericOnlyBoolean
Whether it only accepts alphanumeric values.

Example: false
validation.digitsOnly
optional
boolean
Whether can only accept digits, usually used when type is string and used in conjunction with maxLength used below.

Example: true
validation.maxLengthnumber
The maximum length the string can be.

Example: 10
validation.minLengthnumber
The minimum length the string can be.

Example: 2
validation.minnumber
The minimum number a field can be (only used with numeric types)

Example: 0.01
validation.maxnumber
The maximum number a numeric field can have (only used with numeric types)

Example: 50000000
errorMessagesObject
A keypair of error messages, key being the error key and the value to be the error message to be shown

Example:
{
"digitsOnly": "Value should have digits only",
"required": "Value must be a number at least ₹0.01",
"min": "Value must be a number at least ₹0.01",
"max": "Value must be a number at most ₹5,000,000,000"
}"*

Each payment page requires the customer to provide the payment amount (dmg enforced) and additional fields (merchant provided) along with the necessary validation required to process a payment. The merchant can configure additional fields to support their internal processing, these fields are displayed on the payment page. These fields can be prefilled by the merchant by HTTP GET key-value information, then populated/amended by the merchant’s customers.

Keys format to support the mapping of values:

  • No larger then 32 character
  • Must be in an alpha numeric value that can use the following special characters dash (-) or underscore (_)
  • Must be unique for the keys given
  • Can not remove or change the amount parameter

Note: The merchant is unable to prefill any keys without having a form field existing in the form.