Платежный шлюз eWay - PullRequest
3 голосов
/ 17 мая 2011

Я пытаюсь реализовать повторяющийся веб-сервис из eway (Австралия). Как бы то ни было, я не мог заставить его работать.

Я продолжаю получать сообщения

"Элемент 'rebillCustomerCreate' в пространстве имен 'http://www.eway.com.au/gateway/rebill/manageRebill' имеет неполное содержимое. Список возможных ожидаемых элементов:" 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'=>"test@eway.com.au","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" => "test@eway.com",
    "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;
}
?>

Ответы [ 3 ]

4 голосов
/ 05 декабря 2013

То, что я пытался создать 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'=>"test@eway.com.au","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"=>"test@gamil.com",
                          "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 голосов
/ 27 марта 2013

2 года спустя, у меня была та же самая проблема!

Может быть кому-то пригодится:

$bodyoptions = array(
  "CreateRebillCustomer" => array(
    "customerTitle" => "Mr",
    ...
  )
);
0 голосов
/ 17 мая 2011

Я предлагаю вам использовать библиотеку и образец, предоставляемые eWay.

Перейти на страницу . Перейдите на вкладку «Исходный код». Загрузите исходный код PHP. Также есть инструкция.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...