php
  • api
  • soap
  • 2013-08-06 5 views 6 likes 
    6

    "null 값일 수 없습니다. 매개 변수 이름 : 입력"그러나 "입력"이라는 이름의 매개 변수가 없습니다.PHP SOAP 클라이언트 오류

    나는 코드를 변경하고 그걸 가지고 놀아 보려고 노력했지만, 나는 여기에 실종되었다는 것을 간단하게 생각한다. (몇 년 동안 SOAP을 사용하지 않았다.)

    <?php 
    
    $xmlData = '<LoanRequest><VendorId>20</VendorId> 
    <SubVendorId>0</SubVendorId> 
    <Tier>Dynamic</Tier> 
    <FirstName>TestFname</FirstName> 
    <LastName>TestLname</LastName> 
    <DateOfBirth>1979-03-09</DateOfBirth> 
    <Title>Mr</Title> 
    <Postcode>SO164LN</Postcode> 
    <HouseNumber>98</HouseNumber> 
    <Street>Test Street</Street> 
    <Town>Test Town</Town> 
    <County>Test County</County> 
    <HomeOwner>False</HomeOwner> 
    <HomePhone>02300000000</HomePhone> 
    <WorkPhone>02000000000</WorkPhone> 
    <MobilePhone>0799123321</MobilePhone> 
    <Email>[email protected]</Email> 
    <IncomeSource>5</IncomeSource> 
    <EmployerName>PDB Test</EmployerName> 
    <TimeWithEmployer>48</TimeWithEmployer> 
    <PaidByDirectDeposit>1</PaidByDirectDeposit> 
    <NetMonthlyIncome>1700</NetMonthlyIncome> 
    <PayFrequency>3</PayFrequency> 
    <NextPayDay>2013-05-31</NextPayDay> 
    <PaydayAfterNext>2013-06-07</PaydayAfterNext> 
    <DebitCard>VD</DebitCard> 
    <BankAccountNumber>12345678</BankAccountNumber> 
    <BankSortCode>9987655</BankSortCode> 
    <NIN></NIN> 
    <LoanAmount>500</LoanAmount> 
    <IPAddress>127.0.0.1</IPAddress> 
    <Consent>1</Consent> 
    <TimeAtAddressYears>2</TimeAtAddressYears> 
    <TimeAtAddressMonths>3</TimeAtAddressMonths> 
    <UserAgent>Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)</UserAgent> 
    <LoanPurpose>Car</LoanPurpose> 
    <Pricequote>10</Pricequote> 
    <HousingExpenditure>100</HousingExpenditure> 
    <CreditExpenditure>150</CreditExpenditure> 
    <OtherExpenditure>220</OtherExpenditure></LoanRequest>'; 
    
    $url = 'http://www.pdbuk.co.uk/API/loan.asmx?wsdl'; 
    $options["location"] = $url; 
    $options['trace'] = 1; 
    
    $client = new SoapClient($url, $options); 
    $result = $client->SendRequest($xmlData); 
    var_dump($result); 
    ?> 
    

    내가 뭘 잘못하고 있니? 감사!

    답변

    4

    전달해야하는 XML 데이터는 문자열 (WSDL 기반)이 아닌 배열이어야합니다. 이렇게하면 작동합니다 :

    $result = $client->SendRequest(array('inpXml' => $xmlData)); 
    
    +1

    (facepalm) 완벽하게 작동합니다. 카페인 부족 ... 추측! – Ignas

    관련 문제