Results 1 to 4 of 4
  1. #1
    Join Date
    Dec 2015
    Location
    Hyderabad
    Posts
    5
    Plugin Contributions
    0

    Default Response page from ebs payment gateway showing just a number

    Dear team,

    I have successfully managed to integrate EBS payment gateway in my zencart.

    The error is that after the checkout page redirects to EBS PAYMENT GATEWAY. HERE i enter the creditcard details. If the card details are correct or wrong the ebs redirects the page to my zencart. This page just shows a number. i am assuming it is some kind of secure has number which my zencart is not showing. (See attachment)

    also when i click on home. the items are still in cart.

    the same error happens even if the credit card details provided are correct and amount is debitted from the account. Here with posting the code for payment page of EBS.

    /includes/modules/payment/ebs2_5.php

    <?php
    /*
    Zencart
    Copyright (c) 2003 Zencart
    Released under the GNU General Public License
    */
    /**
    * RC4 stream cipher routines implementation
    *
    * in PHP4 based on code written by Damien Miller <[email protected]>
    *
    * Usage:
    * $key = "pear";
    * $message = "PEAR rulez!";
    *
    * $rc4 = new Crypt_RC4;
    * $rc4->key($key);
    * echo "Original message: $message <br>\n";
    * $rc4->crypt($message);
    * echo "Encrypted message: $message <br>\n";
    * $rc4->decrypt($message);
    * echo "Decrypted message: $message <br>\n";
    *
    * @version $Revision: 1.6 $
    * @access public
    * @package Crypt
    * @author Dave Mertens <[email protected]>
    */

    class Crypt_RC4 {

    /**
    * Real programmers...
    * @var array
    */
    var $s= array();
    /**
    * Real programmers...
    * @var array
    */
    var $i= 0;
    /**
    * Real programmers...
    * @var array
    */
    var $j= 0;
    /**
    * Key holder
    * @var string
    */
    var $_key;

    /**
    * Constructor
    * Pass encryption key to key()
    *
    * @see key()
    * @param string key - Key which will be used for encryption
    * @return void
    * @access public
    */
    function Crypt_RC4($key = null) {
    if ($key != null) {
    $this->setKey($key);
    }
    }

    function setKey($key) {
    if (strlen($key) > 0)
    $this->_key = $key;
    }

    /**
    * Assign encryption key to class
    *
    * @param string key - Key which will be used for encryption
    * @return void
    * @access public
    */
    function key(&$key) {
    $len= strlen($key);
    for ($this->i = 0; $this->i < 256; $this->i++) {
    $this->s[$this->i] = $this->i;
    }

    $this->j = 0;
    for ($this->i = 0; $this->i < 256; $this->i++) {
    $this->j = ($this->j + $this->s[$this->i] + ord($key[$this->i % $len])) % 256;
    $t = $this->s[$this->i];
    $this->s[$this->i] = $this->s[$this->j];
    $this->s[$this->j] = $t;
    }
    $this->i = $this->j = 0;
    }

    /**
    * Encrypt function
    *
    * @param string paramstr - string that will encrypted
    * @return void
    * @access public
    */
    function crypt(&$paramstr) {

    //Init key for every call, Bugfix 22316
    $this->key($this->_key);

    $len= strlen($paramstr);
    for ($c= 0; $c < $len; $c++) {
    $this->i = ($this->i + 1) % 256;
    $this->j = ($this->j + $this->s[$this->i]) % 256;
    $t = $this->s[$this->i];
    $this->s[$this->i] = $this->s[$this->j];
    $this->s[$this->j] = $t;

    $t = ($this->s[$this->i] + $this->s[$this->j]) % 256;

    $paramstr[$c] = chr(ord($paramstr[$c]) ^ $this->s[$t]);
    }
    }

    /**
    * Decrypt function
    *
    * @param string paramstr - string that will decrypted
    * @return void
    * @access public
    */
    function decrypt(&$paramstr) {
    //Decrypt is exactly the same as encrypting the string. Reuse (en)crypt code
    $this->crypt($paramstr);

    }


    } //end of RC4 class

    // Please make sure you insert your merchant id in the OSC admin area

    class ebs2_5 {
    var $code, $title, $description, $enabled;

    // class constructor

    function ebs2_5() {
    global $order;

    $this->code = 'ebs2_5';
    $this->title = MODULE_PAYMENT_EBS_TEXT_TITLE;
    $this->description = MODULE_PAYMENT_EBS_TEXT_DESCRIPTION;
    $this->sort_order = MODULE_PAYMENT_EBS_SORT_ORDER;
    $this->enabled = ((MODULE_PAYMENT_EBS_STATUS == 'True') ? true : false);

    if(MODULE_PAYMENT_EBS_TESTMODE=="TEST"){
    $this->form_action_url = "https://secure.ebs.in/pg/ma/payment/request/";
    } else {
    $this->form_action_url = 'https://secure.ebs.in/pg/ma/payment/request/';
    //$this->form_action_url = '';
    }
    }

    function update_status() {
    /* Check whether the zones/geo_zones is valid */
    global $order;
    if (((int) MODULE_PAYMENT_EBS_VALID_ZONE > 0)) {
    $checkFlag = false;
    global $db;
    $sql = "select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_EBS_VALID_ZONE . "' and
    zone_country_id = '".$order->delivery['country']['id']."' order by zone_id";
    $result = $db->Execute($sql);
    if($result) while(!$result->EOF) {
    if ($result->fields['zone_id'] < 1) {
    $checkFlag = true;
    break;
    }
    elseif ($result->fields['zone_id'] == $order->delivery['zone_id']) {
    $checkFlag = true;
    break;
    }
    // Move Next
    }

    /* Set whether this should be valid or not */
    if ($checkFlag == false) {
    $this->enabled = false;
    }
    }
    }

    // class methods

    function javascript_validation() {
    return '';
    }

    function selection() {

    global $order;
    for ($i=1; $i < 13; $i++) {
    $expires_month[] = array('id' => sprintf('%02d', $i), 'text' => strftime('%B',mktime(0,0,0,$i,1,2000)));
    }
    $today = getdate();
    for ($i=$today['year']; $i < $today['year']+10; $i++) {
    $expires_year[] = array('id' => strftime('%y',mktime(0,0,0,1,1,$i)), 'text' => strftime('%Y',mktime(0,0,0,1,1,$i)));
    }
    $selection = array('id' => $this->code,
    'module' => $this->title,
    'fields' => array());
    return $selection;

    }

    function pre_confirmation_check() {

    return false;
    }

    function confirmation() {

    $confirmation = array ('title' => $this->description);
    return $confirmation;
    }

    function process_button() {

    global $order,$order_total_modules,$currencies;
    $temp=mysql_query("select value from currencies where code='INR'")or die(mysql_error());
    $currency_value=mysql_fetch_array($temp);
    $products_ordered = '';
    for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
    $products_ordered .= $order->products[$i]['qty'] . ' x ' . $order->products[$i]['name'] . ' (' . $order->products[$i]['model'] . ') = ' .
    $currencies->display_price($order->products[$i]['final_price'], $order->products[$i]['tax'], $order->products[$i]['qty']) . $products_ordered_attributes . "\n";
    }
    $products_ordered .= "\n";
    $order_totals = $order_total_modules->process();
    for ($i=0, $n=sizeof($order_totals); $i<$n; $i++) {
    $products_ordered .= strip_tags($order_totals[$i]['title']) . ' ' . strip_tags($order_totals[$i]['text']) . "\n";
    }
    $amount = $order->info['total'];
    $reference_no = date('YmdHis');
    $return_url = zen_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL');
    $description = $reference_no;
    $params = array(
    'channel' => "0",
    //'securityToken' => $_SESSION['securityToken'],
    'account_id' => MODULE_PAYMENT_EBS_ACCOUNTID,
    'mode' => MODULE_PAYMENT_EBS_TESTMODE,
    'page_id' => MODULE_PAYMENT_EBS_PAGEID,
    'currency' => 'INR',
    'reference_no' => $reference_no,
    'amount' => $amount,
    'description' => $description,
    'name'=> $order->customer['firstname'] . ' ' . $order->customer['lastname'],
    'address' => $order->customer['street_address'],
    'city' => $order->customer['city'],
    'state' => $order->customer['state'],
    'postal_code' => $order->customer['postcode'],
    'country' => $order->customer['country']['iso_code_3'],
    'email' => $order->customer['email_address'],
    'phone' => $order->customer['telephone'],
    'ship_name' => $order->delivery['firstname'] . ' ' . $order->delivery['lastname'],
    'ship_address' => $order->delivery['street_address'],
    'ship_city' => $order->delivery['city'],
    'ship_state' => $order->delivery['state'],
    'ship_postal_code' => $order->delivery['postcode'],
    'ship_country' => $order->delivery['country']['iso_code_3'],
    'ship_phone' => $order->customer['telephone'],
    'return_url' => $return_url
    );

    $hashData = MODULE_PAYMENT_EBS_SECRET_KEY;
    $hashType = MODULE_PAYMENT_EBS_HASH;
    ksort($params);
    foreach ($params as $key => $value){
    if (strlen($value) > 0) {
    $hashData .= '|'.$value;
    //echo "the key is " . $key. "and the value is " . $value."<br/ >";
    }

    }
    //echo $hashData . "<br />";
    if (strlen($hashData) > 0) {
    if($hashType == "SHA512")
    $hashValue = strtoupper(hash('SHA512',$hashData));
    if($hashType == "SHA1")
    $hashValue = strtoupper(sha1($hashData));
    }
    $secureHash = $hashValue;

    //echo "<br /> secure hash is" . $secureHash;

    $process_button_string = zen_draw_hidden_field('channel', $params['channel']).
    //echo $process_button_string;
    zen_draw_hidden_field('account_id', $params['account_id']) .
    zen_draw_hidden_field('amount', $params['amount']).
    zen_draw_hidden_field('description', $params['description']).
    zen_draw_hidden_field('reference_no', $params['reference_no']) .
    zen_draw_hidden_field('name', $params['name']) .
    zen_draw_hidden_field('currency', $params['currency']) .
    zen_draw_hidden_field('page_id', $params['page_id']) .
    zen_draw_hidden_field('address', $params['address']) .
    zen_draw_hidden_field('city', $params['city']) .
    zen_draw_hidden_field('state', $params['state']) .
    zen_draw_hidden_field('postal_code', $params['postal_code']) .
    zen_draw_hidden_field('country', $params['country']) .
    zen_draw_hidden_field('email', $params['email']) .
    zen_draw_hidden_field('phone', $params['phone']) .
    zen_draw_hidden_field('ship_name', $params['ship_name']).
    zen_draw_hidden_field('ship_address', $params['ship_address']) .
    zen_draw_hidden_field('ship_city', $params['ship_city']) .
    zen_draw_hidden_field('ship_state', $params['ship_state']) .
    zen_draw_hidden_field('ship_postal_code', $params['ship_postal_code']) .
    zen_draw_hidden_field('ship_country', $params['ship_country']) .
    zen_draw_hidden_field('ship_phone', $params['ship_phone']) .
    zen_draw_hidden_field('mode', $params['mode']) .
    zen_draw_hidden_field('secure_hash', $secureHash) .
    zen_draw_hidden_field('return_url', $params['return_url']);
    return $process_button_string;
    }

    function before_process() {

    $secret_key = MODULE_PAYMENT_EBS_SECRET_KEY;
    $response = $_REQUEST;
    $secureHash = $response['SecureHash'];
    $params = $secret_key;
    unset($response['main_page']);
    unset($response['SecureHash']);
    $hashType = MODULE_PAYMENT_EBS_HASH;
    ksort($response);
    foreach ($response as $key => $value){
    if (strlen($value) > 0) {
    $params .= '|'.$value;
    }
    }
    if (strlen($params) > 0) {
    if($hashType == "SHA512")
    $hashValue = strtoupper(hash('SHA512',$params));
    if($hashType == "SHA1")
    $hashValue = strtoupper(sha1($params));
    }
    $hashValid = ($hashValue == $secureHash) ? true : false;
    print_r("$hashValue");
    if (!isset($response['ResponseCode']) || !is_numeric($response['ResponseCode']) || $response['ResponseCode'] != '0' || (!$hashValid)) {
    zen_redirect(zen_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message=' . urlencode(MODULE_PAYMENT_EBS_TEXT_ERROR_MESSAGE), 'SSL', true, false));
    }

    }

    function after_process() {

    return false;

    }

    function get_error() {
    $error = array('title' => MODULE_PAYMENT_EBS_TEXT_ERROR,
    'error' => stripslashes(urldecode($_GET['error'])));
    return $error;
    }

    function check() {
    global $db;
    if (!isset($this->_check)) {
    $check_query = $db->Execute("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_EBS_STATUS'");
    $this->_check = $check_query->RecordCount();
    }
    return $this->_check;
    }

    function install() {

    global $db;

    $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values
    ('Enable EBS Payment Module', 'MODULE_PAYMENT_EBS_STATUS', 'True', 'Do you want to accept EBS payments?', '6', '0', 'zen_cfg_select_option(array(\'True\', \'False\'), ', now())");

    $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values
    ('Merchant User ID', 'MODULE_PAYMENT_EBS_ACCOUNTID', '5', 'Your Merchant Account ID of EBS', '', '0', now())");

    $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values
    ('Secret key', 'MODULE_PAYMENT_EBS_SECRET_KEY', '', 'Your secret key of EBS', '6', '0', now())");

    $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values
    ('Test Mode', 'MODULE_PAYMENT_EBS_TESTMODE', 'TEST', 'Test mode used for the EBS', '6', '0', 'zen_cfg_select_option(array(\'TEST\', \'LIVE\'), ', now())");

    $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values
    ('Sort order of display', 'MODULE_PAYMENT_EBS_SORT_ORDER', '0', 'Sort order of display. Lowest is displayed first.', '6', '2', now())");

    $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values
    ('Hash Type', 'MODULE_PAYMENT_EBS_HASH', 'SHA512', 'Hash Type Algorithm', '6', '0', 'zen_cfg_select_option(array(\'SHA512\', \'SHA1\'), ', now())");

    $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values
    ('Page Id', 'MODULE_PAYMENT_EBS_PAGEID', '', 'Template Page Id', '6', '0', now())");

    }

    function remove() {

    global $db;
    $db->Execute("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");
    }

    function keys() {

    return array('MODULE_PAYMENT_EBS_STATUS', 'MODULE_PAYMENT_EBS_ACCOUNTID', 'MODULE_PAYMENT_EBS_SECRET_KEY', 'MODULE_PAYMENT_EBS_TESTMODE', 'MODULE_PAYMENT_EBS_HASH', 'MODULE_PAYMENT_EBS_PAGEID', 'MODULE_PAYMENT_EBS_SORT_ORDER');

    }

    }
    ?>
    Attached Images Attached Images  

  2. #2
    Join Date
    Aug 2005
    Location
    Arizona
    Posts
    27,761
    Plugin Contributions
    9

    Default Re: Response page from ebs payment gateway showing just a number

    Your image shows that the transaction "Failed"
    Zen-Venom Get Bitten

  3. #3
    Join Date
    Dec 2015
    Location
    Hyderabad
    Posts
    5
    Plugin Contributions
    0

    Default Re: Response page from ebs payment gateway showing just a number

    hi,

    thanks for quick reply. the page shows error as i have set it to get method. but why is my zen cart not displaying it properly. it just shows a random number.

    even if the transaction is successfull then same result. it doesnot take me to checkout successfull page.

    am i doing something wrong? sorry i am just a novice zencart programmer.

    regards
    madhuresh shah

  4. #4
    Join Date
    Dec 2015
    Location
    Hyderabad
    Posts
    5
    Plugin Contributions
    0

    Default Re: Response page from ebs payment gateway showing just a number

    Dear All,

    i need your help. The update is that the EBS payment integration is completed and i am getting orders. However the return url mentioned as per EBS INTEGRATION KIT is not correct. It does not redirect to checkout success page if payment is successful.

    IF the payment is failure due to wrong details the response page does not print any failure message. I think i need two things.

    1) Find out the exact variable where the CHECKOUT SUCCESS PAGE IS STORE SO AS TO REDIRECT THE PAGE THERE IF TRANSACTION IS SUCCESSFUL.

    2) Figure a part where i can enter the code to determine if the transaction is success or not.


    CAN YOU OR ANYONE HELP IN DETERMINING WHERE WILL I GET THE PATH FOR CHECKOUT SUCCESS PAGE.

    Regards
    madhuresh shah

 

 

Similar Threads

  1. Response page from ebs payment gateway showing just a number
    By shahimadhur in forum Addon Payment Modules
    Replies: 1
    Last Post: 12 Dec 2015, 09:57 PM
  2. ebs.in payment gateway issue
    By wowemall in forum Addon Payment Modules
    Replies: 4
    Last Post: 1 Nov 2012, 11:14 AM
  3. ebs payment gateway problem
    By nagrgk in forum Addon Payment Modules
    Replies: 0
    Last Post: 14 Apr 2010, 07:34 AM
  4. EBS Payment Gateway Module
    By biju in forum Built-in Shipping and Payment Modules
    Replies: 1
    Last Post: 13 Apr 2009, 11:42 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
disjunctive-egg
Zen-Cart, Internet Selling Services, Klamath Falls, OR