Soap Service Parameters

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
User avatar
phpcoder
Forum Contributor
Posts: 158
Joined: Sat Nov 02, 2002 1:18 pm
Location: Manchester, UK

Soap Service Parameters

Post by phpcoder »

feyd | Please use

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]


HI,

I got following order form, I need to pass values to the soap server. There are few fileds with multiple values. How I can pass these values .

wsdl file

[syntax="xml"]
 <s:complexType name="OrderForm">
- <s:sequence>
  <s:element minOccurs="0" maxOccurs="1" name="OrderNumber" type="s:string" /> 
  <s:element minOccurs="0" maxOccurs="1" name="AccountNo" type="s:string" /> 
  <s:element minOccurs="1" maxOccurs="1" name="Store" type="s1:OrderFormStore" /> 
  <s:element minOccurs="0" maxOccurs="1" name="DeliveryName" type="s:string" /> 
  <s:element minOccurs="1" maxOccurs="1" name="DeliveryOption" type="s1:OrderFormDeliveryOption" /> 
  <s:element minOccurs="0" maxOccurs="1" name="DeliveryCharge" type="s:decimal" /> 
  <s:element minOccurs="0" maxOccurs="1" name="Address" type="s1:Address" /> 
  <s:element minOccurs="0" maxOccurs="unbounded" name="Item" type="s1:Item" /> 
  <s:element minOccurs="0" maxOccurs="1" name="CreditCardDetails" type="s1:CreditCardDetails" /> 
  <s:element minOccurs="0" maxOccurs="1" name="OrderLevelDiscount" type="s:decimal" /> 
  </s:sequence>
  </s:complexType>
- <s:simpleType name="OrderFormStore">
- <s:restriction base="s:string">
  <s:enumeration value="NoneSpecified" /> 
  <s:enumeration value="Star" /> 
  </s:restriction>
  </s:simpleType>
- <s:simpleType name="OrderFormDeliveryOption">
- <s:restriction base="s:string">
  <s:enumeration value="NextDay" /> 
  <s:enumeration value="Standard" /> 
  </s:restriction>
  </s:simpleType>
- <s:complexType name="Address">
- <s:sequence>
  <s:element minOccurs="0" maxOccurs="1" name="AddressLine1" type="s:string" /> 
  <s:element minOccurs="0" maxOccurs="1" name="AddressLine2" type="s:string" /> 
  <s:element minOccurs="0" maxOccurs="1" name="Town" type="s:string" /> 
  <s:element minOccurs="0" maxOccurs="1" name="County" type="s:string" /> 
  <s:element minOccurs="0" maxOccurs="1" name="Postcode" type="s:string" /> 
  <s:element minOccurs="0" maxOccurs="1" name="Country" type="s:string" /> 
  </s:sequence>
  </s:complexType>
- <s:complexType name="Item">
- <s:sequence>
  <s:element minOccurs="0" maxOccurs="1" name="Sku" type="s:string" /> 
  <s:element minOccurs="0" maxOccurs="1" name="Description" type="s:string" /> 
  <s:element minOccurs="1" maxOccurs="1" name="Quantity" type="s:int" /> 
  <s:element minOccurs="1" maxOccurs="1" name="Price" type="s:decimal" /> 
  <s:element minOccurs="0" maxOccurs="1" name="Discount" type="s:decimal" /> 
  <s:element minOccurs="1" maxOccurs="1" name="VatAmount" type="s:decimal" /> 
  <s:element minOccurs="1" maxOccurs="1" name="TotalAmountIncludingVat" type="s:decimal" /> 
  </s:sequence>
  </s:complexType>
- <s:complexType name="CreditCardDetails">
- <s:sequence>
  <s:element minOccurs="1" maxOccurs="1" name="LastFourDigits" type="s:int" /> 
  <s:element minOccurs="1" maxOccurs="1" name="CreditCardType" type="s1:CreditCardDetailsCreditCardType" /> 
  </s:sequence>
  </s:complexType>
- <s:simpleType name="CreditCardDetailsCreditCardType">
- <s:restriction base="s:string">
  <s:enumeration value="Visa" /> 
  <s:enumeration value="Master Card" /> 
  <s:enumeration value="Delta" /> 
  <s:enumeration value="Switch / UK Maestro" /> 
  <s:enumeration value="Visa Electron" /> 
  <s:enumeration value="Solo" /> 
  <s:enumeration value="Maestro" /> 
  <s:enumeration value="American Express" /> 
  </s:restriction>
  </s:simpleType>
Items like Address ,Item and credit card dont have normal variable type. Plz tell me how to pass these values. Right know I am using following php file

client.php[/syntax]

Code: Select all

<?php

class OrderForm
{
	public $OrderNumber;
	public $AccountNo;
	public $Store;
	public $DeliveryName;
	public $DeliveryOption;
	public $DeliveryCharge;
	public $Address;
	public $Item;
	public $CreditCardDetails;
	public $OrderLevelDiscount;
	
}

class PlaceOrder
{
	public $OrderForm;
}

$client = new SoapClient('http://www.macs-software.co.uk/starws/WMSOrderFulfilment.asmx?WSDL');
$pOrder = new OrderForm;
$pOrder->OrderNumber = '123456';
$pOrder->AccountNo='fahad123';
$pOrder->Store='Star';
$pOrder->DeliveryName='test';
$pOrder->DeliveryOption='NextDay';
$pOrder->DeliveryCharge=1.23;
$pOrder->Address='Salford';
$pOrder->Item='test123';
$pOrder->CreditCardDetails='visa';
$pOrder->OrderLevelDiscount=0.00;

$wrap = new PlaceOrder;
$wrap->OrderForm = $pOrder;
$res = $client->PlaceOrder($wrap);
var_dump($res);
?>

feyd | Please use

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]
Post Reply