Web Integrations

Integrate PayG Standard Checkout with your website to start accepting online payments from your customers. PayG supports a slew of payment methods such as credit and debit cards,netbanking,wallet and UPI. Our Standard Checkout library provides all the essential features for integrating PayG Checkout with the client-side of your application. This is available only for web-based integrations.

Note:
If your website is built on top of an ecommerce platform, such as WooComerce, please refer to PayG Ecommerce Plugins documentation.

Prerequisites🔗

Run the following checklist before you begin the integration:

  • Sign into the Dashboard with your credentials.

  • Generate API Keys

Step 1: Create New Order (REST API) 🔗

Please refer Order API Documentation for more details.

Use the below url to create an order in your (backend) server.

UAT URL: https://uatapi.payg.in/payment/api/order

Production URL: https://paygapi.payg.in/payment/api/order

/create


Authorization: basic authentication with base64encoded

PayGAuthentication –
 <MerchantAuthenticationKey>: <MerchantAuthenticationToken>:M: <MerchantKeyId>
  
						
                        
{
   "Merchantkeyid": "7963",
   "UniqueRequestId": "f3f5b5c13f",
   "UserDefinedData": {
      "UserDefined1": ""
   },
   "RequestDateTime": "06232021",
   "RedirectUrl": "https://payg.in",
   "TransactionData": {
      "AcceptedPaymentTypes": "",
      "PaymentType": "",
      "SurchargeType": "",
      "SurchargeValue": "",
      "RefTransactionId": "",
      "IndustrySpecificationCode": "",
      "PartialPaymentOption": ""
   },
   "OrderAmount": "100",
   "OrderType": "",
   "OrderAmountData": {
      "AmountTypeDesc": "3",
      "Amount": "2"
   },
   "CustomerData": {
      "CustomerId": "152433",
      "CustomerNotes": "amway product",
      "FirstName": "kanhaiya",
      "LastName": "dhaked",
      "MobileNo": "08619083450",
      "Email": "demo@gmail.com",
      "EmailReceipt": "true",
      "BillingAddress": "44 bhawar nagar semal",
      "BillingCity": "semla",
      "BillingState": "Rajasthan",
      "BillingCountry": "India",
      "BillingZipCode": "30202020",
      "ShippingFirstName": "yagyang",
      "ShippingLastName": "dhaked",
      "ShippingAddress": "44 bhawar nagar semal",
      "ShippingCity": "semla",
      "ShippingState": "Rajasthan",
      "ShippingCountry": "India",
      "ShippingZipCode": "30202020",
      "ShippingMobileNo": "08619083450"
   },
   "IntegrationData": {
      "UserName": "ranjith",
      "Source": "3213",
      "IntegrationType": "11",
      "HashData": "",
      "PlatformId": "1"
  },
 
}
  
 
         
 //basic authentication with base64encoded 
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>  'https://uatapi.payg.in/payment/api/order/create',
CURLOPT_RETURNTRANSFER =>  true,
CURLOPT_ENCODING =>  "",
CURLOPT_MAXREDIRS =>  10,
CURLOPT_TIMEOUT =>  0,
CURLOPT_FOLLOWLOCATION =>  true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST =>  "POST",
CURLOPT_POSTFIELDS =>$post_data,
CURLOPT_HTTPHEADER => $header,
));
$response = curl_exec($curl);
if(curl_errno($curl)){
	throw new Exception(curl_error($curl));
}
curl_close($curl);  

