2011-05-17 199 views
3

我试图从eway(澳大利亚)实施反复出现的web服务。我怎么都无法让它工作。eWay支付网关

我不断得到messeage

“元素命名空间‘http://www.eway.com.au/gateway/rebill/manageRebill’rebillCustomerCreate具有不完整的内容可能元素的列表预计:‘CustomerRef’。”

这是WSDL:https://www.eway.com.au/gateway/rebill/test/manageRebill_test.asmx?wsdl

我是新来的SOAP。试图在PHP中实现它。任何人都可以请指出我做错了什么?

这是我的PHP代码:

<?php 
$URL = "https://www.eway.com.au/gateway/rebill/test/manageRebill_test.asmx?wsdl"; 
$option = array("trace"=>true); 
$client = new SOAPClient($URL, $option); 
$functions = $client->__getFunctions(); 
$headeroptions =array('eWAYCustomerID'=>"87654321",'Username'=>"[email protected]","Password"=>"test"); 
$header = new SOAPHeader('http://www.eway.com.au/gateway/rebill/manageRebill', 'eWAYHeader',$headeroptions); 

$bodyoptions = array(
    "customerTitle" => "Mr", 
    "customerFirstName" => "firstname", 
    "customerLastName" => "lastname", 
    "customerAddress" => "address", 
    "customerSuburb" => "someniceplace", 
    "customerState" => "somenicestate", 
    "customerCompany" => "somecompany", 
    "customerPostCode" => "411026", 
    "customerCountry" => "australia", 
    "customerEmail" => "[email protected]", 
    "customerFax" => "123456", 
    "customerPhone1" => "123456", 
    "customerPhone2" => "123456", 
    "customerRef" => "abc123", 
    "customerJobDesc" => "Developer", 
    "customerComments" => "Make it work", 
    "customerURL" => "www.nicesite.com" 
); 

try{ 
    $response = $client->__soapCall("CreateRebillCustomer", $bodyoptions,NULL,$header,$outputHeader); 
    echo $client->__getLastRequest(); 
    //$response = $client->CreateRebillCustomer($bodyoptions); 
    var_dump($response); 
} catch(SOAPFault $e){ 
    print $e; 
} 
?> 
+0

会不会是所有的c需要像CustomerJobDesc一样大写,CustomerRef ect – 2011-05-17 09:26:06

+0

在WSDL中看起来并不像这样。 – Constantine 2011-05-17 09:28:53

回答

0

我建议你使用由EWAY提供的库和示例。

转到this页面。转到“源代码”选项卡。该,下载PHP源代码。也有指导。

+0

使用他们的文件工作...它会存储所有重要的信息,如计费周期和计费金额。我想更新或使用任何其他方法,您将不得不使用他们的Web服务,我似乎无法解决问题。 – Constantine 2011-05-17 11:33:28

0

2年后,我刚刚遇到了同样的问题!

可能是有用的人:

$bodyoptions = array(
    "CreateRebillCustomer" => array(
    "customerTitle" => "Mr", 
    ... 
) 
); 
4

我试图创建EWAY重复计费和客户, 希望这将有助于其他人新:)

