Results 1 to 3 of 3
  1. #1
    Join Date
    Oct 2008
    Posts
    31
    Plugin Contributions
    0

    Default zipcash module

    Hi All,

    I want to add a zipcash payment module. It is basically a web interface where customer enters his mobile number and pays via SMS. Is there any tutorial to add new payment method? They need following info via hhtp post:

    mercode - Merchant Code provided by Zipcash
    amount - Transaction Amount in Rupees. A two digit paisa component can also be added if required.
    txcode – Transaction Reference Code generated by merchant (without any spaces)
    details – This parameter is used to described the transaction (eg. Movie Tickets, Air Tickets etc.)
    RU – Optional parameter – Return url
    Use the HTTP-POST method to post the data.

    How do I create a module for this type of payment?

    Regards,

    nnitin

  2. #2
    Join Date
    Oct 2008
    Posts
    31
    Plugin Contributions
    0

    Default Re: Please Help

    Hi All,

    Well I have figured out how to make this module and have developed some code for this payment method. I have cloned ccavenue module available in download section. However after making the payment and the confirmation from the payment gateway, I come back to my shop but, the transaction is not completed and the item remains in the shopping cart.

    What mistake am I making?

    If I am able to make this successful I would like to offer this as an adon module for zipcash.

    Regards,

    Nitin

  3. #3
    Join Date
    Oct 2008
    Posts
    31
    Plugin Contributions
    0

    Default Help with ZIPCASH payment gateway

    Hi All,

    I have cloned ccavenue payment module to suit ZIPCASH payment module.


    Sending data from Zencart to zipcash payment gateway works. When the user pays the amount and complestes the transaction it comes back to zencart with return url. However it can not update the order. The payment gateway sends to zencart following information to zencart

    txcode – Transaction Reference Code sent by merchant
    statuscode – Success code – 101 Failure code – 110
    ziptxncode - Zipcash transaction code
    amount

    I feel when it comes to "checkout_payment.php" the headers will process the info. I tried it but the order remains in the shopping cart.

    Where am I making a mistake?

    Here is the code:
    PHP Code:
    <?php


      
    class zipcash extends base{
        var 
    $code$title$description$enabled;

    // class constructor
        
    function zipcash() {
          
    $this->code 'zipcash';
          
    $this->title MODULE_PAYMENT_ZIPCASH_TEXT_TITLE;
          
    $this->description MODULE_PAYMENT_ZIPCASH_TEXT_DESCRIPTION;
          
    $this->sort_order MODULE_PAYMENT_ZIPCASH_SORT_ORDER;
          
    $this->enabled = ((MODULE_PAYMENT_ZIPCASH_STATUS == 'True') ? true false);

          if ((int)
    MODULE_PAYMENT_ZIPCASH_ORDER_STATUS_ID 0) {
            
    $this->order_status MODULE_PAYMENT_ZIPCASH_ORDER_STATUS_ID;
          }

          if (
    is_object($order)) $this->update_status();

    $this->form_action_url 'http://www.zipcash.in/PG2Test/PayByZipcash.aspx';
        }

    // class methods
        
    function update_status() {
         global 
    $order$db;

          if ( (
    $this->enabled == true) && ((int)MODULE_PAYMENT_ZIPCASH_ZONE 0) ) {
            
    $check_flag false;
            
    $check_query $db->Execute("select zone_id from " TABLE_ZONES_TO_GEO_ZONES " where geo_zone_id = '" MODULE_PAYMENT_ZIPCASH_ZONE "' and zone_country_id = '" $order->delivery['country']['id'] . "' order by zone_id");
            while (
    $check mysql_fetch_array($check_query)) {
              if (
    $check['zone_id'] < 1) {
                
    $check_flag true;
                break;
              } elseif (
    $check['zone_id'] == $order->delivery['zone_id']) {
                
    $check_flag true;
                break;
              }
            }

            if (
    $check_flag == false) {
              
    $this->enabled false;
            }
          }

    // disable the module if the order only contains virtual products
          
    if ($this->enabled == true) {
            if (
    $order->content_type == 'virtual') {
              
    $this->enabled false;
            }
          }
        }
        function 
    javascript_validation() {
          return 
    false;
        }

        function 
    selection() {
          return array(
    'id' => $this->code,
                       
    'module' => $this->title);
        }

        function 
    pre_confirmation_check() {
          return 
    false;
        }

        function 
    confirmation() {
      return 
    false;
      
        }

       function 
    process_button() {
        global 
    $order$customer_id$MerchantId$Amount$OrderId$Url$Checksum
            
    ;

      
    $MerchantId MODULE_PAYMENT_ZIPCASH_MERCHANT_ID;
      
    $Amount $order->info['total'];
      
    $OrderId $customer_id '-' date('Ymdhis');
      
    $Url zen_href_link(FILENAME_CHECKOUT_PROCESS,'','SSL',true,false);  
      
    $pattern='http://www\.';

        if(!(
    Eregi($pattern,$Url,$reg)))
            
    eregi_replace('http://'$pattern$Url);
        
    $str "$MerchantId|$OrderId|$Amount|$Url";  

        
    //Variables to be passed to ZIPCASH as a POST 
        
    $process_button_string zen_draw_hidden_field('mercode'$MerchantId) .
                          
    zen_draw_hidden_field('txcode',   $OrderId) .
                          
    zen_draw_hidden_field('amount'$Amount) .
                          
    zen_draw_hidden_field('details''Books') .
                          
    zen_draw_hidden_field('RU',$Url);                      
                               
          return 
    $process_button_string;
        }

     function 
    before_process() {
          global 
    $messageStack$order;
          if (!isset(
    $_POST['txcode']) || $_POST['txcode'] == '') {
            
    $messageStack->add_session('checkout_payment'MODULE_PAYMENT_ZIPCASH_ERROR'error');
            
    zen_redirect(zen_href_link(FILENAME_CHECKOUT_PAYMENT'''SSL'truefalse));
          }
          
    $_SESSION['txcode'] = $_POST['txcode'];
          
    $order->info['details'] .= sprintf(MODULE_PAYMENT_ZIPCASH_RECEIPT_NUMBER_TEXT$_SESSION['txcode']);
          return 
    $_SESSION['txcode'];
        }


        function 
    after_process() {
          return 
    false;
        }
        

        function 
    output_error() {
       global 
    $HTTP_GET_VARS;

       
    $output_error_string '<table border="0" cellspacing="0" cellpadding="0" width="100%">' "\n" .
                                 
    '  <tr>' "\n" .
                                 
    '    <td class="main">&nbsp;<font color="#FF0000"><b>' MODULE_PAYMENT_ZIPCASH_TEXT_ERROR '</b></font><br>&nbsp;' MODULE_PAYMENT_ZIPCASH_TEXT_ERROR_MESSAGE '&nbsp;</td>' "\n" .
                                 
    '  </tr>' "\n" .
                                 
    '</table>' "\n";

          return 
    $output_error_string;
        }
        
        

        function 
    check() {
         global 
    $db;
          if (!isset(
    $this->_check)) {
            
    $check_query $db->Execute("select configuration_value from " TABLE_CONFIGURATION " where configuration_key = 'MODULE_PAYMENT_ZIPCASH_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 ZIPCASH Module', 'MODULE_PAYMENT_ZIPCASH_STATUS', 'True', 'Do you want to accept ZIPCASH payments?', '6', '1', '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 Id', 'MODULE_PAYMENT_ZIPCASH_MERCHANT_ID', 'mercode', 'The Merchant Code to use for the ZIPCASH service', '6', '2', now())");

    $db->Execute("insert into " TABLE_CONFIGURATION " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('WorkingKey', 'MODULE_PAYMENT_ZIPCASH_WORKING_KEY', '', 'put in the 32 bit alphanumeric key.Please note that get this key ,login to your ZIPCASH merchant account and visit the \"Generate Working Key\" section at the \"Settings & Options\" page.', '6', '2', now())");
          
    $db->Execute("insert into " TABLE_CONFIGURATION " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('ZIPCASH Payment Zone', 'MODULE_PAYMENT_ZIPCASH_ZONE', '0', 'If a zone is selected, only enable this payment method for that zone.', '6', '2', 'zen_get_zone_class_title', 'zen_cfg_pull_down_zone_classes(', now())");
          
    $db->Execute("insert into " TABLE_CONFIGURATION " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('ZIPCASH Sort order of  display.', 'MODULE_PAYMENT_ZIPCASH_SORT_ORDER', '0', 'Sort order of ZIPCASH display. Lowest is displayed first.', '6', '0', now())");
          
    $db->Execute("insert into " TABLE_CONFIGURATION " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, use_function, date_added) values ('ZIPCASH Set Order Status', 'MODULE_PAYMENT_ZIPCASH_ORDER_STATUS_ID', '0', 'Set the status of orders made with this payment module to this value', '6', '0', 'zen_cfg_pull_down_order_statuses(', 'zen_get_order_status_name', now())");

        }

        function 
    remove() {
          
    $keys '';
          
    $keys_array $this->keys();
          for (
    $i=0$i<sizeof($keys_array); $i++) {
            
    $keys .= "'" $keys_array[$i] . "',";
          }
          
    $keys substr($keys0, -1);

          
    $db->Execute("delete from " TABLE_CONFIGURATION " where configuration_key in (" $keys ")");
        }

           function 
    keys() {
          return array(
    'MODULE_PAYMENT_ZIPCASH_STATUS''MODULE_PAYMENT_ZIPCASH_MERCHANT_ID','MODULE_PAYMENT_ZIPCASH_WORKING_KEY''MODULE_PAYMENT_ZIPCASH_ZONE','MODULE_PAYMENT_ZIPCASH_SORT_ORDER''MODULE_PAYMENT_ZIPCASH_ORDER_STATUS_ID' );
        }
      }
    ?>

 

 

Similar Threads

  1. Help: Mobile Payment gateway
    By nnitin in forum Built-in Shipping and Payment Modules
    Replies: 0
    Last Post: 14 Dec 2008, 07:04 AM
  2. Problem with payment gateway
    By jackdebian in forum Addon Payment Modules
    Replies: 6
    Last Post: 18 Feb 2008, 04:23 AM

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