Payg Samples SDK_PHP Download
         
 def orderCreate(self,post_data):
        #now = datetime.datetime.now()
        
         myfamily = {
            'Merchantkeyid':self.MerchantKeyId,
            'UniqueRequestId':PayGIntegration.get_random_string(10),
            'OrderAmount':post_data.get( 'OrderAmount'),
            'OrderType':post_data.get( 'OrderType'),
            "UserDefinedData" : {
                "UserDefined1" :  ""    
            },
            "RequestDateTime": "",
            "RedirectUrl": "https://a2zfame.com",
            "TransactionData" : {
                "AcceptedPaymentTypes" :  "Linus",
                "PaymentType" : 2011,
                "SurchargeType": "",
                "SurchargeValue": "",
                "RefTransactionId": "",
                "IndustrySpecificationCode": "",
                "PartialPaymentOption": ""
            },
            'OrderAmountData':{
                "AmountTypeDesc":post_data.get('AmountTypeDesc'),
                "Amount":post_data.get('Amount')
            },
            "CustomerData":{
                "CustomerId":post_data.get( 'CustomerId'),
                "CustomerNotes":post_data.get( 'CustomerNotes'),
                "FirstName":post_data.get( 'FirstName'),
                "LastName":post_data.get( 'LastName'),
                "MobileNo":post_data.get( 'MobileNo'),
                "Email":post_data.get( 'Email'),
                "EmailReceipt":post_data.get( 'EmailReceipt'),
                "BillingAddress":post_data.get( 'BillingAddress'),
                "BillingCity":post_data.get( 'BillingCity'),
                "BillingState":post_data.get( 'BillingState'),
                "BillingCountry":post_data.get( 'BillingCountry'),
                "BillingZipCode":post_data.get( 'BillingZipCode'),
                "ShippingFirstName":post_data.get( 'ShippingFirstName'),
                "ShippingLastName":post_data.get(' ShippingLastName'),
                "ShippingAddress":post_data.get( 'ShippingAddress'),
                "ShippingCity":post_data.get( 'ShippingCity'),
                "ShippingState":post_data.get( 'ShippingState'),
                "ShippingCountry":post_data.get( 'ShippingCountry'),
                "ShippingZipCode":post_data.get( 'ShippingZipCode'),
                "ShippingMobileNo":post_data.get( 'ShippingMobileNo'),
            },
            "IntegrationData":{
                "UserName":post_data.get( "UserName"),
                "Source":post_data.get( "Source"),
                "IntegrationType":post_data.get( "IntegrationType"),
                "HashData":post_data.get( "HashData"),
                "PlatformId":post_data.get( "PlatformId"),
            }
        }

        message = self.AuthenticationKey+ ":"+self.AuthenticationToken+ ":M:"+self.MerchantKeyId
        message_bytes = message.encode('ascii')
        base64_bytes = base64.b64encode(message_bytes)
        base64_message = base64_bytes.decode('ascii')
        
        url = self.paymentURL+ "/create"      
        payload = json.JSONEncoder().encode(myfamily);
        headers = {
        'content-type':  "application/json" "Basic "+base64_message,
        'cache-control':  "no-cache",
        'postman-token':  "d755d76a-eee0-437a-48f6-cd08297493f8"
        }

        response = requests.request("POST", url, data=payload, headers=headers)
        pprint.pprint("yagyang start")
        pprint.pprint(response.text)
        pprint.pprint("yagyang end")
        
         return json.loads(response.text)

Payg Samples SDK_Python Download
      

