Skip to main content

Standard Integration

Standard or Hosted integration allows merchants to redirect customers to RedDragonPay’s hosted iframe-based payment page. This method simplifies compliance and ensures a secure payment environment.

Checkout API

Create an order form with mentioned below parameters. Once form has been created and submitted then user will be redirected to our payment page. To maximize conversion, we recommend that you redirect customers to the payment gateway in same browser window.

  • Amount format is in the least parts without decimals like USD 1.00 will be written as 100
Endpoint URL
baseUrl = https://sandbox.reddragonpay.com
{Endpoint URL}/pgui/jsp/paymentrequest
ParameterData TypeMandatory
APP_IDNumericYes
ORDER_IDAlphanumericYes
TXNTYPEAlphabetYes
CUST_NAMEAlphabetCM
CUST_FIRST_NAMEAlphabetYes
CUST_LAST_NAMEAlphabetYes
CUST_STREET_ADDRESS1AlphanumericCM
CUST_CITYAlphabetYes
CUST_STATEAlphabetYes
CUST_COUNTRYAlphabetYes
CUST_ZIPNumericYes
CUST_PHONENumericYes
CUST_EMAILAlphanumericYes
PRODUCT_DESCAlphanumericNo
AMOUNTNumericYes
CURRENCY_CODENumericYes
PAYMENT_TYPEAlphabetYes
CARD_NUMBERNumericYes
CARD_EXP_DTNumericYes
CVVNumericYes
RETURN_URLURLYes
HASHAlphanumericYes
BROWSER_USER_AGENTAlphanumericCM
BROWSER_LANGUAGEAlphanumericCM
BROWSER_JAVA_ENABLEDAlphaCM
BROWSER_COLOR_DEPTHNumericCM
BROWSER_SCREEN_HEIGHTNumericCM
BROWSER_SCREEN_WIDTHNumericCM
BROWSER_TZNumericCM
BROWSER_ACCEPT_HEADERAlphanumericCM
caution
  • CM = Conditional Mandatory
  • HASH generation mechanism is shared in section below Appendix.
  • ORDER_ID must be the one Merchant used while initiating the transaction
  • CURRENCY_CODE must be the one Merchant used while initiating the transaction
  • TXNTYPE must be SALE
  • AMOUNT must not be in decimal i.e. USD 1.20 should always be mentioned as 120.
  • All requests expect amounts to be provided in a currency’s smallest unit (Minor Units). For example, to charge 10.00 USD, provide an amount value of 1000 (that is, 1000 cents).
  • Match the response hash that is present in the response against the merchant application calculated hash value using the response params. In case the merchant hash does not match that transaction must not be considered a successful transaction.
info

PLEASE DO NOT RELY ON ANY OTHER RESPONSE THAN RESPONSE_CODE + STATUS. ALL OTHER MESSAGES MAY CHANGE. ONLY RESPONSE_CODE = 000 + STATUS = ‘Captured’ = SUCCESSFUL TRANSACTION. REST ANY OF THE COMBINATIONS LIKE RESPONSE_CODE =000 + STATUS = Enrolled/PENDING DOES NOT MEAN ITS SUCCESS.

ITS MANDATORY TO IMPLEMENT STATUS ENQUIRY BECAUSE IN CASES WHEN THERE IS NO RESPONSE THROUGH CALLBACK OR RETURN URL DUE TO ANY EXCEPTIONS OR NETWORK ERROR STATUS API CAN HELP GET THE FINAL STATUS OF THE TRANSACTION.

Field Description

S No.Parameter NameData Type
1CUST_NAMECustomer name
2TXNTYPEType of transaction processed
3AMOUNTTotal Sale Amount
4CURRENCY_CODE3-digit code of the currency
5ORDER_IDMerchant reference number
6APP_IDAPP_ID provided to merchant
7TXN_IDTransaction Id generated by us to identify the current step
8PAYMENT_TYPEType of payment mode used by customer
9MOP_TYPEMethod of payment
10CARD_MASKMasked card number for card txns
11PG_REF_NUMId generated by us. Use for further communication, for tracking the full order
12RESPONSE_CODECode for transaction status
13RESPONSE_MESSAGEResponse message for transaction status
14HASHUnique value generated by SHA 256 hashing algorithm
15ECIBank issued ECI flag
16AUTH_CODEAuthorization code
17RRNBank reference number
18AUTH_CODEAuthorization code
19AVRAddress verification flag
20ACQ_IDBank reference number
21STATUSTransaction status
22CUST_EMAILEcho back field
23CUST_IDEcho back field
24CUST_PHONEEcho back field
25PG_TXN_MESSAGEDetailed message for transaction
26RETURN_URLEcho back field
27RESPONSE_DATEResponse date
28RESPONSE_TIMEResponse time
29PRODUCT_DESCEcho back field
30CARD_ISSUER_BANKCard issuer bank
31CARD_ISSUER_COUNTRYCard issuer country
32TOTAL_AMOUNTTotal amount debited to customer in case of surcharge model

Embed Iframe

  • Create an order similar to checkout API mentioned above with following changes:
