/** * @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 .= '
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
]]>Typi non habent claritatem insitam; est usus legentis in iis qui facit eorum claritatem. Investigationes demonstraverunt lectores legere me lius quod ii legunt saepius. Claritas est etiam processus dynamicus
]]>Neque libero viverra lorem, ac tristique orci augue eu metus. Aenean elementum nisi vitae justo adipiscing gravida sit amet et risus. Suspendisse dapibus elementum quam, vel semper mi tempus ac.
]]>Nam at nisi risus. Proin pretium, dolor vel venenatis suscipit, dui nunc tincidunt lectus, ac placerat felis dui in justo. Aliquam orci velit, facilisis in facilisis non, scelerisque in massa. Integer scelerisque odio nec eros sodales laoreet. Sed sed odio tellus. In tristique felis ac facilisis tempor. Nunc non enim in dolor congue pulvinar sed sed nisi. Mauris viverra convallis feugiat. Nam at mauris laoreet, dictum leo at, tristique mi. Aenean pellentesque justo vel diam elementum iaculis. Nam lobortis cursus vestibulum. Nulla feugiat mauris felis, auctor pretium dui euismod in.
Vestibulum et enim vitae lectus malesuada aliquam vitae non mi. Suspendisse tellus eros, ultricies nec lorem feugiat, pharetra auctor dui. Suspendisse placerat neque leo, nec commodo eros ultrices vel. Fusce elit libero, aliquam quis libero non, consectetur accumsan est. Proin tempus mauris id cursus posuere. Sed et rutrum felis, vel aliquet ante. Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque neque tellus, condimentum non eros non, consectetur auctor lacus. Curabitur malesuada odio eget elit egestas porttitor.
]]>Nam at nisi risus. Proin pretium, dolor vel venenatis suscipit, dui nunc tincidunt lectus, ac placerat felis dui in justo. Aliquam orci velit, facilisis in facilisis non, scelerisque in massa. Integer scelerisque odio nec eros sodales laoreet. Sed sed odio tellus. In tristique felis ac facilisis tempor. Nunc non enim in dolor congue pulvinar sed sed nisi. Mauris viverra convallis feugiat. Nam at mauris laoreet, dictum leo at, tristique mi. Aenean pellentesque justo vel diam elementum iaculis. Nam lobortis cursus vestibulum. Nulla feugiat mauris felis, auctor pretium dui euismod in.
Vestibulum et enim vitae lectus malesuada aliquam vitae non mi. Suspendisse tellus eros, ultricies nec lorem feugiat, pharetra auctor dui. Suspendisse placerat neque leo, nec commodo eros ultrices vel. Fusce elit libero, aliquam quis libero non, consectetur accumsan est. Proin tempus mauris id cursus posuere. Sed et rutrum felis, vel aliquet ante. Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque neque tellus, condimentum non eros non, consectetur auctor lacus. Curabitur malesuada odio eget elit egestas porttitor.
]]>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.
]]>Ut eu imperdiet arcu. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Cras interdum porttitor quam at tempus. Sed quis rutrum lorem.
Ut eu imperdiet arcu. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Cras interdum porttitor quam at tempus. Sed quis rutrum lorem. Mauris vitae dui ut neque pulvinar mattis. Mauris sed tincidunt nisi. Ut porta quis lorem at consectetur. Mauris elementum vulputate metus, ut cursus felis dictum non. Sed in nulla metus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Phasellus at nunc eget ligula tristique scelerisque in et urna.
Pellentesque imperdiet, nunc id scelerisque scelerisque, nisi arcu hendrerit leo, vel volutpat arcu mi in risus. Vestibulum iaculis molestie venenatis. Donec faucibus elit quis enim porta, id fringilla lectus feugiat. Sed et diam fermentum, elementum elit et, placerat nisi. Sed vehicula nibh sed tellus elementum condimentum. Fusce laoreet lorem ipsum, vitae aliquam arcu gravida gravida. Nunc eget tristique sem, eu ornare ligula.
Pellentesque facilisis lobortis volutpat. Etiam non suscipit velit, vitae ornare eros. In hac habitasse platea dictumst. Phasellus eu auctor metus, et porta justo. Vivamus suscipit fermentum ante, eu dignissim orci. Proin faucibus quis orci a dictum. Nulla ac nibh neque. Curabitur eu justo massa.
]]>