{"OrderKeyId":"210619M11172U6f463b05b1",
"MerchantKeyId":11172,
"UniqueRequestId":"6f463b05b1",
"OrderType":"PAYMENT",
"OrderAmount":45,
"OrderId":77,
"OrderStatus":'',
"OrderPaymentStatus":0,
"OrderPaymentStatusText":'',
"PaymentStatus":0,
"PaymentTransactionId":'',
"PaymentResponseCode":0,
"PaymentApprovalCode":'',
"PaymentTransactionRefNo":'',
"PaymentResponseText":'',
"PaymentMethod":'',
"PaymentAccount":'',
"OrderNotes":'',
"PaymentDateTime":'',
"UpdatedDateTime":'',
"PaymentProcessUrl":"https:\/\/payg.in\/payment\/payment?orderid=210619M11172U6f463b05b1",
"OrderPaymentCustomerData":{
   "FirstName":"kanhaiya",
   "LastName":'dhaked',
   "Address":'jaipur',
   "City":'jaipur',
   "State":'RJ',
   "ZipCode":'302020',
   "Country":'IN',
   "MobileNo":"8619083450",
   "Email":"kl.nagar7@gmail.com",
   "UserId":'34',
   "IpAddress":'127.0.0.1'
   },
"UpiLink":"upi:\/\/pay?pa=A2zfame@yesbank&pn=A2zfame&mc=8999&am=0&mam=null&cu=INR&mode=01&orgid=00000&mid=YES0000001558758&sign=YzYxYzhmOWI5MjY1MjM3ZDEzMzQ0NDhkYWQ3NTNlZGE5OTcwMDE2MjEyODQ2ZDFiZjdlNTU4YmM3OThkOTY0NGIxYzk3OGIxNGZjM2VkMWRhYjA2MDA4MDhhZDY2M2Q2Y2I5MWQ4ZmExMTAzMjU0YzJhNTk4MDRjMzhlZmVkNGI="
}
  
 

Step 2: Payment process url for checkout 🔗

This payment url is used to redirect to actual payment screen.

Developer can redirect either by using javascript or other programming language.

This is a javascript example like window.location="Payment process url"

Step 3: Order Details 🔗

You can get order details by passing the below request parameters.

   
Authorization: basic authentication with base64encoded
PayGAuthentication –
<MerchantAuthenticationKey>:<MerchantAuthenticationToken>:M:<MerchantKeyId>
   
   

   
{
"OrderKeyId": "210624M7963Ubd259588d4",
"MerchantKeyId": "7963",
"PaymentType": ''
};

   
   

   
def orderDetail(self,post_data):
     url = self.paymentURL+"/Detail"      
     message = self.AuthenticationKey+":"+self.AuthenticationToken+":M:"+self.MerchantKeyId
     message_bytes = message.encode('ascii')
     base64_bytes = base64.b64encode(message_bytes)
     base64_message = base64_bytes.decode('ascii')
     
     myfamily = {
         "OrderKeyId":post_data.get('OrderKeyId'),
         "MerchantKeyId":self.MerchantKeyId,
     }
     
     payload = json.JSONEncoder().encode(myfamily);
     headers = {
     'content-type': "application/json",
     'authorization': "Basic "+base64_message,
     'cache-control': "no-cache",
     'postman-token': "d755d76a-eee0-437a-48f6-cd08297493f8"
     }

     response = requests.request("POST", url, data=payload, headers=headers)
     pprint.pprint("yagyang start")
     pprint.pprint(response.text)
     pprint.pprint("yagyang end")
     
     return json.loads(response.text)
   
   

   
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>'uatapi.payg.in/payment/api/order/Detail',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>$payload_data,
CURLOPT_HTTPHEADER => $header,
));

$response = curl_exec($curl);
curl_close($curl);

   
   


   
   {
   "OrderKeyId": "210624M7963Ubd259588d4",
   "MerchantKeyId": 7963,
   "UniqueRequestId": "bd259588d4",
   "OrderType": "213",
   "OrderAmount": 1.00,
   "OrderId": null,
   "OrderStatus": "0",
   "OrderPaymentStatus": 0,
   "OrderPaymentStatusText": null,
   "PaymentStatus": 0,
   "PaymentTransactionId": null,
   "PaymentResponseCode": 0,
   "PaymentApprovalCode": null,
   "PaymentTransactionRefNo": null,
   "PaymentResponseText": null,
   "PaymentMethod": null,
   "PaymentAccount": null,
   "OrderNotes": null,
   "PaymentDateTime": null,
   "UpdatedDateTime": "6/24/2021 6:12:43 PM",
   "PaymentProcessUrl": null,
   "OrderPaymentCustomerData": null,
   "UpiLink": null
      }         
   
   

Note: Please check the payment status codes from this URL Payment Response codes Note: Please check the error codes from this URL Error codes