Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取联邦快递费率服务api中的错误_Php_Fedex - Fatal编程技术网

Php 获取联邦快递费率服务api中的错误

Php 获取联邦快递费率服务api中的错误,php,fedex,Php,Fedex,我在响应速率服务api时出错,但没有得到我缺少的东西 这是我的密码 $path_to_wsdl = Folder::realpath(dirname(__FILE__) . '/wsdl/RateService_v18.wsdl'); ini_set("soap.wsdl_cache_enabled", "0"); $client = new SoapClient($path_to_wsdl, array('trace' => 1, 'stream_cont

我在响应速率服务api时出错,但没有得到我缺少的东西

这是我的密码

$path_to_wsdl = Folder::realpath(dirname(__FILE__) . '/wsdl/RateService_v18.wsdl');
        ini_set("soap.wsdl_cache_enabled", "0");
        $client = new SoapClient($path_to_wsdl, array('trace' => 1, 'stream_context' => stream_context_create(array('ssl' => array('verify_peer' => false, 'verify_peer_name' => false)))));



        $request['WebAuthenticationDetail'] = array(
            'UserCredential' => array(
                'Key' => 'fedex key',
                'Password' => 'fedex password'
            )
        );
        $request['ClientDetail'] = array(
            'AccountNumber' => 'fedex account number',
            'MeterNumber' => 'fedex meter no.'
        );
        $request['TransactionDetail'] = array(
            'CustomerTransactionId' => ' *** Rate Request v18 using PHP ***'
        );
        $request['Version'] = array(
            'ServiceId' => 'crs',
            'Major' => '18',
            'Intermediate' => '0',
            'Minor' => '1'
        );
        $request['ReturnTransitAndCommit'] = true;
        $request['RequestedShipment']['DropoffType'] = 'REGULAR_PICKUP'; // valid values REGULAR_PICKUP, REQUEST_COURIER, ...
        $request['RequestedShipment']['ShipTimestamp'] = date('c');
        $request['RequestedShipment']['ServiceType'] = 'PRIORITY_OVERNIGHT'; // valid values STANDARD_OVERNIGHT, PRIORITY_OVERNIGHT, FEDEX_GROUND, ...
        $request['RequestedShipment']['PackagingType'] = 'YOUR_PACKAGING'; // valid values FEDEX_BOX, FEDEX_PAK, FEDEX_TUBE, YOUR_PACKAGING, ...
        $request['RequestedShipment']['Shipper'] = array('Address' => array(
                'StreetLines' => array('10 Fed Ex Pkwy'), // Origin details
                'City' => 'Memphis',
                'StateOrProvinceCode' => 'TN',
                'PostalCode' => '38115',
                'CountryCode' => 'US'));
        $request['RequestedShipment']['Recipient'] = array(
            'Address' => array(
                'StreetLines' => array('13450 Farmcrest Ct'), // Destination details
                'City' => 'Herndon',
                'StateOrProvinceCode' => 'VA',
                'PostalCode' => '20171',
                'CountryCode' => 'US'
            )
        );
        $request['RequestedShipment']['ShippingChargesPayment'] = array(
            'PaymentType' => 'SENDER',
            'Payor' => array(
                'AccountNumber' => 'fedex acc no.',
                'CountryCode' => 'US'
            )
        );
        $request['RequestedShipment']['RateRequestTypes'] = 'ACCOUNT';
        $request['RequestedShipment']['RateRequestTypes'] = 'LIST';
        $request['RequestedShipment']['PackageCount'] = '2';
        $request['RequestedShipment']['PackageDetail'] = 'INDIVIDUAL_PACKAGES';  //  Or PACKAGE_SUMMARY
        $request['RequestedShipment']['RequestedPackageLineItems'] = array(
            '0' => array(
                'Weight' => array(
                    'Value' => 2.0,
                    'Units' => 'LB'
                ),
                'Dimensions' => array(
                    'Length' => 10,
                    'Width' => 10,
                    'Height' => 3,
                    'Units' => 'IN'
                )
            ),
            '1' => array(
                'Weight' => array(
                    'Value' => 5.0,
                    'Units' => 'LB'
                ),
                'Dimensions' => array(
                    'Length' => 20,
                    'Width' => 20,
                    'Height' => 10,
                    'Units' => 'IN'
                )
            )
        );




        try {
            return $client->getRates($request);
        } catch (SoapFault $exception) {
            return $exception;
        }
这是我得到的错误异常

[faultstring] => Fault
    [faultcode] => SOAP-ENV:Server
    [detail] => stdClass Object
        (
            [cause] => UnrecoverableClientError
            [code] => SchemaError
            [desc] => validation failure for RateRequest Error:cvc-enumeration-valid: Value '1' is not facet-valid with respect to enumeration
        )
我被这句话困住了——“RateRequest错误验证失败:cvc枚举有效:值“1”对于枚举无效”。

最终得到了答案

替换RateService_v18.wsdl文件中下面给出的行

<xs:element name="Minor" type="xs:int" fixed="1" minOccurs="1">

在网上搜索错误消息真的有那么难吗?我的意思是,这个错误已经很明显了,但是如果你仍然不明白它的意思,那么第一次点击谷歌是有原因的。@burzum我不知道哪个字段是无效的
<xs:element name="Minor" type="xs:int" minOccurs="1">
$request['Version'] = array(
            'ServiceId' => 'crs',
            'Major' => '18',
            'Intermediate' => '0',
            'Minor' => '0'
        );