|
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('info@example.com') |
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('test@example.com'); |
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 = 'shipper@example.com'; |
| 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 = 'recipient@example.com'; |
| 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 = 'recipient@example.com'; |
| 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