我正在尝试在PHP中创建SOAP请求。我对此很陌生,并且很挣扎。我正在使用的 Web 服务将车辆的 VIN 作为输入,并发回有关该特定车辆的详细信息。输入:1ZVHT88S375260112
,作为回报,您将收到有关该VIN所属的2007年福特野马的详细信息。
我创建了一个简单的输入栏和表单来输入 VIN。这将输入到包含 PHP SOAP 请求的页面中。我还用我的 WSDL 链接创建了一个 SOAP 信封。我省略了我的登录凭据(用户名和密码/秘密(。
如何获取 VIN 输入和信封并使用 PHP 中的 SoapClient 创建 SOAP 请求?任何意见或帮助将不胜感激!
简单的 HTML 输入/表单:
<!DOCTYPE html>
<html>
<head>
<title>VIN Decoder API Test</title>
<style type="text/css">
input {width: 700px;height:50px;display: block;margin-left: auto;margin-right: auto;margin-top: 200px;font-size:36px;font-family: sans-serif;text-align: center;}
button {display: block;margin-left: auto;margin-right: auto;}
.display1 {display: flex;align-items: center;justify-content: center;}
.button1 {
background-color: rgba(30, 31, 35);
border: none;
color: rgba(215, 214, 219);
padding: 10px 50px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 28px;
cursor: pointer;
font-family: sans-serif;
}
</style>
</head>
<body>
<form action="request.php" method="post">
<input type="text" id="VIN" placeholder="Enter VIN" name="VIN" maxlength="100"/>
<br>
<div class="display1">
<button id="submit_btn" class="button1">Submit</button>
</div>
</form>
<br>
<br>
</body>
</html>
肥皂信封:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:description7b.services.chrome.com">
<soapenv:Header/>
<soapenv:Body>
<urn:VehicleDescriptionRequest>
<urn:accountInfo number="" secret="" country="US" language="en" behalfOf="?"/>
<urn:vin>$VIN</urn:vin>
</urn:VehicleDescriptionRequest>
</soapenv:Body>
</soapenv:Envelope>
如果你的肥皂信封本身在一个名为 envelope.txt 的文件中,你可以在你的 php 页面中执行此操作:
$soapenv = file_get_contents('/path/to/envelope.txt');
$prepared_envelope = str_replace("$VIN", $VIN, $soapenv);
这会将信封加载到变量中,然后将 var 替换为 var 的值。 有几种方法可以做到这一点,但这是最容易解释的。