我创建了一个模块,我将使用ioncube进行加密。我将使用plimus使用http调用生成和验证产品密钥。 plimus说,“这个过程有两个步骤”:
通过致电
注册许可证https://www.plimus.com/jsp/validateKey.jsp?action=REGISTER&productId=582710&key=XXX-XXXX-XXXX-XXXX[&uniqueMachineId=YYYYYYY]
通过调用
验证许可证https://www.plimus.com/jsp/validateKey.jsp?action=VALIDATE&productId=582710&key=XXX-XXXX-XXXX-XXXX[&uniqueMachineId=YYYYYYY]
密钥将通过电子邮件发送给用户。我只需要一个PHP代码示例来做到这一点, 我还需要一个支票许可证代码才能添加到我的模块中。
答案 0 :(得分:1)
虽然PHP可以非常简单地发出HTTP请求,但正确设置它可能会很麻烦。您最好的选择是使用第三方库来管理复杂性,这样您就不必设置千个卷曲选项,也不必处理流接口处理非200的HTTP代码的效果。
PEAR's HTTP_Request2是一个很好的起点。它在BSD许可下可用,这意味着您可以将其与您自己的专有代码捆绑在一起,而不会出现许可问题。这是一个非常基本的例子,应该适合你。首先,让我们收集有关实际请求的信息。
$endpoint_url = 'https://www.plimus.com/jsp/validateKey.jsp';
$params = array(
'action' => 'REGISTER',
'productId' = '582710',
'key' => 'XXX-XXXX-XXXX-XXXX'
);
如果您有uniqueMachineId
,也可以将其添加到数组中。
现在我们将构建请求对象。
$request = new HTTP_Request2($endpoint_url);
$request->setMethod(HTTP_Request2::GET);
$request->getUrl()->setQueryVariables($params);
如果您需要构建POST而不是GET,see the "Request Body" section in the docs。所以,我们已经设置了请求,让我们实际执行它。
$response = $request->send();
$http_code = $request->getStatus();
$body_of_document = $response->getBody();
多田。根据生成的HTTP响应代码或文档正文执行您需要执行的任何操作。
您也可以针对其他请求重复此过程,只需根据需要更改$params
数组和$endpoint_url
。
你也应该read this manual section on the adapter options。默认配置很可能适合您,但您可能需要请求curl适配器而不是套接字适配器。
正如我所提到的,这不是唯一的选择。我是Zend_Http_Client的粉丝,也可以获得BSD许可。如果你感觉自虐,你也可以use the curl extension directly,如果你完全是蝙蝠 - 鸟粪,你可以使用我最喜欢的东西,streams!
但严重的是,HTTP_Request2应该为你完成这项工作。