<?php 
    $URL = "https://www.eway.com.au/gateway/rebill/test/manageRebill_test.asmx?wsdl"; 
    $option = array("trace"=>true); 
    $client = new SOAPClient($URL, $option); 
    $functions = $client->__getFunctions(); 
    $headeroptions =array('eWAYCustomerID'=>"87654321",'Username'=>"[email protected]","Password"=>"test123"); 
    $header = new SOAPHeader('http://www.eway.com.au/gateway/rebill/manageRebill', 'eWAYHeader',$headeroptions); 

    $bodyoptions = array(
        "CreateRebillCustomer" => array(
         "customerTitle" => "Mr",     
          "customerFirstName"=>"Muhammad", 
          "customerLastName"=>"Shahzad", 
          "customerAddress"=>"cust ome rAddress", 
          "customerSuburb"=>"customer Suburb", 
          "customerState"=>"ACT", 
          "customerCompany"=>"customer Company", 
          "customerPostCode"=>"2345", 
          "customerCountry"=>">Australia", 
          "customerEmail"=>"[email protected]", 
          "customerFax"=>"0298989898", 
          "customerPhone1"=>"0297979797", 
          "customerPhone2"=>"0297979797", 
          "customerRef"=>"Ref123", 
          "customerJobDesc"=>"customerJobDesc", 
          "customerComments"=>"customerComments",      
          "customerURL" => "http://www.acme.com.au" 
         ) 
        ); 

     try{ 
      $response = $client->__soapCall("CreateRebillCustomer", $bodyoptions,NULL,$header,$outputHeader); 
      //echo $client->__getLastRequest(); 
      //$response = $client->CreateRebillCustomer($bodyoptions); 
      //echo "<pre>";echo "<br/>"; 
      // print_r($response);   
       echo $result   = $response->CreateRebillCustomerResult->Result;echo "<br/>"; 
       echo $customerId  = $response->CreateRebillCustomerResult->RebillCustomerID;echo "<br/>"; 
       echo "<br/>"; 
      if($result=='Success' AND $customerId){ 
       echo 'Member Created at eWay Successfully!...<br/>'; 
       echo 'Creating Recurring Billing Cycle on eWay,Please wait......<br/>'; 
       //$UpdateRebillCustomer = CreateRebillEvent($customerId); 
       //print_r($UpdateRebillCustomer); 

      } 
      else{ 
       echo $ErrorSeverity = $response->CreateRebillCustomerResult->ErrorSeverity;echo "<br/>"; 
       echo $ErrorDetails = $response->CreateRebillCustomerResult->ErrorDetails;echo "<br/>"; 
      } 
     } 
     catch(SOAPFault $e){ 
      print $e; 
     } 

     if($customerId){ 


        $bodyoptions2 = array(
        "CreateRebillEvent " => array(
          "RebillCustomerID" => $customerId,     
          "RebillInvRef" => "Ref123", 
          "RebillInvDes"=>"description", 
          "RebillCCName"=>"Mr Andy Person", 
          "RebillCCNumber"=>"4444333322221111", 
          "RebillCCExpMonth"=>"12", 
          "RebillCCExpYear"=>"15", 
          "RebillInitAmt"=>"100", 
          "RebillInitDate"=>date('d/m/Y'), 
          "RebillRecurAmt"=>"200", 
          "RebillStartDate"=>date('d/m/Y'), 
          "RebillInterval"=>"31", 
          "RebillIntervalType"=>"1", 
          "RebillEndDate"=>"31/12/2013",      
         ) 
        ); 
      try{  
       $response = $client->__soapCall("CreateRebillEvent", $bodyoptions2,NULL,$header,$outputHeader); 
       //echo $client->__getLastRequest();   
       //print_r($response); 
       echo "<br/>"; 
        echo $result2  = $response->CreateRebillEventResult->Result;echo "<br/>"; 
        echo $RebillCustomerID = $response->CreateRebillEventResult->RebillCustomerID;echo "<br/>"; 
       if($result2=='Success'){ 
        echo 'Recurring Cycle Created Successfully at eWay!...<br/>'; 
        echo 'Member Id is ===>'.$RebillCustomerID; 
        //$UpdateRebillCustomer = CreateRebillEvent($customerId); 
        //print_r($UpdateRebillCustomer);       
       } 
       else{ 
        echo $ErrorSeverity = $response->CreateRebillEventResult->ErrorSeverity;echo "<br/>"; 
        echo $ErrorDetails = $response->CreateRebillEventResult->ErrorDetails;echo "<br/>"; 
       } 

      } 
     catch(SOAPFault $e){ 
      print $e; 
     } 

     } 

     ?> 
+0

这只是救了我的命!谢谢 ... – Adrian 2016-10-20 15:20:10