/**
* @package nexapayPayment
*/
/*
Plugin Name: nexapay Woo Commerce Plugin
Plugin URI: https://nexapay.in/integration/
Description: This plugin allows you to integrate with Nexapay payment gateway.
Version:1.0.0
Author: nexapay
Author URI: https://dev.nexapay.in/
License: GPLv2 or Later
Text Domain: wc_nexapay_payment
*/
/**
* Check if WooCommerce is active
**/
if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {
// Put your plugin code here
}
if ( !function_exists( 'add_action' ) ) {
echo 'Hi there! I\'m just a plugin, not much I can do when called directly.';
exit;
}
add_action( 'plugins_loaded', 'wc_nexapay_gateway_init', 0 );
define('MakeRequest', WP_PLUGIN_URL . "/" . plugin_basename(dirname(__FILE__)) . '/MakeRequest.php');
function wc_nexapay_gateway_init() {
if(class_exists('WC_Payment_Gateway')){
class WC_nexapay_Payment_Gateway extends WC_Payment_Gateway {
// The meat and potatoes of our gateway will go here
public function __construct(){
global $woocommerce;
global $wpdb;
$this->id = 'nexapay';
$this->icon = apply_filters('woocommerce_nexapay_icon',plugins_url('/assets/icon.png',__FILE__));
$this->method_title = __('nexapay','wc_nexapay_payment');
$this->method_description = __('This plugin allows you to integrate with nexapay payments','wc_nexapay_payment');
$this->title = __( "nexapay", 'wc_nexapay_payment' );
$this->description = "nexapay Payment Setting page.";
$this->has_fields = false;
$this->init_form_fields();
$this->init_settings();
$this->title = $this->get_option('title');
$this->url = $this->settings['nexapay_url'];
$this->key_id = $this->settings['key_id'];
$this->secret_key = $this->settings['secret_key'];
$this->description = $this->settings['description'];
$this->prod_id = $this->settings['prod_id'];
$this->request_hashkey = $this->settings['request_hashkey'];
$this->response_hashkey = $this->settings['response_hashkey'];
$this->request_saltkey = $this->settings['request_saltkey'];
$this->response_saltkey = $this->settings['response_saltkey'];
$this->request_aeskey = $this->settings['request_aeskey'];
$this->response_aeskey = $this->settings['response_aeskey'];
add_action('woocommerce_update_options_payment_gateways_'.$this->id, array($this,'process_admin_options'));
//$link = function_exists( 'wc_get_cart_url' ) ? wc_get_cart_url() : $woocommerce->cart->get_cart_url();
$this->thank_you_page(); //http://localhost/wordpress/checkout/
// add_action('the_content', array(&$this, 'thank_you_page'));
// add_action('woocommerce_thank_you_'.$this->id, array($this,'thank_you_page'));
}
public function init_form_fields(){
$this->form_fields = array(
'enabled' => array(
'title' => __( 'Enable/Disable', 'wc_nexapay_payment' ),
'type' => 'checkbox',
'label' => __( 'Enable or Disable nexapay Payments', 'wc_nexapay_payment' ),
'default' => 'yes'
),
'title' => array(
'title' => __( 'Title', 'wc_nexapay_payment' ),
'type' => 'text',
'description' => __( 'Add a new title for the nexapay Payments that customers will see when they are in the checkout page.', 'wc_payripe_payment' ),
'default' => __( 'NexaPay Your Digital Payments Partner', 'wc_nexapay_payment' ),
'desc_tip' => true,
'custom_attributes' => array('readonly' => 'readonly'),
),
'description' => array(
'title' => __( 'Description', 'wc_nexapay_payment' ),
'type' => 'textarea',
'default' =>__('Grow your business with the flawless integration of digital payments solutions!.', 'wc_nexapay_payment'),
'description'=> __('This controls the description which the user sees during checkout.', 'wc_nexapay_payment'),
'desc_tip'=> true,
'custom_attributes' => array('readonly' => 'readonly'),
),
'nexapay_url' => array(
'title' => __('Gateway Url', 'wc_nexapay_payment'),
'type' => 'text',
'default'=> __('https://prod.nexapay.in/payment/gateway/v1/initialrequest','wc_nexapay_payment'),
'description' => __('Will be provided by nexapay payment gateway', 'wc_nexapay_payment'),
'desc_tip' => true,
'custom_attributes' => array('readonly' => 'readonly'),
),
'key_id' => array(
'title' => __('Key Id', 'wc_nexapay_payment'),
'type' => 'text',
'description' => __('As provided by nexapay merchant website', 'wc_nexapay_payment'),
'desc_tip' => true
),
'secret_key' => array(
'title' => __('Secret Key', 'wc_nexapay_payment'),
'type' => 'text',
'description' => __('As provided by nexapay merchant website', 'wc_nexapay_payment'),
'desc_tip' => true
),
'prod_id' => array(
'title' => __('Product ID', 'wc_nexapay_payment'),
'type' => 'text',
'description' => __('Will be provided by nexapay merchant website after production movement', 'wc_nexapay_payment'),
'desc_tip' => true
),
'request_hashkey' => array(
'title' => __('Request Hashkey', 'wc_nexapay_payment'),
'type' => 'text',
'description' => __('Request hash key, provided by nexapay merchant web site', 'wc_nexapay_payment'),
'desc_tip' => true
),
'response_hashkey' => array(
'title' => __('Response Hashkey', 'wc_nexapay_payment'),
'type' => 'text',
'description' => __('Response Hashkey, provided by nexapay merchant web site', 'wc_nexapay_payment'),
'desc_tip' => true
),
'request_saltkey' => array(
'title' => __('Request Saltkey', 'wc_nexapay_payment'),
'type' => 'text',
'description' => __('Request Saltkey, provided by nexapay merchant web site', 'wc_nexapay_payment'),
'desc_tip' => true
),
'response_saltkey' => array(
'title' => __('Response Saltkey', 'wc_nexapay_payment'),
'type' => 'text',
'description' => __('Response Saltkey, provided by nexapay merchant web site', 'wc_nexapay_payment'),
'desc_tip' => true
),'request_aeskey' => array(
'title' => __('Request AESkey', 'wc_nexapay_payment'),
'type' => 'text',
'description' => __('Request AESkey, provided by nexapay merchant web site', 'wc_nexapay_payment'),
'desc_tip' => true
),
'response_aeskey' => array(
'title' => __('Response AESkey', 'wc_nexapay_payment'),
'type' => 'text',
'description' => __('Response AESkey, provided by nexapay merchant web site', 'wc_nexapay_payment'),
'desc_tip' => true
),
);
}
public function process_payment($order_id){
global $woocommerce;
global $current_user;
//get user details
$current_user = wp_get_current_user();
$user_email = $current_user->user_email;
$first_name = $current_user->user_login;
$last_name = $current_user->shipping_last_name;
$phone_number = $current_user->billing_phone;
$country = $current_user->shipping_country;
$state = $current_user->shipping_state;
$city = $current_user->shipping_city;
$postcode = $current_user->shipping_postcode;
$address_1 = $current_user->shipping_address_1;
$address_2 = $current_user->shipping_address_2;
$udf2 = $first_name." ".$last_name;
$udf3 = $country." ".$state." ".shipping_city." ".$address_1." ".$address_2." ".$postcode;
// $udf4 = "";
// $udf5 = "";
$order= new WC_Order( $order_id );
$keyId = $this->key_id;
$secretKey = $this->secret_key;
$txnCurr = 'INR';
$amount = $order->get_total();
$emailId = $user_email;
$username=$first_name;
$mobileNumber = $phone_number;
$prodId = $this->prod_id;
$requestHashKey = $this->request_hashkey;
$requestSaltKey = $this->request_saltkey;
$requestAESKey = $this->request_aeskey;
$message = $keyId.$secretKey.$txnCurr.$amount.$emailId.$mobileNumber;
$signature =hash_hmac('sha256', $message, $requestHashKey);
$myObj = (object)array();
$myObj->clientId= $this->key_id;
$myObj->clientSecret= $this->secret_key;
$myObj->txnCurr='INR';
$myObj->amount=$order->get_total();
$myObj->emailId= $user_email;
$myObj->prodId= $this->prod_id;
$myObj->username=$username;
$myObj->mobileNumber=$phone_number;
$myObj->signature=$signature;
$myObj->udf1=$order_id;
$myObj->udf2=$udf2;
$myObj->udf3=$udf3;
// $myObj->udf4=$udf4;
// $myObj->udf5=$udf5;
$myJSON = json_encode($myObj);
$encryptJsonObj=$this-> encrypt($myJSON,$requestSaltKey,$requestAESKey);
$order = wc_get_order($order_id);
$order ->update_status('on-hold',__('Awaiting nexapay Payment','wc_nexapay_payment'));
$param = "clientKey=".$keyId."&encrypt=".$encryptJsonObj;
return array(
'result' => 'success',
'redirect' => MakeRequest."?key=".$keyId."&enc=".$encryptJsonObj."&url=".$this->url
);
exit;
}
public function thank_you_page(){
global $woocommerce;
global $wpdb, $woocommerce;
$content = "";
$content .= '
';
$content .= '
nexapay Thank you ';
if(isset($_POST['secureData'])){
add_action('the_content', array(&$this, 'thank_you_page'));
$responseData = $_POST['secureData'];
$responesSaltKey = $this->response_saltkey;
$responesAESKey = $this->response_aeskey;
$decryptJsonObj = $this->decrypt($responseData,$responesSaltKey,$responesAESKey);
$content .= '
';
// Convert JSON string to Array
$dataArray = json_decode($decryptJsonObj, true);
// $content .= "Json : ".$decryptJsonObj;
// $content .=" ";
// =============== response code end ============
$valid = $dataArray['status'].$dataArray['orderId'].$dataArray['transactionId'].$dataArray['bankId'].$dataArray['description'];
// generate hmac sha 256 hashkey
$signature= hash_hmac('sha256', $valid, $this->response_hashkey);
// $content .=" ";
// $content .= $signature;
//================= validate signature ========================
if($dataArray['signature']==$signature){
$content .= "Status : ".$dataArray['status'];
//$content .=" ";
// $content .= "Client Id : ".$dataArray['clientId'];
$content .=" ";
$content .= "Order Id : ".$dataArray['orderId'];
$content .=" ";
$content .= "Bank Id : ".$dataArray['bankId'];
$content .=" ";
$content .= "Transaction Id : ".$dataArray['transactionId'];
$content .=" ";
$content .= "Amount : ".$dataArray['amount'];
$content .=" ";
$content .= "Email Id : ".$dataArray['emailId'];
$content .=" ";
$content .= "Mobile Number : ".$dataArray['mobileNumber'];
// $content .=" ";
//$content .= "Signature : ".$dataArray['signature'];
$content .=" ";
$content .= "Date : ".$dataArray['date'];
$content .=" ";
$content .= "Description : ".$dataArray['description'];
$content .= " ";
// $content .= "Valid Transaction";
$content .= " ";
$order = new WC_Order($dataArray['udf1']);
if($dataArray['status']=="200"){
$order->update_status('wc-completed',__('Payment Completed By nexapay.','wc_nexapay_payment'));
}else if($dataArray['status']=="400"){
$order->update_status('wc-failed');
}else if($dataArray['status']=="402"){
$order->update_status('wc-cancelled');
}
}else{
$content .= " ";
$content .= "Invalid Transaction";
$content .= " ";
}
$content .= '
';
}
$content .= '
';
return $content;
}
public function encrypt($data, $salt,$key) {
if($key != NULL && $data != "" && $salt != ""){
$method = "AES-256-CBC";
/*Converting Array to bytes*/
$iv = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
$chars = array_map("chr", $iv);
$IVbytes = join($chars);
$salt1 = mb_convert_encoding($salt, "UTF-8"); /*Encoding to UTF-8*/
$key1 = mb_convert_encoding($key, "UTF-8"); /*Encoding to UTF-8*/
/*SecretKeyFactory Instance of PBKDF2WithHmacSHA1 Java Equivalent*/
$hash = openssl_pbkdf2($key1,$salt1,'256','65536', 'sha1');
$encrypted = openssl_encrypt($data, $method, $hash, OPENSSL_RAW_DATA, $IVbytes);
return bin2hex($encrypted);
}else{
return "String to encrypt, Salt and Key is required.";
}
}
public function decrypt($data, $salt, $key) {
if($key != NULL && $data != "" && $salt != ""){
$dataEncypted = hex2bin($data);
$method = "AES-256-CBC";
/*Converting Array to bytes*/
$iv = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
$chars = array_map("chr", $iv);
$IVbytes = join($chars);
$salt1 = mb_convert_encoding($salt, "UTF-8");/*Encoding to UTF-8*/
$key1 = mb_convert_encoding($key, "UTF-8");/*Encoding to UTF-8*/
/*SecretKeyFactory Instance of PBKDF2WithHmacSHA1 Java Equivalent*/
$hash = openssl_pbkdf2($key1,$salt1,'256','65536', 'sha1');
$decrypted = openssl_decrypt($dataEncypted, $method, $hash, OPENSSL_RAW_DATA, $IVbytes);
return $decrypted;
}else{
return "Encrypted String to decrypt, Salt and Key is required.";
}
}
}// class end
add_filter('woocommerce_payment_gateways','add_to_nexapay_payment_gateway');
function add_to_nexapay_payment_gateway($gateways){
$gateways[] = 'WC_nexapay_Payment_Gateway';
return $gateways;
}
}
}
Crafted Comforts
Skip to content
CRAFTED COMFORTS
Timeless COMFORT, MODERN ELEGANCE – CRAFTED FOR YOU
Welcome to Crafted Comforts, where exquisite furniture craftsmanship meets your vision of the perfect home. Discover finely curated furniture and decor that elevates your living spaces
Shop Now
Crafting Your Unique Home Story.
Discover the magic of home decor that speaks to your personality. From chic to timeless classics, we have something for every style.
Shop Now
WHERE STYLE MEETS HOME
We believe that your home should be a reflection of you. Dive into our collection to find pieces that resonate with your unique style and personality.
Shop Now
CHAIRS THAT SUPPORT YOUR EVERY MOMENT
Whether you’re seeking a cozy reading nook or an elegant dining experience, our chairs are the perfect choice to complete your vision
Shop Now
DREAMY BEDROOMS
Where Sleep Meets Style.
Shop Now
BEDROOM BLISS!
Bedrooms Crafted for Restful Nights and Beautiful Mornings.
Shop Now
SLEEP, RELAX, REPEAT
Your Dream Bedroom Awaits.
Shop Now
Grab Your Favourites Before They’re Gone
Shop Now
“Your Personal Haven right at home”
Our furniture and decor are more than just pieces; they are expressions of comfort and style. Redefine your living spaces with us.
LATEST ARRIVALS
₹ 799.00 Original price was: ₹799.00. ₹ 199.00Current price is: ₹199.00.
₹ 1,199.00 Original price was: ₹1,199.00. ₹ 549.00Current price is: ₹549.00.
₹ 599.00 Original price was: ₹599.00. ₹ 319.00Current price is: ₹319.00.
₹ 599.00 Original price was: ₹599.00. ₹ 319.00Current price is: ₹319.00.
₹ 1,199.00 Original price was: ₹1,199.00. ₹ 539.00Current price is: ₹539.00.
₹ 3,499.00 Original price was: ₹3,499.00. ₹ 1,529.00Current price is: ₹1,529.00.
₹ 1,499.00 Original price was: ₹1,499.00. ₹ 899.00Current price is: ₹899.00.
₹ 999.00 Original price was: ₹999.00. ₹ 499.00Current price is: ₹499.00.
₹ 10,490.00 Original price was: ₹10,490.00. ₹ 9,990.00Current price is: ₹9,990.00.
₹ 21,900.00 Original price was: ₹21,900.00. ₹ 11,490.00Current price is: ₹11,490.00.
₹ 1,999.00 Original price was: ₹1,999.00. ₹ 1,099.00Current price is: ₹1,099.00.
₹ 1,499.00 Original price was: ₹1,499.00. ₹ 599.00Current price is: ₹599.00.
₹ 4,999.00 Original price was: ₹4,999.00. ₹ 2,999.00Current price is: ₹2,999.00.
₹ 391.00 Original price was: ₹391.00. ₹ 385.00Current price is: ₹385.00.
₹ 98,400.00 Original price was: ₹98,400.00. ₹ 86,450.00Current price is: ₹86,450.00.
₹ 899.00 Original price was: ₹899.00. ₹ 419.00Current price is: ₹419.00.
₹ 52,999.00 Original price was: ₹52,999.00. ₹ 49,999.00Current price is: ₹49,999.00.
Home Décor
Desidiya® Golden Yellow Hanging Ceiling Pendant Light, for Bedroom, Living Room, Café, Restaurant, Hallway, Kitchen, Over The Dining Table, Hotels, Malls (Capsule Hanging, Bulb Not Included)
₹ 2,999.00 Original price was: ₹2,999.00. ₹ 799.00Current price is: ₹799.00.
₹ 36,000.00 Original price was: ₹36,000.00. ₹ 31,659.00Current price is: ₹31,659.00.
₹ 2,599.00 Original price was: ₹2,599.00. ₹ 698.00Current price is: ₹698.00.
₹ 995.00 Original price was: ₹995.00. ₹ 549.00Current price is: ₹549.00.
₹ 999.00 Original price was: ₹999.00. ₹ 399.00Current price is: ₹399.00.
₹ 16,000.00 Original price was: ₹16,000.00. ₹ 13,700.00Current price is: ₹13,700.00.
₹ 31,000.00 Original price was: ₹31,000.00. ₹ 27,500.00Current price is: ₹27,500.00.
₹ 2,199.00 Original price was: ₹2,199.00. ₹ 1,619.00Current price is: ₹1,619.00.
₹ 14,931.00 Original price was: ₹14,931.00. ₹ 2,499.00Current price is: ₹2,499.00.
₹ 57,664.00 Original price was: ₹57,664.00. ₹ 45,000.00Current price is: ₹45,000.00.
₹ 4,500.00 Original price was: ₹4,500.00. ₹ 2,295.00Current price is: ₹2,295.00.
tRANSFORM YOUR HOME
From handcrafted furniture that exudes timeless beauty to home decor pieces that express your unique taste, Crafted Comforts is your go-to destination for creating spaces you’ll love coming home to. We curate each item with care and craftsmanship, offering a diverse selection that caters to various styles and preferences.
Your satisfaction is our top priority. Whether you’re transforming a room or just adding a few finishing touches, our dedicated team is here to assist you at every step. We’re just an email or phone call away, ready to answer your questions and make your shopping experience smooth and enjoyable.
Featured
₹ 599.00 Original price was: ₹599.00. ₹ 369.00Current price is: ₹369.00.
₹ 995.00 Original price was: ₹995.00. ₹ 549.00Current price is: ₹549.00.
₹ 6,920.00 Original price was: ₹6,920.00. ₹ 3,920.00Current price is: ₹3,920.00.
₹ 798.00 Original price was: ₹798.00. ₹ 758.00Current price is: ₹758.00.
₹ 599.00 Original price was: ₹599.00. ₹ 339.00Current price is: ₹339.00.
₹ 3,699.00 Original price was: ₹3,699.00. ₹ 1,399.00Current price is: ₹1,399.00.
₹ 17,599.00 Original price was: ₹17,599.00. ₹ 6,964.00Current price is: ₹6,964.00.
₹ 899.00 Original price was: ₹899.00. ₹ 419.00Current price is: ₹419.00.