www.webdeveloper.com
Results 1 to 3 of 3

Thread: Problem with fields in payment order processing

  1. #1
    Join Date
    Jan 2014
    Posts
    7

    Problem with fields in payment order processing

    Hi.

    I am trying to implement a form to process payments in my online shop.

    Everything seems to work fine but for an error in the "total" field.

    I have tried diverse solutions with no result.

    "Total" is "Importe" (It is in Spanish, sorry).

    The coding in the form page:

    Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
    <title>Credit Card - Payment Form</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
    <meta content="MSHTML 6.00.6000.16481" name="GENERATOR"/>
    
    
    <script type="text/javascript">
    <!--
    function aceptar(){
    /*	var a,b,c;
    	a = document.formulariotpv.Num_operacion.value;
    	b = document.formulariotpv.Importe.value;
    
    
    
    		c = "comercio.php?Num_operacion=";
    		c = c + a + "&Importe=" + b;
    //	alert(c);
    	document.formulariotpv.redirect.value = c;
    
    //	alert(document.formulario.redirect.value);
    */
    
    	document.formulariotpv.submit();
    }
    function Aleatorio()
    	{
        var numero = "" + Math.random();
    	if(numero[1] == ".")
    		{
    		numero = numero.substring(1,numero.length);
    		}
    	numero = numero.replace (".", "");
    	while(numero[0] == "0")
    		{
    		numero = numero.substring(1,numero.length);
    		}
    	return(numero)	
    	}
    
    function MM_swapImgRestore() { //v3.0
      var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
    }
    
    function MM_preloadImages() { //v3.0
      var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
        var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
        if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
    }
    
    function MM_findObj(n, d) { //v4.01
      var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
        d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
      if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
      for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
      if(!x && d.getElementById) x=d.getElementById(n); return x;
    }
    
    function MM_swapImage() { //v3.0
      var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
       if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
    }
    -->
    </script>
    
    </head>
    <body>
    <div id="contenido"> 
    
      <div id="cuatro">
    
        <div id="form">
          <form name="formulario" action="http://cgi.thewebsite.com/FormMail.pl" method="post">
            <input type="hidden" value="968" name="Importe"/> 
            <input type="hidden" name="redirect"/> 
            <input type="hidden" value="tienda@thewebsite.com" name="recipient"/> 
            <input type="hidden" value="Purchase Attempt" name="subject"/> 
          <h3>opcion<input type="radio" name="Service Option" value="Opcion" onclick="document.formulario.Importe.value=968;"/></h3>
      
            <div id="fzaq"><p>Processing Operation Code</p><input name="Num_operacion"/></div>
            <div id="controls">
              <div id="fza"><input onclick="Javascript:aceptar()" type="button" value="SUBMIT" name="Send"/></div>
              <div id="fzb"><input type="reset" class="Button" value="ERASE"/></div>
            </div>
          </form>
          <form name="formulariotpv" action="comercio.php" method=post target=_blank">
            <input type="hidden" name="Num_operacion"/> 
            <input type="hidden" name="Importe"/> 
          </form>
        </div>
      </div>
    <script type="text/javascript">
    
    var a = Aleatorio();
    document.formulariotpv.Num_operacion.value = a;
    
    </script>
    </div>
    </body>
    </html>
    
    I would appreciate some comment.
    Thus, it contains the javascript that generates a random number for "Operation Number" ("Num_operacion") and a series of fields with the payment options for each product in the shop.

    In this case, just one for the example.

    <input type="radio" name="Service Option" value="Opcion" onclick="document.formulario.Importe.value=968;"/>

    The value to process: 968 (9,68 euros).

    This page gets and processes the data to comercio.php, which is exactly this:

    Code:
    <html> 
    <head> 
    <title>Example with  sha-1 firm</title> 
    
    <script language=javascript>
    function lanzar()
    {
    document.forms[0].submit();
    }
    </script>
    </head> 
      <body> 
    <br>
    <br>
    
    <font face="Verdana" size="3" color="#0f0084">
    <center><b>
    Operation in process. <br>
    Sending data to bank.<br>
    
    
    <br><br><br>
    Please wait a moment...
    </center>
    <?php
    //
    $Num_operacion=$_POST["Num_operacion"];
    $Importe=$_POST["Importe"];
    
    //Shop information
    $Clave = "xxxxxxxxxxxxxx";
    $MerchantID = "xxxxxxxxxxxxxx";
    $AcquirerBIN = "xxxxxxxxxxxxxx";
    $TerminalID = "xxxxxxxxxxxxxx";
    $Referencia = "";
    $Tipomoneda = "978";
    $Exponente = "2";
    //
    $URL_OK = "http://www.ceca.es";
    $URL_NOK = "http://www.ceca.es";
    
    $string = $Clave.$MerchantID.$AcquirerBIN.$TerminalID.$Num_operacion.$Importe.$Tipomoneda.$Exponente."SHA1".$URL_OK.$URL_NOK;
    $resultado = sha1($string);
    /*
    echo 'CADENA '+$string;
    echo '<br>';
    echo 'FIRMA '+$resultado;
    */		
    ?>
    <br> 
      <form action="https://pgw.ceca.es/cgi-bin/tpv" METHOD="POST" ENCTYPE="application/x-www-form-urlencoded">
        <input name="MerchantID" type=hidden value=<?php echo $MerchantID ?>>
        <input name="AcquirerBIN" type=hidden value=<?php echo $AcquirerBIN ?>>
        <input name="TerminalID" type=hidden value=<?php echo $TerminalID ?>>
        <input name="Num_operacion" type=hidden value=<?php echo $Num_operacion ?>>
        <input name="Importe" type=hidden value=<?php echo $Importe ?>>
        <input name="TipoMoneda" type=hidden value=<?php echo $Tipomoneda ?>>
        <input name="Exponente" type=hidden value=<?php echo $Exponente ?>>
        <input name="URL_OK" type=hidden value=<?php echo $URL_OK ?>>
        <input name="URL_NOK" type=hidden value=<?php echo $URL_NOK ?>>
        <input name="Firma" type=hidden value=<?php echo $resultado ?>>
        <input name="Idioma" type=hidden value=1>
        <input name="Pago_soportado" type=hidden value=SSL>
        <input name="Descripcion" type=hidden value="">
        <input name="Cifrado" type=hidden value="SHA1">
    <script language=javascript>
    lanzar();
    </script>
      </form> 
      </body> 
    </html>
    This coding, as you see, send the data to https://pgw.ceca.es/cgi-bin/tpv to process the payment to the bank.

    I have changed the data for security, but they are ok:

    $Clave = "xxxxxxxxxxxxxx";
    $MerchantID = "xxxxxxxxxxxxxx";
    $AcquirerBIN = "xxxxxxxxxxxxxx";
    $TerminalID = "xxxxxxxxxxxxxx";

    For some reason, the first page does not process the value ("Importe").

    Or perhaps comercio.php does not receive or process them properly.

    I am not sure.

    In any case, I am unable to get the total value ("Importe") processed:

    (document.formulario.Importe.value)

    Thanks very much for any comment on this.

  2. #2
    Join Date
    May 2006
    Location
    Somewhere behind your screen
    Posts
    1,716
    your 'submit' button sends to comercio.php the second form (see your script below w/o the commented part)

    Code:
    function aceptar(){
    document.formulariotpv.submit();
    }
    both forms have the same fields with name="Importe", but the second form which is sent by 'submit' has hidden Importe field w/o any value. if you change your code, for example, to

    Code:
    <form name="formulariotpv" action="comercio.php" method="post" target="_blank">
            <input type="hidden" name="Num_operacion" /> 
            <input type="hidden" name="Importe" value="test" /> 
          </form>
    then your comercio.php will get the value of this Importe
    signature under construction

  3. #3
    Join Date
    Jan 2014
    Posts
    7
    Solved!!

    Thanks.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center

