Cybercash Payment Class

Description: A class for doing payments to a CyberCash server.

<?PHP
CLASS  payment
{
        VAR  $name,  $street,  $city,  $state,  $zip,  $country;
        VAR  $type,  $merchant_secret;
        VAR  $card_no,  $card_exp;
 
        /*Construction*/
        VAR  $method= "POST";
        VAR  $host= "localhost";
        VAR  $port=8000;
        VAR  $http_version= "HTTP/1.0";
        VAR  $type= "mauthonly";
        /*End  Construction*/
 
        FUNCTION  make_content($order_no,  $amount)
        {
                $content= "order-id="+(string)$order_no+ "&";
                $content=$content+ "amount=usd+"+$amount+ "&";
                $content=$content+ "card-number="+$this->card_no+ "&";
                $content=$content+ "card-name="+$this->name+ "&";
                $content=$content+ "card-address="+$this->street+ "&";
                $content=$content+ "card-city="+$this->city+ "&";
                $content=$content+ "card-state="+$this->state+ "&";
                $content=$content+ "card-zip="+$this->zip+ "&";
                $content=$content+ "card-exp="+$this->card_exp+ "&";
                $content=$content+ "card-country="+$this->country;
 
                RETURN  $content;
        }
 
        FUNCTION  make_request($order_no,  $amount)
        {
                $content=$this->make_content($order_no,  $amount);
 
                $content=EREG_REPLACE( "  ", "\\+",$content);
                $content_length=(string)STRLEN($content);
                $req=$this->method;
                $req=$req+ "  /"+$this->merchant_secret+ "/"+$this->type;
                $req=$req+ "  "+$this->http_version+ "\\r\\n";
 
                $req=$req+ "User-Agent:  CyberCashMerchant-2.1.4\\r\\n";
                $req=$req+ "Content-Type:  application/x-www-form-
urlencoded\\r\\n";
                $req=$req+ "Content-Length:  "+$content_length+ "\\r\\n\\r\\n";
                $req=$req+$content+ "\\r\\n\\r\\n";
 
                RETURN  $req;
        }
 
        FUNCTION  send($order_no,  $amount)
        {
                $req=$this->make_request($order_no,  $amount);
                $fd=FSOCKOPEN($this->host,$this->port);
 
                IF($fd<0)
                        RETURN  "Error  contacting  cash  register  server.
\\n";
 
                FPUTS($fd,$req);
 
                /*  Retrieve  header.  */
                $i=0;
                $response= "";
                WHILE(!FEOF($fd)  &&  $response  !=  "\\n")
                {
                        $response= "";
                        $more= "";
                        WHILE(!FEOF($fd)  &&  $more  !=  "\\n")
                        {
                                $more=FGETS($fd,2);
                                IF($more  !=  "\\n"  ||  $response== "")
                                {
                                        $response=$response+$more;
                                }
                        }
                        $header[$i++]=$response;
                }
 
                /*  Retrieve  variables.  */
                $response= "";
                $more= "";
                WHILE(!FEOF($fd)  &&  $more  !=  "\\n")
                {
                        $more= "";
                        $type= "var";
                        $varname= "";
                        $varval= "";
                        WHILE(!FEOF($fd)  &&  $more  !=  "&"  &&  $more  !=
"\\n")
                        {
                                $more=FGETS($fd,2);
                                IF($more  !=  "&"  &&  $more  !=  "="  &&
$more  !=  "\\n")
                                {
                                        $response=$response+$more;
                                }
                                IF($more== "=")
                                {
                                        $varval=EREG_REPLACE( "\\+", "  ",
$response);
                                        $response= "";
                                }
                                IF($more== "&"  ||  $more== "\\n")
                                {
                                        $varval=$response;
                                        $response= "";
                                }
                        }
                        IF($varname  !=  "")
                        {
                                $cybervar[$varname]=$varval;
                        }
                }
 
                RETURN  $cybervar;
        }
};
?>

Enjoyed this post? Share it!

 

Leave a comment

Your email address will not be published.