Soap Service Parameters
Posted: Mon Sep 03, 2007 6:49 am
feyd | Please use
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]
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>
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]