|
1 | 1 | <?php
|
2 |
| - |
3 | 2 | require_once 'credentials.php';
|
4 | 3 | require_once 'bootstrap.php';
|
5 | 4 |
|
6 |
| -use FedEx\ShipService; |
| 5 | +use FedEx\ShipService\Request; |
7 | 6 | use FedEx\ShipService\ComplexType;
|
8 | 7 | use FedEx\ShipService\SimpleType;
|
9 | 8 |
|
10 |
| -$userCredential = new ComplexType\WebAuthenticationCredential(); |
11 |
| -$userCredential |
12 |
| - ->setKey(FEDEX_KEY) |
13 |
| - ->setPassword(FEDEX_PASSWORD); |
14 |
| - |
15 |
| -$webAuthenticationDetail = new ComplexType\WebAuthenticationDetail(); |
16 |
| -$webAuthenticationDetail->setUserCredential($userCredential); |
17 |
| - |
18 |
| -$clientDetail = new ComplexType\ClientDetail(); |
19 |
| -$clientDetail |
20 |
| - ->setAccountNumber(FEDEX_ACCOUNT_NUMBER) |
21 |
| - ->setMeterNumber(FEDEX_METER_NUMBER); |
22 |
| - |
23 |
| -$version = new ComplexType\VersionId(); |
24 |
| -$version |
25 |
| - ->setServiceId('ship') |
26 |
| - ->setMajor(12) |
27 |
| - ->setIntermediate(1) |
28 |
| - ->setMinor(0); |
29 |
| - |
30 |
| -$shipTimestamp = new DateTime(); |
31 |
| - |
32 |
| -$shipperAddress = new ComplexType\Address(); |
33 |
| -$shipperAddress |
34 |
| - ->setStreetLines(array( |
35 |
| - '1234 Main Street', |
36 |
| - 'STE 810' |
37 |
| - )) |
38 |
| - ->setCity('Anytown') |
39 |
| - ->setStateOrProvinceCode('NY') |
40 |
| - ->setPostalCode('12345') |
41 |
| - ->setCountryCode('US'); |
42 |
| - |
43 |
| -$shipperContact = new ComplexType\Contact(); |
44 |
| -$shipperContact |
45 |
| - ->setCompanyName('Company name') |
46 |
| - ->setPersonName('Person Name') |
47 |
| - -> setEMailAddress( '[email protected]') |
48 |
| - ->setPhoneNumber('1-123-123-1234'); |
49 |
| - |
50 |
| -$shipper = new ComplexType\Party(); |
51 |
| -$shipper |
52 |
| - ->setAccountNumber(FEDEX_ACCOUNT_NUMBER) |
53 |
| - ->setAddress($shipperAddress) |
54 |
| - ->setContact($shipperContact); |
55 |
| - |
56 |
| -$recipientContact = new ComplexType\Contact(); |
57 |
| -$recipientContact |
58 |
| - ->setPersonName('John Doe') |
59 |
| - -> setEMailAddress( '[email protected]'); |
60 |
| - |
61 |
| -$recipientAddress = new ComplexType\Address(); |
62 |
| -$recipientAddress |
63 |
| - ->setStreetLines(array('54321 1st Ave')) |
64 |
| - ->setCity('Anytown') |
65 |
| - ->setStateOrProvinceCode('NY') |
66 |
| - ->setPostalCode('12345') |
67 |
| - ->setCountryCode('US'); |
68 |
| - |
69 |
| -$recipient = new ComplexType\Party(); |
70 |
| -$recipient |
71 |
| - ->setContact($recipientContact) |
72 |
| - ->setAddress($recipientAddress); |
73 |
| - |
74 |
| -$labelSpecification = new ComplexType\LabelSpecification(); |
75 |
| -$labelSpecification |
76 |
| - ->setImageType(SimpleType\ShippingDocumentImageType::_PDF) |
77 |
| - ->setLabelFormatType(SimpleType\LabelFormatType::_COMMON2D) |
78 |
| - ->setLabelStockType(SimpleType\LabelStockType::_PAPER_4X6); |
79 |
| - |
80 |
| -$packageLineItem1 = new ComplexType\RequestedPackageLineItem(); |
81 |
| -$packageLineItem1 |
82 |
| - ->setSequenceNumber(1) |
83 |
| - ->setItemDescription('Product description') |
84 |
| - ->setDimensions(new ComplexType\Dimensions(array( |
85 |
| - 'Width' => 10, |
86 |
| - 'Height' => 10, |
87 |
| - 'Length' => 25, |
88 |
| - 'Units' => SimpleType\LinearUnits::_IN |
89 |
| - ))) |
90 |
| - ->setWeight(new ComplexType\Weight(array( |
91 |
| - 'Value' => 2, |
92 |
| - 'Units' => SimpleType\WeightUnits::_LB |
93 |
| - ))); |
94 |
| - |
95 |
| -$shippingChargesPayor = new ComplexType\Payor(); |
96 |
| -$shippingChargesPayor->setResponsibleParty($shipper); |
97 |
| - |
98 |
| - |
99 |
| -$shippingChargesPayment = new ComplexType\Payment(); |
100 |
| -$shippingChargesPayment |
101 |
| - ->setPaymentType(SimpleType\PaymentType::_SENDER) |
102 |
| - ->setPayor($shippingChargesPayor); |
103 |
| - |
104 |
| -$pendingShipmentDetail = new ComplexType\PendingShipmentDetail(); |
105 |
| -$pendingShipmentDetail |
106 |
| - ->setType(SimpleType\PendingShipmentType::_EMAIL) |
107 |
| - ->setExpirationDate('2012-11-01') |
108 |
| - ->setEmailLabelDetail(new ComplexType\EMailLabelDetail(array( |
109 |
| - 'NotificationEMailAddress' => 'test', |
110 |
| - 'NotificationMessage' => 'pending shipment notification message' |
111 |
| - ))); |
112 |
| - |
113 |
| - |
114 |
| -$specialServicesRequested = new ComplexType\ShipmentSpecialServicesRequested(); |
115 |
| -$specialServicesRequested |
116 |
| - ->setSpecialServiceTypes(array(SimpleType\ShipmentSpecialServiceType::_PENDING_SHIPMENT)) |
117 |
| - ->setPendingShipmentDetail($pendingShipmentDetail); |
118 |
| - |
119 |
| -$requestedShipment = new ComplexType\RequestedShipment(); |
120 |
| -$requestedShipment |
121 |
| - ->setDropoffType(SimpleType\DropoffType::_REGULAR_PICKUP) |
122 |
| - ->setShipTimestamp($shipTimestamp->format(DateTime::ISO8601)) |
123 |
| - ->setServiceType(SimpleType\ServiceType::_FEDEX_2_DAY) |
124 |
| - ->setPackagingType(SimpleType\PackagingType::_YOUR_PACKAGING) |
125 |
| - ->setShipper($shipper) |
126 |
| - ->setRecipient($recipient) |
127 |
| - ->setLabelSpecification($labelSpecification) |
128 |
| - ->setRateRequestTypes(array(SimpleType\RateRequestType::_ACCOUNT)) |
129 |
| - ->setPackageCount(1) |
130 |
| - ->setRequestedPackageLineItems(array( |
131 |
| - $packageLineItem1 |
132 |
| - )) |
133 |
| - ->setShippingChargesPayment($shippingChargesPayment) |
134 |
| - ->setSpecialServicesRequested($specialServicesRequested); |
135 |
| - |
136 |
| - |
137 |
| - |
138 |
| - |
| 9 | +$shipDate = new \DateTime('now +7 days'); |
| 10 | +$expirationDate = new \DateTime('now +14 days'); |
| 11 | + |
| 12 | +//package 1 |
| 13 | +$requestedPackageLineItem1 = new ComplexType\RequestedPackageLineItem(); |
| 14 | +$requestedPackageLineItem1->SequenceNumber = 1; |
| 15 | +$requestedPackageLineItem1->ItemDescription = 'Product description 1'; |
| 16 | +$requestedPackageLineItem1->Dimensions->Width = 10; |
| 17 | +$requestedPackageLineItem1->Dimensions->Height = 10; |
| 18 | +$requestedPackageLineItem1->Dimensions->Length = 15; |
| 19 | +$requestedPackageLineItem1->Dimensions->Units = SimpleType\LinearUnits::_IN; |
| 20 | +$requestedPackageLineItem1->Weight->Value = 2; |
| 21 | +$requestedPackageLineItem1->Weight->Units = SimpleType\WeightUnits::_LB; |
| 22 | + |
| 23 | +//package 2 |
| 24 | +$requestedPackageLineItem2 = new ComplexType\RequestedPackageLineItem(); |
| 25 | +$requestedPackageLineItem2->SequenceNumber = 1; |
| 26 | +$requestedPackageLineItem2->ItemDescription = 'Product description 2'; |
| 27 | +$requestedPackageLineItem2->Dimensions->Width = 5; |
| 28 | +$requestedPackageLineItem2->Dimensions->Height = 5; |
| 29 | +$requestedPackageLineItem2->Dimensions->Length = 10; |
| 30 | +$requestedPackageLineItem2->Dimensions->Units = SimpleType\LinearUnits::_IN; |
| 31 | +$requestedPackageLineItem2->Weight->Value = 1; |
| 32 | +$requestedPackageLineItem2->Weight->Units = SimpleType\WeightUnits::_LB; |
| 33 | + |
| 34 | +//create pending shipment request |
139 | 35 | $createPendingShipmentRequest = new ComplexType\CreatePendingShipmentRequest();
|
140 |
| -$createPendingShipmentRequest->setWebAuthenticationDetail($webAuthenticationDetail); |
141 |
| -$createPendingShipmentRequest->setClientDetail($clientDetail); |
142 |
| -$createPendingShipmentRequest->setVersion($version); |
143 |
| -$createPendingShipmentRequest->setRequestedShipment($requestedShipment); |
144 |
| - |
145 |
| - |
146 |
| -var_dump($createPendingShipmentRequest->toArray()); |
147 |
| - |
148 |
| -var_export($createPendingShipmentRequest->toArray()); |
149 |
| - |
150 |
| -$validateShipmentRequest = new ShipService\Request(); |
151 |
| -$validateShipmentRequest->getSoapClient()->__setLocation('https://ws.fedex.com:443/web-services/ship'); |
152 |
| -$response = $validateShipmentRequest->getCreatePendingShipmentReply($createPendingShipmentRequest); |
153 | 36 |
|
154 |
| -var_dump($response); |
| 37 | +//authentication detail |
| 38 | +$createPendingShipmentRequest->WebAuthenticationDetail->UserCredential->Key = FEDEX_KEY; |
| 39 | +$createPendingShipmentRequest->WebAuthenticationDetail->UserCredential->Password = FEDEX_PASSWORD; |
| 40 | + |
| 41 | +//client detail |
| 42 | +$createPendingShipmentRequest->ClientDetail->AccountNumber = FEDEX_ACCOUNT_NUMBER; |
| 43 | +$createPendingShipmentRequest->ClientDetail->MeterNumber = FEDEX_METER_NUMBER; |
| 44 | + |
| 45 | +//version |
| 46 | +$createPendingShipmentRequest->Version->ServiceId = 'ship'; |
| 47 | +$createPendingShipmentRequest->Version->Major = 12; |
| 48 | +$createPendingShipmentRequest->Version->Intermediate = 1; |
| 49 | +$createPendingShipmentRequest->Version->Minor = 0; |
| 50 | + |
| 51 | +//requested shipment |
| 52 | +$createPendingShipmentRequest->RequestedShipment->DropoffType = SimpleType\DropoffType::_REGULAR_PICKUP; |
| 53 | +$createPendingShipmentRequest->RequestedShipment->ShipTimestamp = $shipDate->format('c'); |
| 54 | +$createPendingShipmentRequest->RequestedShipment->ServiceType = SimpleType\ServiceType::_FEDEX_2_DAY; |
| 55 | +$createPendingShipmentRequest->RequestedShipment->PackagingType = SimpleType\PackagingType::_YOUR_PACKAGING; |
| 56 | +$createPendingShipmentRequest->RequestedShipment->LabelSpecification->ImageType = SimpleType\ShippingDocumentImageType::_PDF; |
| 57 | +$createPendingShipmentRequest->RequestedShipment->LabelSpecification->LabelFormatType = SimpleType\LabelFormatType::_COMMON2D; |
| 58 | +$createPendingShipmentRequest->RequestedShipment->LabelSpecification->LabelStockType = SimpleType\LabelStockType::_PAPER_4X6; |
| 59 | +$createPendingShipmentRequest->RequestedShipment->RateRequestTypes = [SimpleType\RateRequestType::_ACCOUNT]; |
| 60 | +$createPendingShipmentRequest->RequestedShipment->PackageCount = 1; |
| 61 | +$createPendingShipmentRequest->RequestedShipment->RequestedPackageLineItems = [$requestedPackageLineItem1, $requestedPackageLineItem2]; |
| 62 | + |
| 63 | +//requested shipment shipper |
| 64 | +$createPendingShipmentRequest->RequestedShipment->Shipper->AccountNumber = FEDEX_ACCOUNT_NUMBER; |
| 65 | +$createPendingShipmentRequest->RequestedShipment->Shipper->Address->StreetLines = ['1234 Main Street']; |
| 66 | +$createPendingShipmentRequest->RequestedShipment->Shipper->Address->City = 'Anytown'; |
| 67 | +$createPendingShipmentRequest->RequestedShipment->Shipper->Address->StateOrProvinceCode = 'NY'; |
| 68 | +$createPendingShipmentRequest->RequestedShipment->Shipper->Address->PostalCode = '12345'; |
| 69 | +$createPendingShipmentRequest->RequestedShipment->Shipper->Address->CountryCode = 'US'; |
| 70 | +$createPendingShipmentRequest->RequestedShipment->Shipper->Contact->CompanyName = 'Company Name'; |
| 71 | +$createPendingShipmentRequest->RequestedShipment->Shipper->Contact->PersonName = 'Person Name'; |
| 72 | +$createPendingShipmentRequest-> RequestedShipment-> Shipper-> Contact-> EMailAddress = '[email protected]'; |
| 73 | +$createPendingShipmentRequest->RequestedShipment->Shipper->Contact->PhoneNumber = '1-123-123-1234'; |
| 74 | + |
| 75 | +//requested shipment recipient |
| 76 | +$createPendingShipmentRequest->RequestedShipment->Recipient->Address->StreetLines = ['54321 1st Ave.']; |
| 77 | +$createPendingShipmentRequest->RequestedShipment->Recipient->Address->City = 'Anytown'; |
| 78 | +$createPendingShipmentRequest->RequestedShipment->Recipient->Address->StateOrProvinceCode = 'NY'; |
| 79 | +$createPendingShipmentRequest->RequestedShipment->Recipient->Address->PostalCode = '12345'; |
| 80 | +$createPendingShipmentRequest->RequestedShipment->Recipient->Address->CountryCode = 'US'; |
| 81 | +$createPendingShipmentRequest->RequestedShipment->Recipient->Contact->PersonName = 'John Doe'; |
| 82 | +$createPendingShipmentRequest-> RequestedShipment-> Recipient-> Contact-> EMailAddress = '[email protected]'; |
| 83 | +$createPendingShipmentRequest->RequestedShipment->Recipient->Contact->PhoneNumber = '1-321-321-4321'; |
| 84 | + |
| 85 | +//shipping charges payment |
| 86 | +$createPendingShipmentRequest->RequestedShipment->ShippingChargesPayment->PaymentType = SimpleType\PaymentType::_SENDER; |
| 87 | +$createPendingShipmentRequest->RequestedShipment->ShippingChargesPayment->Payor->ResponsibleParty = $createPendingShipmentRequest->RequestedShipment->Shipper; |
| 88 | + |
| 89 | +//special services requested |
| 90 | +$createPendingShipmentRequest->RequestedShipment->SpecialServicesRequested->SpecialServiceTypes = [SimpleType\ShipmentSpecialServiceType::_PENDING_SHIPMENT]; |
| 91 | +$createPendingShipmentRequest->RequestedShipment->SpecialServicesRequested->PendingShipmentDetail->Type = SimpleType\PendingShipmentType::_EMAIL; |
| 92 | +$createPendingShipmentRequest->RequestedShipment->SpecialServicesRequested->PendingShipmentDetail->ExpirationDate = $expirationDate->format('Y-m-d'); |
| 93 | +$createPendingShipmentRequest-> RequestedShipment-> SpecialServicesRequested-> PendingShipmentDetail-> EmailLabelDetail-> NotificationEMailAddress = '[email protected]'; |
| 94 | +$createPendingShipmentRequest->RequestedShipment->SpecialServicesRequested->PendingShipmentDetail->EmailLabelDetail->NotificationMessage = 'Pending shipment notification message.'; |
| 95 | + |
| 96 | +$shipServiceRequest = new Request(); |
| 97 | +$createPendingShipmentReply = $shipServiceRequest->getCreatePendingShipmentReply($createPendingShipmentRequest); |
| 98 | + |
| 99 | +var_dump($createPendingShipmentReply); |
0 commit comments