WabboCMS IPN Currency Change

Results 1 to 3 of 3
  1. #1
    hi JackHoll is offline
    MemberRank
    Mar 2013 Join Date
    UKLocation
    469Posts

    WabboCMS IPN Currency Change

    How do I change the currency from Dollars to Pounds in WabboCMS's IPN?

    Heres the paypal.php and paypal.class.php if it helps:

    PayPal.php
    Spoiler:
    Code:
    <?php
    
    
    
    
    
    
        define('IN_INDEX', 1);    
    
    
        require_once '../core.php';
    
    
            
    
    
        require_once('paypal.class.php');  // include the class file
    
    
        
    
    
        $p = new paypal_class; 
    
    
        $p->paypal_url = 'https://www.paypal.com/cgi-bin/webscr';
    
    
                    
    
    
        $this_script = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
    
    
        
    
    
        if (empty($_GET['action'])) $_GET['action'] = 'process';  
    
    
        
    
    
        switch ($_GET['action']) {
    
    
            
    
    
           case 'process':
    
    
           
    
    
           if(!isset($_POST['name']))
    
    
           {
    
    
             echo '';
    
    
             die;  
    
    
           }   
    
    
           if(!isset($_POST['leafs']))
    
    
           {
    
    
             echo '';
    
    
             die;  
    
    
           }
    
    
           
    
    
            $swag = filter($_POST['name']);
    
    
            $dBox = filter($_POST['leafs']);
    
    
              
    
    
              $p->add_field('business', 'paypal@email.com');
    
    
              $p->add_field('return', 'http://hotel.net'); //The success URL
    
    
              $p->add_field('custom', $swag);
    
    
              $p->add_field('leafs', $dBox);
    
    
              $p->add_field('cancel_return', 'http://hotel.net'); // The "canceled" URL
    
    
              $p->add_field('notify_url', $this_script.'?action=ipn'); //The IPN URL, the URL pointing to THIS page.
    
    
              $p->add_field('item_number', $dBox);
    
    
              $p->add_field('item_name', 'Imagine Points');
    
    
              $p->add_field('amount', '$' . $dBox/10 . '');
    
    
        
    
    
              $p->submit_paypal_post();
    
    
              break;
    
    
              
    
    
              
    
    
           case 'ipn':
    
    
              
    
    
              if ($p->validate_ipn()) 
    
    
              { 
    
    
                  if($p->ipn_data['custom'] != "Memphris" || $p->ipn_data['custom'] != "YOLO123")
    
    
                  {
    
    
                    mysql_query("UPDATE users SET cms_currency = cms_currency + '".$p->ipn_data['item_number']."' WHERE username = '".$p->ipn_data['custom']."'");
    
    
                    mysql_query("INSERT INTO user_leafs (username, currency, type, amount) VALUES ('".$p->ipn_data['custom']."', '".$p->ipn_data['item_number']."', 'paypal', '".$p->ipn_data['amount']."')");
    
    
                }
    
    
              }
    
    
              break;
    
    
         }     
    
    
    
    
    
    
    ?>


    Paypal.class.php

    Spoiler:
    Code:
    <?php
    
    
    class paypal_class {
    
    
        
    
    
       var $last_error;                 // holds the last error encountered
    
    
       
    
    
       var $ipn_log;                    // bool: log IPN results to text file?
    
    
       
    
    
       var $ipn_log_file;               // filename of the IPN log
    
    
       var $ipn_response;               // holds the IPN response from paypal   
    
    
       var $ipn_data = array();         // array contains the POST values for IPN
    
    
       
    
    
       var $fields = array();           // array holds the fields to submit to paypal
    
    
    
    
    
    
       
    
    
       public function paypal_class() {
    
    
           
    
    
          // initialization constructor.  Called when class is created.
    
    
          
    
    
          $this->paypal_url = 'https://www.paypal.com/cgi-bin/webscr';
    
    
          
    
    
          $this->last_error = '';
    
    
          
    
    
          $this->ipn_log_file = '.ipn_results.log';
    
    
          $this->ipn_log = true; 
    
    
          $this->ipn_response = '';
    
    
          
    
    
          // populate $fields array with a few default values.  See the paypal
    
    
          // documentation for a list of fields and their data types. These defaul
    
    
          // values can be overwritten by the calling script.
    
    
    
    
    
    
          $this->add_field('rm','2');           // Return method = POST
    
    
          $this->add_field('cmd','_xclick'); 
    
    
          
    
    
       }
    
    
       
    
    
       public function add_field($field, $value) {
    
    
          
    
    
          $this->fields["$field"] = $value;
    
    
       }
    
    
    
    
    
    
       public function submit_paypal_post() {
    
    
    ?>
    
    
            <!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>Imagine: Paypal</title>
    
    
                    <link rel="stylesheet" href="http://wabbo.me/Files/Default/css/joy.css" type="text/css">
    
    
                    <style type="text/css">
    
    
                        #content{position:absolute;top:50%;left:50%;width:502px;height:150px;margin-top:-75px;margin-left:-200px;background:white;border:2px white solid;border-radius:3px;}
    
    
                        #content_box{width:484px;height:132px;border:1px #999 solid;border-radius:3px;padding:8px;}
    
    
                        .logo{float:left;cursor:pointer;}
    
    
                        #content_text{font-family:Arial;font-size:12px;text-align:left;padding:0 15px;}
    
    
                    </style>
    
    
                </head>
    
    
                <body>
    
    
                    <div id="content">
    
    
                        <center>
    
    
                      <form method="post" name="paypal_form" action="<?php echo $this->paypal_url; ?>">
    
    
                         <?php
    
    
                            foreach ($this->fields as $name => $value) {
    
    
                                 echo "<input type=\"hidden\" name=\"$name\" value=\"$value\"/>\n";
    
    
                            }  
    
    
                         ?>
    
    
                      </form>
    
    
                            <div id="content_box">
    
    
                                <a class="logo"></a>
    
    
                                <hr style="margin-top: 51px;margin-bottom:15px;"/>
    
    
                                <div id="content_text">
    
    
                                    <p>
    
    
                                        <center>
    
    
                                  Please be patient as you will be redirected to Paypal to complete your purchase. 
    
    
                                  Post a article on the Forum if you need any support.<br><br>
    
    
                                  If you would like to go back to Imagine, please <a href="http://imaginehotel.net">click here</a>.
    
    
                               </center>
    
    
                                    </p>
    
    
                                </div>
    
    
                            </div>
    
    
                        </center>
    
    
                    </div>
    
    
                <script type="text/javascript">
    
    
                   window.onload = document.forms["paypal_form"].submit();
    
    
                </script>   
    
    
                </body>
    
    
            </html>
    
    
         
    
    
    <?php
    
    
        die; 
    
    
       }
    
    
       
    
    
       public function validate_ipn() {
    
    
    
    
    
    
          $url_parsed=parse_url($this->paypal_url);        
    
    
    
    
    
    
     
    
    
          $post_string = '';    
    
    
          foreach ($_POST as $field=>$value) { 
    
    
             $this->ipn_data["$field"] = $value;
    
    
             $post_string .= $field.'='.urlencode(stripslashes($value)).'&'; 
    
    
          }
    
    
          $post_string.="cmd=_notify-validate"; // append ipn command
    
    
    
    
    
    
          $fp = fsockopen ('ssl://www.paypal.com', 443, $errno, $errstr, 30); 
    
    
          if(!$fp) {
    
    
              
    
    
             $this->last_error = "fsockopen error no. $errnum: $errstr";
    
    
             $this->log_ipn_results(false);       
    
    
             return false;
    
    
             
    
    
          } else { 
    
    
     
    
    
             // Post the data back to paypal
    
    
             fputs($fp, "POST $url_parsed[path] HTTP/1.1\r\n"); 
    
    
             fputs($fp, "Host: $url_parsed[host]\r\n"); 
    
    
             fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n"); 
    
    
             fputs($fp, "Content-length: ".strlen($post_string)."\r\n"); 
    
    
             fputs($fp, "Connection: close\r\n\r\n"); 
    
    
             fputs($fp, $post_string . "\r\n\r\n"); 
    
    
    
    
    
    
             while(!feof($fp)) { 
    
    
                $this->ipn_response .= fgets($fp, 1024); 
    
    
             } 
    
    
    
    
    
    
             fclose($fp); // close connection
    
    
    
    
    
    
          }
    
    
          
    
    
          if (eregi("VERIFIED",$this->ipn_response)) {
    
    
      
    
    
             // Valid IPN transaction.
    
    
             $this->log_ipn_results(true);
    
    
             return true;       
    
    
             
    
    
          } else {
    
    
      
    
    
             $this->last_error = 'IPN Validation Failed!';
    
    
             $this->log_ipn_results(false);   
    
    
             return false;
    
    
             
    
    
          }
    
    
          
    
    
       }
    
    
       
    
    
       public function log_ipn_results($success) {
    
    
           
    
    
          if (!$this->ipn_log) return;
    
    
          
    
    
          // Timestamp
    
    
          $text = '['.date('m/d/Y g:i A').'] - '; 
    
    
          
    
    
          // Success or failure being logged?
    
    
          if ($success) $text .= "SUCCESS!\n";
    
    
          else $text .= 'FAIL: '.$this->last_error."\n";
    
    
          
    
    
          // Log the POST variables
    
    
          $text .= "IPN POST Vars from Paypal:\n";
    
    
          foreach ($this->ipn_data as $key=>$value) {
    
    
             $text .= "$key=$value, ";
    
    
          }
    
    
     
    
    
          // Log the response from the paypal server
    
    
          $text .= "\nIPN Response from Paypal Server:\n ".$this->ipn_response;
    
    
          
    
    
          // Write to log
    
    
          $fp=fopen($this->ipn_log_file,'a');
    
    
          fwrite($fp, $text . "\n\n"); 
    
    
    
    
    
    
          fclose($fp);
    
    
       }
    
    
    
    
    
    
       public function dump_fields() {
    
    
     
    
    
    
    
    
    
          
    
    
          echo "<h3>paypal_class->dump_fields() Output:</h3>";
    
    
          echo "<table width=\"95%\" border=\"1\" cellpadding=\"2\" cellspacing=\"0\">
    
    
                <tr>
    
    
                   <td bgcolor=\"black\"><b><font color=\"white\">Field Name</font></b></td>
    
    
                   <td bgcolor=\"black\"><b><font color=\"white\">Value</font></b></td>
    
    
                </tr>"; 
    
    
          
    
    
          ksort($this->fields);
    
    
          foreach ($this->fields as $key => $value) {
    
    
             echo "<tr><td>$key</td><td>".urldecode($value)."&nbsp;</td></tr>";
    
    
          }
    
    
     
    
    
          echo "</table><br>"; 
    
    
       }
    
    
    }


  2. #2
    Member Nicki9 is offline
    MemberRank
    Jul 2007 Join Date
    NorwayLocation
    63Posts

    Re: WabboCMS IPN Currency Change

    Do you mean when they pay? That should be changed via. the PayPal button generator. Can't find any valuta change in the PHP...

  3. #3
    hi JackHoll is offline
    MemberRank
    Mar 2013 Join Date
    UKLocation
    469Posts

    Re: WabboCMS IPN Currency Change

    Quote Originally Posted by Nicki9 View Post
    Do you mean when they pay? That should be changed via. the PayPal button generator. Can't find any valuta change in the PHP...
    This is the PayPal form on my website:

    Spoiler:
    Code:
    <form method="post" action="%www%/Files/paypal.php" name="paypal">
    									<div class="input_div">
    										<label>%hotel_name% Username</label><br>
    										<input class="input_form" name="name" type="text" value="%user_name%" /><br>
    									</div>
    									<div class="input_div">
    										<label class="float_left">Choose a Package</label>
    										<script type="text/javascript">
    											function previewPP(el)
    											{
    												document.getElementById('pal_price').innerHTML = 'Price: £' + el/10 + '.00';
    											}
    											function previewPG(el)
    											{
    												if(el == "1") {
    													var price = "50";
    												}		
    												if(el == "2") {
    													var price = "100";
    												}	
    												if(el == "3") {
    													var price = "150";
    												}
    												if(el == "4") {
    													var price = "200";
    												}
    												if(el == "5") {
    													var price = "250";
    												}
    												if(el == "6") {
    													var price = "500";
    												}
    												document.getElementById('gol_price').innerHTML = 'Price: £' + price/10 + '.00';
    											}
    										</script>
    										<select class="input_form" name="leafs" onkeypress="previewPP(this.value);" onchange="previewPP(this.value);">
    											<option value="50" selected>50 Leafs</option>
    											<option value="100">100 Leafs</option>
    											<option value="150">150 Leafs</option>
    											<option value="200">200 Leafs</option>
    											<option value="250">250 Leafs</option>
    											<option value="500">500 Leafs</option>
    										</select>
    									</div><br>
    									<div class="button grey" id="pal_price" style="float:left;">Price: £5.00</div>
    									<button name="submit" type="submit" name="buy" class="button green">Pay by Paypal</button>
    								</form><br clear="all" />



Advertisement