php 如何透过ups API进行预约付运

yrdbyhpb  于 2023-01-16  发布在  PHP
关注(0)|答案(1)|浏览(148)

我在php的转售平台上工作,我需要与它整合起来。
我们有卖家和买家,所以当有东西卖出去的时候,卖家需要通过ups寄来。
我可以通过发送以下请求来放置装运请求。

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.ups.com/XMLSchema/XOLTWS/Common/v1.0" xmlns:ns2="http://www.ups.com/XMLSchema/XOLTWS/Ship/v1.0" xmlns:ns3="http://www.ups.com/XMLSchema/XOLTWS/UPSS/v1.0">
   <SOAP-ENV:Header>
      <ns3:UPSSecurity>
         <ns3:UsernameToken>
            <ns3:Username></ns3:Username>
            <ns3:Password></ns3:Password>
         </ns3:UsernameToken>
         <ns3:ServiceAccessToken>
            <ns3:AccessLicenseNumber></ns3:AccessLicenseNumber>
         </ns3:ServiceAccessToken>
      </ns3:UPSSecurity>
   </SOAP-ENV:Header>
   <SOAP-ENV:Body>
      <ns2:ShipmentRequest>
         <ns1:Request>
            <ns1:RequestOption>nonvalidate</ns1:RequestOption>
         </ns1:Request>
         <ns2:Shipment>
            <ns2:Shipper>
               <ns2:Name>**************</ns2:Name>
               <ns2:AttentionName>**************</ns2:AttentionName>
               <ns2:Phone>
                  <ns2:Number>**********</ns2:Number>
               </ns2:Phone>
               <ns2:ShipperNumber>*****</ns2:ShipperNumber>
               <ns2:Address>
                  <ns2:AddressLine>*****</ns2:AddressLine>
                  <ns2:City>*****</ns2:City>
                  <ns2:StateProvinceCode>*****</ns2:StateProvinceCode>
                  <ns2:PostalCode>*****</ns2:PostalCode>
                  <ns2:CountryCode>*****</ns2:CountryCode>
               </ns2:Address>
            </ns2:Shipper>
            <ns2:ShipTo>
               <ns2:Name>*****</ns2:Name>
               <ns2:AttentionName>*****</ns2:AttentionName>
               <ns2:Phone>
                  <ns2:Number>*****</ns2:Number>
               </ns2:Phone>
               <ns2:Address>
                  <ns2:AddressLine>*****</ns2:AddressLine>
                  <ns2:City>*****</ns2:City>
                  <ns2:StateProvinceCode>*****</ns2:StateProvinceCode>
                  <ns2:PostalCode>*****</ns2:PostalCode>
                  <ns2:CountryCode>*****</ns2:CountryCode>
                  <ns2:ResidentialAddressIndicator />
               </ns2:Address>
            </ns2:ShipTo>
            <ns2:ShipFrom>
               <ns2:Name>*****</ns2:Name>
               <ns2:AttentionName>*****</ns2:AttentionName>
               <ns2:Phone>
                  <ns2:Number>*****</ns2:Number>
               </ns2:Phone>
               <ns2:Address>
                  <ns2:AddressLine>*****</ns2:AddressLine>
                  <ns2:City>*****</ns2:City>
                  <ns2:StateProvinceCode>*****</ns2:StateProvinceCode>
                  <ns2:PostalCode>*****</ns2:PostalCode>
                  <ns2:CountryCode>*****</ns2:CountryCode>
               </ns2:Address>
            </ns2:ShipFrom>
            <ns2:PaymentInformation>
               <ns2:ShipmentCharge>
                  <ns2:Type>01</ns2:Type>
                  <ns2:BillShipper>
                     <ns2:AccountNumber>*****</ns2:AccountNumber>
                  </ns2:BillShipper>
               </ns2:ShipmentCharge>
            </ns2:PaymentInformation>
            <ns2:Service>
               <ns2:Code>65</ns2:Code>
            </ns2:Service>
            <ns2:Package>
               <ns2:Description />
               <ns2:Packaging>
                  <ns2:Code>02</ns2:Code>
               </ns2:Packaging>
               <ns2:Dimensions>
                  <ns2:UnitOfMeasurement>
                     <ns2:Code>CM</ns2:Code>
                  </ns2:UnitOfMeasurement>
                  <ns2:Length>12</ns2:Length>
                  <ns2:Width>10</ns2:Width>
                  <ns2:Height>6</ns2:Height>
               </ns2:Dimensions>
               <ns2:PackageWeight>
                  <ns2:UnitOfMeasurement>
                     <ns2:Code>KGS</ns2:Code>
                  </ns2:UnitOfMeasurement>
                  <ns2:Weight>1</ns2:Weight>
               </ns2:PackageWeight>
            </ns2:Package>
         </ns2:Shipment>
      </ns2:ShipmentRequest>
   </SOAP-ENV:Body>

它返回标签,但我想将其安排在将来的日期。

ef1yzkbh

ef1yzkbh1#

我从来没有用过UPS自己的货运API,我觉得它有点过时。我用过Postmaster,我想你会发现它有更好的文档记录,更容易集成。它们也与UPS集成,并有一个易于使用的PHP客户端库。
https://www.postmaster.io/
据我所知,你不能创建一个发货请求与一个未来的调度日期,它的船舶。你必须创建一个cron作业和调度该作业,以启动发货请求在您的未来日期。你可以了解更多关于PHP cron作业:http://code.tutsplus.com/tutorials/managing-cron-jobs-with-php--net-19428

相关问题