"

"

X vBulletin 4.2.2 Debug Information

  • Page Generation 0.35794 seconds
  • Memory Usage 2,880KB
  • Queries Executed 15 (?)
More Information
Template Usage (33):
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_global_above_footer
  • (1)ad_global_below_navbar
  • (1)ad_global_header1
  • (1)ad_global_header2
  • (1)ad_navbar_below
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)ad_thread_first_post_content
  • (1)ad_thread_last_post_content
  • (4)bbcode_code
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)headinclude_bottom
  • (3)memberaction_dropdown
  • (1)navbar
  • (4)navbar_link
  • (1)navbar_moderation
  • (1)navbar_noticebit
  • (1)navbar_tabs
  • (2)option
  • (3)postbit
  • (3)postbit_onlinestatus
  • (3)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available (6):
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files (26):
  • ./showthread.php
  • ./global.php
  • ./includes/class_bootstrap.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/functions_navigation.php
  • ./includes/class_friendly_url.php
  • ./includes/class_hook.php
  • ./includes/class_bootstrap_framework.php
  • ./vb/vb.php
  • ./vb/phrase.php
  • ./includes/functions_facebook.php
  • ./includes/functions_calendar.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_notice.php
  • ./packages/vbattach/attach.php
  • ./vb/types.php
  • ./vb/cache.php
  • ./vb/cache/db.php
  • ./vb/cache/observer/db.php
  • ./vb/cache/observer.php 

Hooks Called (72):
  • init_startup
  • friendlyurl_resolve_class
  • init_startup_session_setup_start
  • database_pre_fetch_array
  • database_post_fetch_array
  • init_startup_session_setup_complete
  • global_bootstrap_init_start
  • global_bootstrap_init_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • load_show_variables
  • load_forum_show_variables
  • global_state_check
  • global_bootstrap_complete
  • global_start
  • style_fetch
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • strip_bbcode
  • friendlyurl_clean_fragment
  • friendlyurl_geturl
  • forumjump
  • cache_templates
  • cache_templates_process
  • template_register_var
  • template_render_output
  • fetch_template_start
  • fetch_template_complete
  • parse_templates
  • fetch_musername
  • notices_check_start
  • notices_noticebit
  • process_templates_complete
  • friendlyurl_redirect_canonical
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • memberaction_dropdown
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • build_navigation_data
  • build_navigation_array
  • check_navigation_permission
  • process_navigation_links_start
  • process_navigation_links_complete
  • set_navigation_menu_element
  • build_navigation_menudata
  • build_navigation_listdata
  • build_navigation_list
  • set_navigation_tab_main
  • set_navigation_tab_fallback
  • navigation_tab_complete
  • fb_like_button
  • showthread_complete
  • page_templates