JS Checkout

It is easy to integrate the JS Checkout into your website. It provides an efficient way to collect online payments with multiple payment options from your customer. Also, it adds to customer satisfaction because while making the payment he remains on the merchant website. This boosts the trust and confidence of the customer to proceed with the checkout process and pay with their preferred payment method.

Prerequisite

Following things will be required before you can begin integration:

Integration Steps for JS Checkout

1. include js

In the given order include these two JS in your HTML script

<script src="https://checkout.paykun.com/checkout/plugin/crypt/crypto-js.min.js"></script>
<script src="https://checkout.paykun.com/checkout/js/paykun.js"></script>

2. JS Code

The given below is the Sample JS Code to initialize the payment -

// Create Paykun object
// Currently Sandbox does not support JS checkout, and so you will not be able to test JS integration,
// isLive can only be true for now
const pk = new PayKun({ merchantId : "merchantId", accessToken: "accessToken", isLive: true});
// Add this function in your javascript tag or your js file
// This method can be called to initialize payment, It can be any event User Generated Or system Generated
function initPayment() {
let order = {
amount: "10", // Amount to collect
orderId: "ORD" + (new Date).getTime(), // Unique order id, You can use your custom login here, but make sure it generates unique ID everytime
productName: "Mobile", // Name of the product
customerName: "Test name", // Name of the customer
customerEmail: "test@gmail.com", // Email of the customer
customerMobile: "9999999999", // Mobile of customer
currency: "INR", //set your 3 digit currency code here
// Following are callback function and will be called when any result is received after payment,
// If payment is success then onSuccess method will be called Or else onCancelled method will be called
onSuccess: function (transactionId) {
// You can use 'transactionId' variable to process payment at your server side if you like,
// In that case you can call our transaction status API on your server to get transaction information Or
// You can get complete transaction details by calling the following function
// WARNING: It is advisable to verify transaction amount and status at your server side using Transaction ID before delivering any service for security reason
var transaction = pk.getTransactionDetail(transactionId, function(transaction) {
// You can show payment success message to user here, Also process this payment success at your server side to deliver services to customer
console.log(transaction);
alert('Payment is success, Your transaction ID : ' + transaction.transaction.payment_id);
});
},
onCancelled: function (transactionId) {
// You can use 'transactionId' variable to process payment at your server side if you like,
// In that case you can call our transaction status API on your server to get transaction information Or
// You can get complete transaction details by calling following function
var transaction = pk.getTransactionDetail(transactionId, function(transaction) {
// You can show payment canceled message to user here, Also mark this payment as failed/cancelled at your server side
console.log(transaction);
alert('Payment is cancelled, Your transaction ID : ' + transaction.transaction.payment_id);
});
}
};
//Init Paykun Payment and open checkout popup
pk.init(order);
}

3. Pay Button

Place this button in your HTML code, so a user can click on it and proceed to pay. Similarly, you can call initPayment() anywhere to initiate the payment.

<button onclick="initPayment()">Pay ₹10</button>

Sample Transaction Response

{
"message": "Record retrieved successfully",
"transaction": {
"payment_id": "55873-83139-75447-76995",
"merchant_email": "merchantemail@test.com",
"merchant_id": "123456789012345",
"status": "Failed",
"status_flag": 0,
"payment_mode": null,
"order": {
"order_id": "DEMO_ORD1560424646862",
"product_name": "Test Checkout",
"gross_amount": 10,
"gateway_fee": null,
"tax": null
},
"customer": {
"name": "Customer Name",
"email_id": "customeremail@gmail.com",
"mobile_no": "1234567890"
},
"shipping": {
"address": null,
"city": null,
"state": null,
"country": null,
"pincode": null
},
"billing": {
"address": null,
"city": null,
"state": null,
"country": null,
"pincode": null
},
"custom_field_1": "",
"custom_field_2": "",
"custom_field_3": "",
"custom_field_4": "",
"custom_field_5": "",
"date": "1560424703"
}
}