+ Reply to Thread
Results 1 to 2 of 2

Thread: PHP examples

  1. #1
    Peter Bowen is offline Junior Member
    Join Date
    Nov 2008
    Posts
    15

    Default PHP examples

    These are working for me, feel free to use them at your own risk
    PHP Code:
    class MSSoapClient extends SoapClient {
        private 
    $namespace;
        function 
    __doRequest($request$location$action$version) {
            

            
    $request preg_replace('/<ns1:(\w+)/''<$1 xmlns="'.$this->namespace.'"'$request1);
            
    $request preg_replace('/<ns1:(\w+)/''<$1'$request);
            
    $request str_replace(array('/ns1:''xmlns:ns1="'.$this->namespace.'"'), array('/'''), $request);
            
            
    // parent call
            
    return parent::__doRequest($request$location$action$version);
        }
        function 
    setNamespace($sNamespace)
        {
            
    $this->namespace=$sNamespace;
        }
        

    To make a new customer - I'm only you can extend the function to add other details to the record.
    PHP Code:
    function newKashflowCustomer($soapClient,$idAccount,$name,$address,$town,$postcode,$country,$email)
    {
        
    //returns customer id if ok else 0
        
        
    $today date("Y-m-d",mktime());
        
        
    $customerArray = array(
            
    "CustomerID"=>"",
            
    "Code"=>"",
            
    "Name"=>"$name",
            
    "Contact"=>"",
            
    "Telephone"=>"",
            
    "Mobile"=>"",
            
    "Fax"=>"",
            
    "Email"=>"$email",
            
    "Address1"=>"$address",
            
    "Address2"=>"",
            
    "Address3"=>"$town",
            
    "Address4"=>"$country",
            
    "Postcode"=>"$postcode",
            
    "Website"=>"",
            
    "EC"=>"0",
            
    "Notes"=>"",
            
    "Source"=>"",
            
    "Discount"=>"0",
            
    "ShowDiscount"=>"0",
            
    "PaymentTerms"=>"0",
            
    "ExtraText1"=>"1",
            
    "ExtraText2"=>"1",
            
    "CheckBox1"=>"1",
            
    "CheckBox2"=>"1",
            
    "Created"=>"$today",
            
    "Updated"=>"$today");
        
        
    $args = array ("UserName"=>"your username here""Password"=>"your password here","custr"=>$customerArray);
        
    $oResponse $soapClient->InsertCustomer($args);
        
    //handle any errors
        
    if($oResponse->Status != "OK")
        {
            echo 
    $oResponse->StatusDetail;
            
    $return 0;

        }
        else
        {
            
    $id $oResponse->InsertCustomerResult;
            
            
    $return $id;
            
        }
        return 
    $return;

    No more slow paying clients >>www.getting-paid.com

  2. #2
    ecofinn is offline Junior Member
    Join Date
    Dec 2009
    Posts
    4

    Default

    Hi Peter.

    Firstly thanks, the code above was really useful. The MSSoapClient extension of the SoapClient class got it working for me, after a little trial and error.

    However, I would really like to know why it is working.
    I understand that it sets the namespace, but what exactly is happening when you are reformatting the $request variable with the preg_replace and str_replace?

    Any further explanation from anyone who understands this would be most helpful.

    Many thanks.

    Finn.

+ Reply to Thread

Posting Permissions

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