Add 2 libraries in head tag
<link rel="stylesheet" href="{baseUrl}/pgui/checkoutlibrary/checkout.min.css">
<script src="{baseUrl}/pgui/checkoutlibrary/checkout.min.js"></script>
Add 2 attributes in form that will be submitted
onsubmit="return checkoutSubmitHandler(this);" target="checkout-iframe"

Sample html

  • A sample html is provided below for the same. Kindly add/change a couple of details as follows:
  • URL
  • APP_ID
  • Mandatory fields
  • Generate a valid hash accordingly
Sample HTML for Iframe Integration
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta name="viewport" content="width=device-width,initial-scale=1"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>NT Demo Merchant Checkout Page</title><link rel="stylesheet" href="{baseUrl}/pgui/checkoutlibrary/checkout.min.css"><script src="{baseUrl}/pgui/checkoutlibrary/checkout.min.js"></script><script>function autoPop(){document.getElementById("ORDER_ID").value="TEST"+String((new Date).getTime());var t=new Date,e=String(t.getFullYear()).concat("-").concat(String(t.getMonth()+1)).concat("-").concat(String(t.getDate()));document.getElementById("txnDate").value=e}</script><style type="text/css">body{width:100%;margin:0 auto;background-color:#e4eff5}.new{width:500px;margin:20px auto 0 auto;padding:0;font:normal 12px arial;color:#555;background:#fff;border:1px solid #d0d0d0;border-radius:5px;-webkit-box-shadow:-1px 3px 8px -1px rgba(0,0,0,.75);-moz-box-shadow:-1px 3px 8px -1px rgba(0,0,0,.75);box-shadow:-1px 3px 8px -1px rgba(0,0,0,.75)}.signupbox{margin:20px auto 0 auto;padding:0;font:normal 12px arial;color:#555;background:#fff;border:1px solid #d0d0d0;border-radius:5px;-webkit-box-shadow:-1px 3px 8px -1px rgba(0,0,0,.75);-moz-box-shadow:-1px 3px 8px -1px rgba(0,0,0,.75);box-shadow:-1px 3px 8px -1px rgba(0,0,0,.75)}.signup-headingbg{background:#194e84;background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:5px 5px;height:35px;border-bottom:1px solid #dadada;font:bold 16px Tahoma;color:#fff;vertical-align:middle}.signuptextfield{display:block;width:98%;height:15px;padding:6px 7px;margin-left:10px;font-size:12px;font-family:'Titillium Web',sans-serif;line-height:1.428571429;color:#555;margin-bottom:5px;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.signuptextfield:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.labelfont{font:bold 11px Arial;color:#607a8c;text-decoration:none}.signupbutton{background-color:#5cb85c;border:1px solid #4cae4c;width:40%;height:35px;font:bold 14px Tahoma;text-align:center;color:#fff;cursor:pointer;border-radius:5px}.signupbutton:hover{background-color:#449d44;border:1px solid #398439;width:40%;height:35px;font:bold 14px Tahoma;text-align:center;color:#fff;cursor:pointer;border-radius:5px}.borderleftradius{border-top-left-radius:5px}.borderrightradius{border-top-right-radius:5px}.gradientbg{background-image:-ms-linear-gradient(top,#fefeff 0,#bfd3e1 100%);background-image:-moz-linear-gradient(top,#fefeff 0,#bfd3e1 100%);background-image:-o-linear-gradient(top,#fefeff 0,#bfd3e1 100%);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fefeff),color-stop(1,#bfd3e1));background-image:-webkit-linear-gradient(top,#fefeff 0,#bfd3e1 100%);background-image:linear-gradient(to bottom,#fefeff 0,#bfd3e1 100%)}.pg-iframe{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:fixed;top:0;left:0;background-color:rgba(255,255,255,.8)}.pg-iframe iframe{width:100%;max-width:420px}</style></head><body onload="autoPop()"><div class="new"><form action="{baseUrl}/pgui/jsp/paymentrequest" onsubmit="return checkoutSubmitHandler(this)" target="checkout-iframe" method="post"><table width="500" border="0" align="center" cellpadding="0" cellspacing="0" class="gradientbg"><tr><td colspan="3" align="center" valign="middle"></tr><tr><td colspan="3" align="center" valign="middle" class="signup-headingbg borderleftradius borderrightradius">Demo Checkout Page</td></tr><tr><td align="right" valign="middle">&nbsp;</td><td align="center" valign="middle">&nbsp;</td><td align="center" valign="middle">&nbsp;</td></tr><tr><td width="28%" align="right" valign="middle" class="labelfont">APP ID:</td><td width="65%" align="left" valign="middle"><input type="text" name="APP_ID" class="signuptextfield" value="1234567890123456" autocomplete="off"></td><td width="7%" align="left" valign="middle">&nbsp;</td></tr><tr><td width="28%" align="right" valign="middle" class="labelfont">ORDER ID:</td><td width="65%" align="left" valign="middle"><input type="text" id="ORDER_ID" name="ORDER_ID" class="signuptextfield" value="TEST00000000001" autocomplete="off"></td><td width="7%" align="left" valign="middle">&nbsp;</td></tr><tr><td width="28%" align="right" valign="middle" class="labelfont">AMOUNT:</td><td width="65%" align="left" valign="middle"><input type="text" name="AMOUNT" class="signuptextfield" value="1000" autocomplete="off"></td><td width="7%" align="left" valign="middle">&nbsp;</td></tr><tr><td width="28%" align="right" valign="middle" class="labelfont">TXNTYPE:</td><td width="65%" align="left" valign="middle"><input type="text" name="TXNTYPE" class="signuptextfield" value="SALE" autocomplete="off"></td><td width="7%" align="left" valign="middle">&nbsp;</td></tr><tr><td width="28%" align="right" valign="middle" class="labelfont">CUSTOMER ADDRESS:</td><td width="65%" align="left" valign="middle"><input type="text" name="CUST_STREET_ADDRESS1" class="signuptextfield" value="Dummy Road" autocomplete="off"></td><td width="7%" align="left" valign="middle">&nbsp;</td></tr><tr><td width="28%" align="right" valign="middle" class="labelfont">CUSTOMER FIRST NAME:</td><td width="65%" align="left" valign="middle"><input type="text" name="CUST_FIRST_NAME" class="signuptextfield" value="Dummy" autocomplete="off"></td><td width="7%" align="left" valign="middle">&nbsp;</td></tr><tr><td width="28%" align="right" valign="middle" class="labelfont">CUSTOMER LAST NAME:</td><td width="65%" align="left" valign="middle"><input type="text" name="CUST_LAST_NAME" class="signuptextfield" value="Name" autocomplete="off"></td><td width="7%" align="left" valign="middle">&nbsp;</td></tr><tr><td width="28%" align="right" valign="middle" class="labelfont">CUSTOMER CITY:</td><td width="65%" align="left" valign="middle"><input type="text" name="CUST_CITY" class="signuptextfield" value="Dubai" autocomplete="off"></td><td width="7%" align="left" valign="middle">&nbsp;</td></tr><tr><td width="28%" align="right" valign="middle" class="labelfont">CUSTOMER State:</td><td width="65%" align="left" valign="middle"><input type="text" name="CUST_STATE" class="signuptextfield" value="UAE" autocomplete="off"></td><td width="7%" align="left" valign="middle">&nbsp;</td></tr><tr><td width="28%" align="right" valign="middle" class="labelfont">CUSTOMER COUNTRY:</td><td width="65%" align="left" valign="middle"><input type="text" name="CUST_COUNTRY" class="signuptextfield" value="AE" autocomplete="off"></td><td width="7%" align="left" valign="middle">&nbsp;</td></tr><tr><td width="28%" align="right" valign="middle" class="labelfont">CUSTOMER ZIP:</td><td width="65%" align="left" valign="middle"><input type="text" name="CUST_ZIP" value="122016" class="signuptextfield" autocomplete="off"></td><td width="7%" align="left" valign="middle">&nbsp;</td></tr><tr><td width="28%" align="right" valign="middle" class="labelfont">CUSTOMER PHONE:</td><td width="65%" align="left" valign="middle"><input type="text" name="CUST_PHONE" value="0987654321" class="signuptextfield" autocomplete="off"></td><td width="7%" align="left" valign="middle">&nbsp;</td></tr><tr><td width="28%" align="right" valign="middle" class="labelfont">CUSTOMER EMAIL ID:</td><td width="65%" align="left" valign="middle"><input type="text" name="CUST_EMAIL" class="signuptextfield" value="test@yopmail.com" autocomplete="off"></td><td width="7%" align="left" valign="middle">&nbsp;</td></tr><tr><td width="28%" align="right" valign="middle" class="labelfont">CURRENCY CODE:</td><td width="65%" align="left" valign="middle"><input type="text" name="CURRENCY_CODE" class="signuptextfield" value="840" autocomplete="off"></td><td width="7%" align="left" valign="middle">&nbsp;</td></tr><tr><td width="28%" align="right" valign="middle" class="labelfont">RETURN URL:</td><td width="65%" align="left" valign="middle"><input type="text" name="RETURN_URL" class="signuptextfield" value="{baseUrl}/pgui/jsp/response.jsp" autocomplete="off"></td><td width="7%" align="left" valign="middle">&nbsp;</td></tr><tr><td width="28%" align="right" valign="middle" class="labelfont">HASH:</td><td width="65%" align="left" valign="middle"><input type="text" name="HASH" class="signuptextfield" value="3323C83D4EDD3EA9CB9F503A16BDB3047DC2AAB29F7BDB0304DDB67AABD2AD4A3323C83D4EDD3EA9CB9F503A16BDB3047DC2AAB29F7BDB0304DDB67AABD2AD4A" autocomplete="off"></td><td width="7%" align="left" valign="middle">&nbsp;</td></tr><tr><td colspan="3" align="center" valign="middle">&nbsp;</td></tr><tr><td colspan="3" align="center" valign="middle"><input type="submit" name="button" id="button" class="signupbutton" value="Pay Now"></td></tr><tr><td colspan="3" align="center" valign="middle">&nbsp;</td></tr></table></form></div></body></html>