Reputation: 1954
I'm developing a site which connects with Eway. I trying to make a Rebill customer in Sandbox. But the some error in call.
<?php
$url = "https://www.eway.com.au/gateway/rebill/test/manageRebill_test.asmx";
$post_string = '<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<eWAYHeader xmlns="http://www.eway.com.au/gateway/rebill/manageRebill">
<eWAYCustomerID>9194****</eWAYCustomerID>
<Username>******@********d.com.sand</Username>
<Password>S******55</Password>
</eWAYHeader>
</soap:Header>
<soap:Body>
<CreateRebillCustomer xmlns="http://www.eway.com.au/gateway/rebill/manageRebill">
<customerTitle>Mr</customerTitle>
<customerFirstName>Achintha</customerFirstName>
<customerLastName>Samindika</customerLastName>
<customerAddress>SID Designs</customerAddress>
<customerSuburb>Colombo</customerSuburb>
<customerState>ACT<</customerState>
<customerCompany>SID Con</customerCompany>
<customerPostCode>2111</customerPostCode>
<customerCountry>Australia</customerCountry>
<customerEmail>a****@ymail.com</customerEmail>
<customerFax>0298989898</customerFax>
<customerPhone1>0298989558</customerPhone1>
<customerPhone2>0295489898</customerPhone2>
<customerRef>REF585</customerRef>
<customerJobDesc>Dev</customerJobDesc>
<customerComments>Please Ship ASASP</customerComments>
<customerURL>www.****.com</customerURL>
</CreateRebillCustomer>
</soap:Body>
</soap:Envelope>';
$header = "POST /gateway/rebill/test/manageRebill_test.asmx HTTP/1.1 \r\n";
$header .= "Host: www.eway.com.au \r\n";
$header .= "Content-Type: text/xml; charset=utf-8 \r\n";
$header .= "Content-Length: ".strlen($post_string)." \r\n";
//$header .= 'SOAPAction: "http://www.eway.com.au/gateway/rebill/manageRebill/CreateRebillCustomer"'. "\r\n";
$header .= "Connection: close \r\n\r\n";
$header .= $post_string;
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $header);
$data = curl_exec($ch);
$status = curl_getinfo($ch);
if(curl_errno($ch))
print curl_error($ch);
else{
curl_close($ch);
echo '<pre>';
print_r($data);
print_r($status);
echo '</pre>';
//echo '<div align="center"><h3>Thank you.</h3></div>';
}
?>
Upvotes: 0
Views: 997
Reputation: 26
Please use the following name spaces.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:man="https://www.eway.com.au/gateway/managedpayment">
<soapenv:Header>
<man:eWAYHeader>
<man:eWAYCustomerID></man:eWAYCustomerID>
<man:Username></man:Username>
<man:Password></man:Password>
</man:eWAYHeader>
</soapenv:Header>
<soapenv:Body>
<man:CreateCustomer>
<man:Title></man:Title>
<man:FirstName></man:FirstName>
<man:LastName></man:LastName>
<man:Address></man:Address>
<man:Suburb></man:Suburb>
<man:State></man:State>
<man:Company></man:Company>
<man:PostCode></man:PostCode>
<man:Country></man:Country>
<man:Email></man:Email>
<man:Fax></man:Fax>
<man:Phone></man:Phone>
<man:Mobile></man:Mobile>
<man:CustomerRef></man:CustomerRef>
<man:JobDesc></man:JobDesc>
<man:Comments></man:Comments>
<man:URL></man:URL>
<man:CCNumber></man:CCNumber>
<man:CCNameOnCard></man:CCNameOnCard>
<man:CCExpiryMonth></man:CCExpiryMonth>
<man:CCExpiryYear></man:CCExpiryYear>
</man:CreateCustomer>
</soapenv:Body>
</soapenv:Envelope>
Upvotes: 0
Reputation: 1954
I had a syntax error in
<customerState>ACT<</customerState>
My original code is worked when the this extra lesser than removed.
The working code.
<?php
$url = "https://www.eway.com.au/gateway/rebill/test/manageRebill_test.asmx";
$post_string = '<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<eWAYHeader xmlns="http://www.eway.com.au/gateway/rebill/manageRebill">
<eWAYCustomerID>9194****</eWAYCustomerID>
<Username>******@********d.com.sand</Username>
<Password>S******55</Password>
</eWAYHeader>
</soap:Header>
<soap:Body>
<CreateRebillCustomer xmlns="http://www.eway.com.au/gateway/rebill/manageRebill">
<customerTitle>Mr</customerTitle>
<customerFirstName>Achintha</customerFirstName>
<customerLastName>Samindika</customerLastName>
<customerAddress>SID Designs</customerAddress>
<customerSuburb>Colombo</customerSuburb>
<customerState>ACT</customerState>
<customerCompany>SID Con</customerCompany>
<customerPostCode>2111</customerPostCode>
<customerCountry>Australia</customerCountry>
<customerEmail>a****@ymail.com</customerEmail>
<customerFax>0298989898</customerFax>
<customerPhone1>0298989558</customerPhone1>
<customerPhone2>0295489898</customerPhone2>
<customerRef>REF585</customerRef>
<customerJobDesc>Dev</customerJobDesc>
<customerComments>Please Ship ASASP</customerComments>
<customerURL>www.****.com</customerURL>
</CreateRebillCustomer>
</soap:Body>
</soap:Envelope>';
$header = "POST /gateway/rebill/test/manageRebill_test.asmx HTTP/1.1 \r\n";
$header .= "Host: www.eway.com.au \r\n";
$header .= "Content-Type: text/xml; charset=utf-8 \r\n";
$header .= "Content-Length: ".strlen($post_string)." \r\n";
//$header .= 'SOAPAction: "http://www.eway.com.au/gateway/rebill/manageRebill/CreateRebillCustomer"'. "\r\n";
$header .= "Connection: close \r\n\r\n";
$header .= $post_string;
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $header);
$data = curl_exec($ch);
$status = curl_getinfo($ch);
if(curl_errno($ch))
print curl_error($ch);
else{
curl_close($ch);
echo '<pre>';
print_r($data);
print_r($status);
echo '</pre>';
//echo '<div align="center"><h3>Thank you.</h3></div>';
}
?>
Upvotes: 2
Reputation: 3763
This is working fine for me perfectly !
$data = array('salutation' => 'Mr', 'first_name' => 'Joe', 'last_name' => 'Bloggs', 'address' => 'Bloggs', 'city' => 'Capital City', 'state' => 'ACT', 'company' => 'Bloggs','postcode' => '2111', 'country' => 'Australia', 'email' => '[email protected]', 'phone' => '0297979797', 'fax' => '0298989898', 'cusRef' => 'Ref123', 'customerComments' => 'Please Ship ASASP', 'cusURL' => 'https://www.eway.com.au');
$xml = '<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:man="http://www.eway.com.au/gateway/rebill/manageRebill">
<soap:Header>
<eWAYHeader xmlns="http://www.eway.com.au/gateway/rebill/manageRebill">
<eWAYCustomerID>SandboxCustomerID</eWAYCustomerID>
<Username>Username</Username>
<Password>Password</Password>
</eWAYHeader>
</soap:Header>
<soap:Body>
<CreateRebillCustomer xmlns="http://www.eway.com.au/gateway/rebill/manageRebill">
<customerTitle>' . $data["salutation"] . '</customerTitle>
<customerFirstName>' . $data["first_name"] . '</customerFirstName>
<customerLastName>' . $data["last_name"] . '</customerLastName>
<customerAddress>' . $data["address"] . '</customerAddress>
<customerSuburb>' . $data["city"] . '</customerSuburb>
<customerState>' . $data["state"] . '</customerState>
<customerCompany>' . $data["company"] . '</customerCompany>
<customerPostCode>' . $data["postcode"] . '</customerPostCode>
<customerCountry>' . $data["country"] . '</customerCountry>
<customerEmail>' . $data["email"] . '</customerEmail>
<customerFax>' . $data["fax"] . '</customerFax>
<customerPhone1>' . $data["phone"] . '</customerPhone1>
<customerPhone2/>
<customerRef>' . $data["cusRef"] . '</customerRef>
<customerJobDesc/>
<customerComments>' . $data["customerComments"] . '</customerComments>
<customerURL>' . $data["cusURL"] . '</customerURL>
</CreateRebillCustomer>
</soap:Body>
</soap:Envelope>';
$ch = curl_init('https://www.eway.com.au/gateway/rebill/manageRebill.asmx');
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
curl_setopt($ch, CURLOPT_POSTFIELDS, "$xml");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
echo "<pre>";
print_r($output);
Upvotes: 0
Reputation: 6003
Can you try this. Modified some headers.
<?php
$url = 'https://www.eway.com.au/gateway/rebill/test/manageRebill_test.asmx';
$post_string = "<?xml version=\"1.0\" encoding=\"utf-8\"?>
<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">
<soap:Header>
<eWAYHeader xmlns=\"http://www.eway.com.au/gateway/rebill/manageRebill\">
<eWAYCustomerID>9194****</eWAYCustomerID>
<Username>******@********d.com.sand</Username>
<Password>S******55</Password>
</eWAYHeader>
</soap:Header>
<soap:Body>
<CreateRebillCustomer xmlns=\"http://www.eway.com.au/gateway/rebill/manageRebill\">
<customerTitle>Mr</customerTitle>
<customerFirstName>Achintha</customerFirstName>
<customerLastName>Samindika</customerLastName>
<customerAddress>SID Designs</customerAddress>
<customerSuburb>Colombo</customerSuburb>
<customerState>ACT<</customerState>
<customerCompany>SID Con</customerCompany>
<customerPostCode>2111</customerPostCode>
<customerCountry>Australia</customerCountry>
<customerEmail>a****@ymail.com</customerEmail>
<customerFax>0298989898</customerFax>
<customerPhone1>0298989558</customerPhone1>
<customerPhone2>0295489898</customerPhone2>
<customerRef>REF585</customerRef>
<customerJobDesc>Dev</customerJobDesc>
<customerComments>Please Ship ASASP</customerComments>
<customerURL>www.****.com</customerURL>
</CreateRebillCustomer>
</soap:Body>
</soap:Envelope>";
$headers = array(
"Content-Length: : " . strlen($post_string),
'Content-Type: application/soap+xml;charset=utf-8'
);
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $post_string );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers );
$data = curl_exec($ch);
$status = curl_getinfo($ch);
if(curl_errno($ch)) {
print curl_error($ch);
}else{
curl_close($ch);
echo '<pre>';
print_r($data);
print_r($status);
echo '</pre>';
//echo '<div align="center"><h3>Thank you.</h3></div>';
}
?>
Please replace your placeholders. Hope it works.
Upvotes: 0