快速许可证管理器Web服务不接受请求

时间:2015-07-29 14:45:27

标签: php web-services soap

我想使用Quick License Manager SOAP网络服务来连接电子商务wordpress插件,以便用户购买许可证并在成功购买后显示。
所以现在,我&#39 ;我试图调用函数GetProductInfo来获取我使用QLM管理控制台创建的现有产品的信息。
我使用SoapClient php类,但当我尝试发出请求时,我得到了这样的响应:

  

验证请求时出错:输入不是有效的Base-64字符串,因为它包含非基本64个字符,两个以上的填充字符或填充字符中的非法字符。 。来电者:GetProductInfo

我不明白我的要求有什么问题,所以我需要帮助...... 这是我使用的代码:

<?php 
$url = "https://quicklicensemanager.com/****/qlm/qlmservice.asmx";
$wsdl = $url . "?WSDL";
$soapClient = new SoapClient($wsdl, array(
    "encoding" => "utf8",
    "trace"    => TRUE,
    "version"  => SOAP_1_1
));
$req = sprintf(
'<?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>
    <QlmSoapHeader xmlns="http://www.interactive-studios.net/qlmweb">
      <CultureName>%s</CultureName>
      <UtcOffset>%d</UtcOffset>
    </QlmSoapHeader>
  </soap:Header>
  <soap:Body>
    <GetProductInfo xmlns="http://www.interactive-studios.net/qlmweb">
      <eProductName>%s</eProductName>
      <productID>%d</productID>
      <major>%d</major>
      <minor>%d</minor>
    </GetProductInfo>
  </soap:Body>
</soap:Envelope>', "en_US", 0, "The IO plug-in: Student License", 4, 1, 0);
echo '<pre>';
print_r(htmlentities($req));
echo '</pre>';

$action = "http://www.interactive-studios.net/qlmweb/GetProductInfo";

$res = $soapClient->__doRequest($req, $url, $action, 1);

echo '<pre>';
print_r($res);
echo '</pre>';
echo "=======================================================";
echo '<pre>';
print_r(htmlentities($soapClient->__getLastRequest()));
echo '</pre>';
echo "=======================================================";
echo '<pre>';
print_r($soapClient->__getLastRequestHeaders());
echo '</pre>';

提前感谢您的帮助。

修改 现在我尝试更改字段productID,看起来它是错误的。所以它需要是一个base64字符串,所以我更新了我的代码:
    </soap:Envelope>', "en_US", 0, "The IO plug-in: Student License", 4, 1, 0);变为</soap:Envelope>', "en_US", 0, base64_encode("The IO plug-in: Student License"), 4, 1, 0);

新的错误消息是:

  

验证请求时出错:要解密的数据长度无效。来电者:GetProductInfo

1 个答案:

答案 0 :(得分:0)

经过数小时的搜索,我在documentation,第121页找到了这个:

  

请注意,除了GetActivationKey之外,无法使用URL调用Web服务公开的所有方法   和ActivateKey。所有其他Web方法都实现了只接受的安全身份验证机制   来自QLM控制台的请求。

因此,当我试图调用 GetProductInfo 时,它无法在QLM控制台之外工作。